定型 Vowpal Wabbit 模型
本文說明如何使用 Azure 機器學習 設計工具中的定型 Vowpal Wabbit 模型元件,使用 Vowpal Wabbit 建立機器學習模型。
若要使用 Vowpal Wabbit 進行機器學習,請根據 Vowpal Wabbit 需求來格式化您的輸入,並以所需的格式準備數據。 使用此元件來指定 Vowpal Wabbit 命令行自變數。
執行管線時,Vowpal Wabbit 的實例會載入實驗運行時間,以及指定的數據。 定型完成時,模型會串行化回工作區。 您可以立即使用模型來評分數據。
若要在新的數據上累加定型現有的模型,請將儲存的模型連接到訓練 Vowpal Wabbit 模型的預先定型 Vowpal Wabbit 模型輸入埠,並將新數據新增至其他輸入埠。
什麼是 Vowpal Wabbit?
Vowpal Wabbit (VW) 是雅虎為分散式運算開發的快速平行機器學習架構! 研究。 後來,它被移植到 Windows,並由約翰·朗福德(Microsoft研究)以平行架構進行科學運算。
Vowpal Wabbit 對於機器學習很重要的功能包括持續學習(在線學習)、減少維度和互動式學習。 當您無法將模型數據放入記憶體時,Vowpal Wabbit 也是問題的解決方案。
Vowpal Wabbit 的主要使用者是數據科學家,他們先前已將架構用於機器學習工作,例如分類、回歸、主題模型化或矩陣分解。 Vowpal Wabbit 的 Azure 包裝函式具有非常類似的內部部署版本效能特性,因此您可以使用 Vowpal Wabbit 的強大功能和原生效能,並輕鬆地將定型的模型發佈為可操作的服務。
功能哈希元件也包含 Vowpal Wabbit 所提供的功能,可讓您使用哈希演算法,將文字數據集轉換成二進位特徵。
如何設定 Vowpal Wabbit 模型
本節說明如何定型新的模型,以及如何將新數據新增至現有的模型。
不同於設計工具中的其他元件,此元件會同時指定元件參數,以及定型模型。 如果您有現有的模型,您可以將它新增為選擇性輸入,以累加方式定型模型。
準備輸入資料
若要使用此元件來定型模型,輸入數據集必須包含兩種支援格式之一的單一文字數據行: SVMLight 或 VW。 這並不表示 Vowpal Wabbit 只會分析文字數據,只有特徵和值必須以必要的文本文件格式準備。
您可以從兩種數據集、檔案資料集或表格式數據集讀取數據。 這兩個數據集都必須採用 SVMLight 或 VW 格式。 Vowpal Wabbit 數據格式的優點是它不需要單欄格式,這可在處理疏鬆數據時節省空間。 如需此格式的詳細資訊,請參閱 Vowpal Wabbit Wiki 頁面。
建立和定型 Vowpal Wabbit 模型
將 定型 Vowpal Wabbit 模型 元件新增至您的實驗。
新增定型數據集,並將其連線至 定型數據。 如果定型數據集是包含定型數據檔的目錄,請使用定型數據檔的名稱指定定型數據檔名稱。 如果訓練數據集是單一檔案,請將定型數據檔的名稱保留空白。
在 [ VW 自變數 ] 文本框中,輸入 Vowpal Wabbit 可執行檔的命令行自變數。
例如,您可以新增
–l
來指定學習速率,或-b
指出哈希位的數目。如需詳細資訊,請參閱 Vowpal Wabbit 參數 一節。
定型數據檔的名稱:輸入包含輸入數據的檔名。 只有當定型數據集是目錄時,才會使用此自變數。
指定檔案類型:指出訓練數據所使用的格式。 Vowpal Wabbit 支援這兩種輸入檔案格式:
- VW 代表 Vowpal Wabbit 所使用的內部格式。 如需詳細資訊, 請參閱 Vowpal Wabbit Wiki 頁面 。
- SVMLight 是一些其他機器學習工具所使用的格式。
輸出可讀取的模型檔案:如果您想要元件將可讀取的模型儲存至作業記錄,請選取選項。 這個自變數會對應至
--readable_model
VW 命令行中的 參數。輸出反向哈希檔案:如果您想要元件將反向哈希函式儲存到作業記錄中的一個檔案,請選取 選項。 這個自變數會對應至
--invert_hash
VW 命令行中的 參數。提交管線。
重新定型現有的 Vowpal Wabbit 模型
Vowpal Wabbit 支援累加定型,方法是將新數據新增至現有的模型。 有兩種方式可取得現有模型以進行重新定型:
在相同的管線中使用另一個 定型 Vowpal Wabbit 模型 元件的輸出。
在設計工具左側瀏覽窗格的 [數據集] 類別中找到已儲存的模型,並將其拖曳至您的管線。
將 定型 Vowpal Wabbit 模型 元件新增至您的管線。
將先前定型的模型連接到 元件的預先定型 Vowpal Wabbit 模型 輸入埠。
將新的定型數據連接到 元件的定型數據 輸入埠。
在 [定型 Vowpal Wabbit 模型] 的參數窗格中,指定新定型數據的格式,如果輸入數據集是目錄,也會指定定型數據檔名稱。
如果需要將對應的檔案儲存在作業記錄中,請選取 [ 輸出可讀取模型檔案 ] 和 [輸出反向哈希檔案 ] 選項。
提交管線。
選取元件,然後在右窗格中的 [輸出+記錄] 索引卷標下選取 [註冊數據集],以在 Azure 機器學習 工作區中保留更新的模型。 如果您未指定新的名稱,更新的模型會覆寫現有的已儲存模型。
結果
- 若要從模型產生分數,請使用 Score Vowpal Wabbit Model。
注意
如果您需要在設計工具中部署定型的模型,請確定評分 Vowpal Wabbit 模型,而不是評分模型已連線到推斷管線中 Web 服務輸出元件的輸入。
技術注意事項
本節包含常見問題的實作詳細數據、秘訣和解答。
Vowpal Wabbit 的優點
Vowpal Wabbit 提供極快速的學習,例如 n-gram 等非線性特徵。
Vowpal Wabbit 使用 在線學習 技術,例如隨機梯度下降(ZN),一次配合一個記錄的模型。 因此,它會在未經處理的數據上快速逐一查看,而且可以比大部分其他模型更快開發良好的預測器。 此方法也避免將所有定型數據讀取到記憶體中。
Vowpal Wabbit 會將所有數據轉換成哈希,而不只是文字數據,還有其他類別變數。 使用哈希可讓回歸權數的查閱更有效率,這對有效隨機梯度下降至關重要。
支援和不支持的參數
本節說明 Azure 機器學習 設計工具中 Vowpal Wabbit 命令行參數的支援。
一般而言,除了一組有限的自變數,都支援。 如需自變數的完整清單,請使用 Vowpal Wabbit Wiki 頁面。
不支援下列參數:
中指定的輸入/輸出選項 https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments
元件已經自動設定這些屬性。
此外,不允許產生多個輸出或接受多個輸入的任何選項。 這些包括
--cbt
、--lda
與--wap
。僅支援受監督式學習演算法。 因此,不支持這些選項:
–active
、--rank
--search
等。
限制
由於服務的目標是要支援 Vowpal Wabbit 經驗豐富的使用者,因此輸入數據必須事先使用 Vowpal Wabbit 原生文字格式來準備,而不是其他元件所使用的數據集格式。