定型 Vowpal Wabbit 7-10 版模型

使用7-10 版的 Vowpal Wabbit 機器學習系統訓練模型

類別: 文字分析

注意

適用于 : Machine Learning Studio (傳統)

此內容僅適用于 Studio (傳統) 。 Azure Machine Learning 設計工具中已新增類似的拖放模組。 若要深入瞭解 這兩個版本,請參閱這篇文章

模組概觀

本文說明如何在 Azure Machine Learning Studio (傳統) 中使用 訓練 Vowpal Wabbit 7-10 版 模組,以使用 Vowpal Wabbit (7-10 版) 版本建立機器學習模型。

若要將 Vowpal Wabbit 用於機器學習,請根據 Vowpal Wabbit 需求來格式化您的輸入,並將資料儲存在 Azure blob 中。 您可以使用此模組來指定 Vowpal Wabbit 命令列引數。

執行實驗時,會將 Vowpal Wabbit 的實例連同指定的資料一起載入實驗執行時間。 定型完成時,會將模型序列化回工作區。 您可以立即使用模型來評分資料。 定型的模型也會保存在 Azure 儲存體中,讓您稍後可以使用它,而不需要重新處理定型資料。

若要在新資料上以累加方式定型現有的模型,請將儲存的模型連接到 預先定型的模型 輸入,並將新的資料加入至其他輸入。

注意

Azure Machine Learning Studio (傳統) 裝載多個版本的 Vowpal Wabbit framework。 此課程模組使用7-10 版的 Vowpal Wabbit 架構。

如果您需要根據舊版 (7-4 或 7-6) 來建立或評分模型,請使用下列模組: 定型 Vowpal Wabbit 7-4 模型分數 Vowpal Wabbit 7-4 模型

如需最新版本,請使用 定型 Vowpal Wabbit 第8版模型,以及其評分模組、計分 Vowpal Wabbit 8 模型

什麼是 Vowpal Wabbit?

Vowpal Wabbit (VW) 是一種快速、平行的機器學習架構,由 Yahoo!針對分散式運算所開發。 研究。 後來移植到 Windows,並由 John Langford (Microsoft Research) 在平行架構中應用於科學運算。

對機器學習服務而言很重要的 Vowpal Wabbit 功能包括持續學習 (線上學習) 、維度縮減,以及互動式學習。 當記憶體無法容納模型資料時,Vowpal Wabbit 也是問題的解決方案。

Azure Machine Learning 中 Vowpal Wabbit 的主要使用者是先前使用架構進行機器學習工作的資料科學家,例如分類、回歸、主題模型或矩陣分解。 適用于 Vowpal Wabbit 的 Azure 包裝函式與內部部署版本的效能特性非常類似,這表示使用者可以繼續使用 Vowpal Wabbit 的強大功能和原生效能來建立模型、重新定型和計分,同時讓您能夠輕鬆地將定型的模型發佈為實際運作服務。

特徵雜湊 」模組也包含 Vowpal Wabbit 所提供的功能,可讓您使用雜湊演算法將文字資料集轉換成二進位功能。

如何設定 Vowpal Wabbit 7-10 版模型

本節描述如何訓練新模型,以及如何將新的資料加入至現有的模型。

不同于 Studio (傳統) 中的其他模組,此模組會指定模組參數,並訓練模型。 如果您有現有的模型,您可以將它新增為選擇性輸入,以累加方式定型模型。

使用此模組需要對 Azure 儲存體帳戶進行驗證。

準備輸入資料

若要使用此模組來定型模型,輸入資料集必須以兩種支援格式的其中一種來組成單一文字資料行: LibSVMVW

這並不表示 Vowpal Wabbit 只會分析文字資料,只是必須以所需的文本檔案格式來準備功能和值。

您必須從 Azure 儲存體讀取資料。 您無法使用 匯出資料 ,直接將輸入檔案儲存至 Azure 以搭配 Vowpal Wabbit 使用,因為格式需要進行一些額外的修改。 您必須確定資料的格式正確,然後將資料上傳至 Azure blob 儲存體。

不過,您可以使用 [ 轉換成 SVMLight ] 模組來產生 SVMLight 格式檔案,做為快捷方式。 然後,您可以將 SVMLight 格式檔案上傳至 Azure blob 儲存體,並使用它做為輸入,或者可以稍微修改檔案以符合 Vowpal Wabbit 輸入檔需求。

Vowpal Wabbit 資料格式的優點是它不需要單欄式格式,在處理稀疏資料時可節省空間。 如需此格式的詳細資訊,請參閱 Vowpal Wabbit wiki 頁面

