什麼是 Azure Machine Learning 元件?

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

Azure Machine Learning 元件是獨立式程式碼片段,可在機器學習管線中執行一個步驟。 元件與函式類似,有名稱、輸入、輸出和主體。 元件是 Azure Machine Learning 管線的建置組塊。

元件由三個部分組成:

  • 中繼資料:name、display_name、version、type 等等。
  • 介面:輸入/輸出規格 (名稱、類型、描述、預設值等等)。
  • 命令、程式碼和環境:要執行元件所需的命令、程式碼和環境。

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

為什麼我應該使用元件?

從工程上來說,建置機器學習管線以將完整的機器學習工作分割成有多個步驟的工作流程是比較理想的做法。 如此一來,每個人就可以獨立處理特定步驟。 在 Azure Machine Learning 中,元件代表管線中的一個可重複使用的步驟。 設計出元件是為了提升管線建置的生產力。 具體來說,元件會提供:

  • 妥善定義的介面:元件需要妥善定義的介面 (輸入和輸出)。 介面可讓使用者輕鬆地建置步驟,並將各個步驟連接起來。 介面也能隱藏步驟的複雜邏輯,讓您輕鬆地理解步驟的實作方式。

  • 共用和重複使用:作為管線的建置組塊,元件可以輕鬆地跨管線、工作區和訂用帳戶來共用和重複使用。 某個小組所建置的元件可供另一個小組探索及使用。

  • 版本控制:元件會設定版本。 元件產生者可以持續改善元件並發佈新的版本。 取用者可以在其管線中使用特定元件版本。 這會讓其獲得相容性和重現性。

可進行單元測試:元件是獨立式程式碼片段。 不用多少功夫就能撰寫好元件的單元測試。

元件和管線

機器學習管線是完整機器學習工作的工作流程。 元件是機器學習管線的建置組塊。 在考慮元件時,必須將其置於管線的內容底下。

若要建置元件,首先要定義機器學習管線。 這需要將完整的機器學習工作細分成有多個步驟的工作流程。 每個步驟都是一個元件。 例如,假設有個簡單的機器學習工作,其會使用歷史資料來為銷售預測模型定型,則您可以使用資料處理、模型定型和模型評估這三個步驟來建置循序前進的工作流程。 如果工作比較複雜,則可以再加以細分。 例如,將資料處理這個單一步驟分割成資料擷取、資料清理、資料前置處理和特徵工程等步驟。

定義好工作流程中的步驟之後,下一步就是指定要如何將管線中的每個步驟連接起來。 例如,若要連接資料處理步驟和模型定型步驟,您可以定義資料處理元件來輸出內含已處理資料的資料夾。 定型元件會以資料夾作為輸入,並輸出內含已定型模型的資料夾。 這些輸入和輸出定義會成為元件介面定義的一部分。

現在,我們可以開發程式碼以執行步驟了。 您可以使用慣用的語言 (Python、R 等等)。 程式碼必須能夠由殼層命令執行。 在開發期間,您可以新增一些輸入來控制此步驟的執行方式。 例如,針對定型步驟,您可以新增學習速率、Epoch 數目來作為輸入以控制定型。 這些額外的輸入加上要與其他步驟連接所需的輸入和輸出便是元件的介面。 殼層命令的引數可用來將輸入和輸出傳遞至程式碼。 您必須指定用來執行命令和程式碼的環境。 環境可以是策展的 Azure Machine Learning 環境、Docker 映像或 Conda 環境。

最後,您可以將所有項目 (包括程式碼、命令、環境、輸入、輸出、中繼資料) 一起封裝成元件。 然後將這些元件連接在一起,以建置機器學習工作流程的管線。 一個元件可用於多個管線。

若要深入了解如何建置元件,請參閱:

下一步