定型 Vowpal Wabbit 第8版模型

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

使用第8版的 Vowpal Wabbit 機器學習系統來訓練模型

Category:文字分析

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

模組概觀

本文說明如何使用機器學習 Studio (傳統) 中的 [定型 Vowpal Wabbit 第8版] 模組,利用 Vowpal Wabbit (第8版) 來建立機器學習模型。

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

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

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

注意

機器學習 Studio (傳統) 裝載多個版本的 Vowpal Wabbit framework。 此課程模組使用最新版的 Vowpal Wabbit framework,也就是第8版。 若要為新的輸入資料評分,您必須使用 計分 Vowpal Wabbit 第8版模型

Vowpal Wabbit 7-4 或7-6 版: 定型 Vowpal Wabbit 7-4 模型分數 Vowpal Wabbit 7-4 模型

Vowpal Wabbit 7-10 版: 定型 Vowpal Wabbit 7-10 模型分數 Vowpal Wabbit 7-10 模型

什麼是 Vowpal Wabbit?

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

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

Vowpal Wabbit 的主要使用者是先前使用架構進行機器學習工作的資料科學家,例如分類、迴歸、主題模型化或矩陣分解。 適用於 Vowpal Wabbit 的 Azure 包裝函式與內部部署版本的效能特性非常類似,因此您可以使用 Vowpal Wabbit 的強大功能和原生效能,並且輕鬆地將定型的模型發佈為實際運作的服務。

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

如何設定 Vowpal Wabbit 第8版模型

本節描述如何定型新模型,以及如何新增資料至現有的模型。

不同于 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 第8版 模組新增至您的實驗。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 執行實驗。

  11. 定型完成時,以滑鼠右鍵按一下輸出,然後選取 [ 另存為定型的模型 ],將模型儲存到您的 Studio (傳統) 工作區。

重新定型現有的 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. 以滑鼠右鍵按一下模組,然後選取 [另存為定型的模型],將更新的模型保留在您的機器學習工作區中。 如果您未指定新名稱,則更新的模型會覆寫現有的已儲存模型。

範例

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

此外,請參閱下列資源:

技術說明

本節包含實作詳細資料、提示和常見問題集的解答。

Vowpal Wabbit 的優點

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

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

Vowpal Wabbit 會將所有資料都轉換成雜湊,而不只是文字資料,還有其他類別變數。 使用雜湊可以更有效率地查閱迴歸權重,而這對於隨機梯度下降是否有用至關重要。

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

支援和不支援的參數

本節說明機器學習 Studio (傳統) 中的 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 原生文字格式來準備輸入資料,而不是使用其他模組所使用的資料集格式。

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

模組參數

名稱 範圍 類型 選擇性 預設 描述
請指定檔案類型 VW

SVMLight
DataType 必要 VW 指出檔案類型是否為 SVMLight 或 Vowpal Wabbit。
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 String 選擇性 如果指定,則會將包含反轉雜湊函數的檔案輸出回到 Azure 容器。

輸出

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

例外狀況

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

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

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

另請參閱

文字分析
特性雜湊
具名實體辨識
計分 Vowpal Wabbit 7-4 模型
計分 Vowpal Wabbit 第8版模型
定型 Vowpal Wabbit 7-4 模型
A-Z 模組清單