建立和定型 Vowpal Wabbit 模型

  1. 定型 Vowpal Wabbit 7-10 版 模組新增至您的實驗。

  2. 指定儲存定型資料的帳戶。 定型的模型和雜湊檔會儲存在相同的位置。

    • 在 [ azure 儲存體帳戶名稱] 中,輸入 azure 儲存體帳戶的名稱。

    • 針對 Azure 儲存體金鑰,請複製並貼上提供給存取儲存體帳戶的金鑰。

    如果您沒有金鑰,請參閱 如何重新產生儲存體存取金鑰

  3. 針對 [ azure 容器名稱],在指定的 azure 儲存體帳戶中輸入用來儲存模型定型資料的單一容器名稱。 請勿輸入帳戶名稱或任何通訊協定前置詞。

    例如,如果完整的容器路徑和名稱是 https://myaccount.blob.core.windows.net/vwmodels ,您應該只輸入 vwmodels 。 如需容器名稱的詳細資訊,請參閱 命名和參考容器、blob 和中繼資料

  4. 在 [ VW 引數 ] 文字方塊中,輸入 Vowpal Wabbit 可執行檔的命令列引數。

    例如,您可以新增 –l 來指定學習速率,或 -b 表示雜湊位的數目。

    如需詳細資訊,請參閱 參數 一節。

  5. 輸入 VW 檔的名稱:輸入包含輸入資料的檔案名。 檔案必須是 Azure blob 儲存體中的現有檔案,該檔案位於先前指定的儲存體帳戶和容器中。 必須使用其中一種支援的格式來準備檔案。

  6. 輸出可讀取模型 ( 的名稱 readable_model) 檔:輸入應儲存定型模型的檔案名。 檔案必須儲存在與輸入檔案相同的儲存體帳戶和容器內。

    此引數會對應至 --readable_model VW 命令列中的參數。

  7. 輸出反轉雜湊的名稱 (--invert_hash) 檔:輸入應儲存反轉雜湊函數的檔案名。 檔案必須儲存在與輸入檔案相同的儲存體帳戶和容器內。

    此引數會對應至 --invert_hash VW 命令列中的參數。

  8. 請指定檔案類型:指出定型資料所使用的格式。 Vowpal Wabbit 支援這兩種輸入檔案格式:

    • VW 代表 Vowpal Wabbit 所使用的內部格式。 如需詳細資訊,請參閱 Vowpal Wabbit wiki 頁面

    • SVMLight 是其他一些機器學習工具所使用的格式。

  9. 如果您不想要在每次重新 reun 實驗時從儲存體載入資料,請選取 [使用快取的 結果] 選項。 假設沒有其他參數變更,而且可以找到有效的快取,Studio (傳統) 會使用快取的資料版本。

    如果取消選取此選項,模組一律會從儲存體讀取資料。

  10. 執行實驗。

  11. 產生模型之後,以滑鼠右鍵按一下輸出,然後選取 [ 另存為定型模型],讓您稍後可以重複使用和重新定型模型。

重新定型現有的 Vowpal Wabbit 模型

Vowpal Wabbit 藉由將新的資料加入至現有的模型,來支援累加式定型。 有兩種方式可以取得現有的重新定型模型:

  • 在相同的實驗中,使用另一個 定型 Vowpal Wabbit 第8版 模組的輸出。

  • 在 Studio (傳統) 中的 定型模型 群組中找出已儲存的模型,並將它拖曳到您的實驗中。

  1. 定型 Vowpal Wabbit 第8版 模組新增至您的實驗。

  2. 將先前定型的模型連接到 定型 Vowpal Wabbit 第8版 的輸入埠:

  3. 在 [定型 Vowpal Wabbit 第8版] 的 [屬性] 窗格中,指定新定型資料的位置和格式。

  4. 為人們可讀取的模型輸出檔指定名稱,並針對與更新模型相關聯的雜湊檔指定另一個名稱。

    注意

    如果指定的位置中有現有的 Vowpal Wabbit 模型或雜湊檔,則會以無訊息方式覆寫新定型模型的檔案。 若要在重新定型時保留中繼模型,您必須變更儲存位置或建立模型檔案的本機複本。

  5. 執行實驗。

  6. 以滑鼠右鍵按一下模組,然後選取 [ 另存為定型的模型 ],以在您的 Azure Machine Learning 工作區中保留已更新的模型。 如果您未指定新名稱,更新的模型就會覆寫現有的已儲存模型。

範例

如需如何在機器學習中使用 Vowpal Wabbit 的範例,請參閱 AZURE AI 資源庫

此外,請參閱下列資源:

技術說明

本節包含對常見問題的執行詳細資料、秘訣和解答。

Vowpal Wabbit 的優點

Vowpal Wabbit 能夠極快速地學習非線性特徵 (例如 N 字母組)。

Vowpal Wabbit 使用 線上學習 技術,例如隨機梯度下降 (SGD),一次一筆記錄來配適模型。 因此,能夠非常快速地反覆運算原始資料,且比其他大部分的模型更快速開發理想的預測量。 這個方法也可避免必須將所有定型資料讀入記憶體中。

Vowpal Wabbit 會將所有資料都轉換成雜湊,而不只是文字資料,還有其他類別變數。 使用雜湊讓回歸加權的查閱更有效率,這對有效的隨機梯度下降非常重要。

在定型期間,模組會呼叫針對 Azure 開發的 Vowpal Wabbit 包裝函式。 定型資料是從 Azure 的區塊中下載,利用存放區與執行計算的背景工作角色之間的高頻寬,然後串流至 VW 學習工具。 產生的模型通常很精簡,因為 VW 所完成的內部壓縮。 模型會複製回實驗工作區,以便在 Azure Machine Learning 中用來作為其他模型。

支援和不支援的參數

本節說明在 Azure Machine Learning Studio (傳統) 中的 Vowpal Wabbit 命令列參數支援。

您無法在 Azure Machine Learning Studio (傳統) 中使用下列命令列引數。

  • Vowpal Wabbit Wiki-命令列引數中指定的輸入/輸出選項

    模組會自動設定這些屬性。

  • 不允許任何會產生多個輸出或接受多個輸入的選項。 這些包括:

    --cbt, --lda, --wap

  • 僅支援受監督的學習演算法。 因此,不支援這些選項:

    –active, --rank, --search

除了以上所述以外的所有引數都是允許的。

如需完整的引數清單,請使用 Vowpal Wabbit wiki 頁面

限制

因為服務的目標是要支援經驗豐富的 Vowpal Wabbit 使用者,所以必須事先使用 Vowpal Wabbit 原生文字格式來準備輸入資料,而不是使用其他模組所使用的資料集格式。

定型資料不會在 Azure ML 工作區中使用資料,而是會直接從 Azure 進行串流處理,以獲得最大效能和最短的剖析負擔。 基於這個理由,在 Azure ML 中的 VW 模組與其他模組之間,只有有限的互通性。

模組參數

Name 範圍 類型 預設 描述
Azure 儲存體帳戶名稱 任意 String 輸入 Azure 儲存體帳戶名稱
Azure 儲存體金鑰 任意 SecureString 提供 Azure 儲存體金鑰
Azure 容器名稱 任意 String 輸入 Azure 容器名稱
VW 引數 任意 String 指定任何 Vowpal Wabbit 引數。

不支援引數 –f
VW 輸入檔的名稱 任意 String 指定 Vowpal Wabbit 格式輸入檔的名稱
可讀模型 (--readable_model) 輸出檔的名稱 任意 String 如果指定,則會將可讀的模型輸出回到 Azure 容器。

此引數是選擇性的。
反轉雜湊 (--invert_hash) 輸出檔的名稱 任意 String 如果指定,則會將包含反轉雜湊函數的檔案輸出回到 Azure 容器。

此引數是選擇性的。
請指定檔案類型 VW

SVMLight
DataType VW 指出檔案類型是否使用 SVMLight 格式或 Vowpal Wabbit 格式。

輸出

名稱 類型 Description
定型的模型 ILearner 介面 定型的學習模組

例外狀況

例外狀況 描述
錯誤 0001 如果找不到資料集的一或多個指定的資料行,就會發生例外狀況。
錯誤 0003 如果一或多個輸入為 Null 或空白,就會發生例外狀況。
錯誤 0004 如果參數小於或等於特定值,就會發生例外狀況。
錯誤 0017 如果一或多個指定的資料行具有目前模組不支援的類型,就會發生例外狀況。

如需 Studio (傳統) 模組特定的錯誤清單,請參閱 機器學習錯誤碼

如需 API 例外狀況的清單,請參閱 機器學習 REST API 錯誤碼

另請參閱

文字分析
特徵雜湊
命名實體辨識
計分 Vowpal Wabbit 7-4 模型
計分 Vowpal Wabbit 7-10 模型
定型 Vowpal Wabbit 7-4 模型
A-Z 模組清單