使用 Azure Machine Learning 將模型定型
適用於:Python SDK azure-ai-ml v2 (目前)
Azure Machine Learning 提供數種方式供您將模型定型,從使用 SDK 的 Code First 解決方案,到自動化機器學習和視覺化設計工具等低程式碼解決方案均囊括在內。 請使用下列清單來判斷適合您使用的定型方法:
適用於 Python 的 Azure Machine Learning SDK::Python SDK 提供數種可將模型定型的方法,這些方法各有不同的功能。
定型方法 描述 command() 將模型定型的一個常見方式是提交 command(),其中包括定型指令碼、環境和計算資訊。 自動化機器學習 自動化機器學習可讓您在沒有廣泛的資料科學或程式設計知識時將模型定型。 對於有資料科學和程式設計背景的人員,自動化機器學習可讓其透過將演算法的選取和超參數的微調自動化而節省時間和資源。 使用自動化機器學習時,您不必擔心要如何定義作業設定。 機器學習管線 管道不是不同的定型方法,而是使用模組化、可重複使用的步驟,定義工作流程的方法,並可納入定型為工作流程的一部分。 機器學習管線可支援使用自動化機器學習和回合組態來將模型定型。 由於管線並非特別聚焦在定型上,因此會使用管線的理由比其他定型方法更為多樣。 一般而言,您可能會在下列情況使用管線:
* 您想要排程自動程序,例如長時間執行的定型作業或資料準備。
* 使用多個步驟,這些步驟會跨異質計算資源和儲存位置彼此協調。
* 針對重新定型或批次評分等特定案例,使用管線作為可重複使用的範本。
針對工作流程來* 追蹤資料來源、輸入和輸出並設定其版本。
* 您的工作流程是由不同小組實作的,而這些小組會獨立處理特定步驟。 然後,這些步驟可在管線中聯結在一起以實作工作流程。設計工具:Azure Machine Learning 設計工具可讓您輕鬆地進入機器學習領域來建置概念證明,或讓幾乎沒有程式碼撰寫經驗的使用者進入機器學習領域。 其可讓您使用拖放式的 Web 型 UI 來將模型定型。 您可以將 Python 程式碼作為設計的一部分,或在不撰寫任何程式碼的情況下將模型定型。
Azure CLI:機器學習 CLI 會提供常見 Azure Machine Learning 工作的命令,而且通常會用於指令碼編寫和自動化工作上。 例如,建立定型指令碼或管道,或用於定型的資料檔案更新後,您可以使用 Azure CLI 排程啟動定型作業。 針對將模型定型,其會提供可提交定型作業的命令。 其可使用回合組態或管線來提交作業。
這些定型方法各自可以使用不同類型的計算資源來進行定型。 這些資源統稱為計算目標。 計算目標可以是本機電腦或雲端資源,例如 Azure Machine Learning Compute、Azure HDInsight 或遠端虛擬機器。
Python SDK
適用於 Python 的 Azure Machine Learning SDK 可讓您使用 Azure Machine Learning 來建置及執行機器學習工作流程。 您可以從互動式 Python 工作階段、Jupyter Notebook、Visual Studio Code 或其他 IDE 與服務互動。
提交命令
可以使用 command() 來定義 Azure Machine Learning 的一般定型作業。 然後,會使用該命令搭配定型指令碼,來針對指定的計算目標將模型定型。
您可以從適用於您本機電腦的命令開始,然後視需要切換至適用於雲端式計算目標的命令。 變更計算目標時,您只會變更您所使用命令中的計算參數。 回合也會記錄定型作業的相關資訊,例如輸入、輸出和記錄。
自動化 Machine Learning
請定義反覆項目、超參數設定、特徵化及其他設定。 在定型期間,Azure Machine Learning 會以平行方式嘗試不同的演算法和參數。 定型作業會在達到您定義的允出準則後停止。
提示
除了 Python SDK 以外,您也可以透過 Azure Machine Learning Studio 來使用自動化 ML。
- 什麼是自動化機器學習?
- 教學課程:使用自動化機器學習建立您的第一個分類模型
- 操作說明:在 Python 中設定自動化 ML 實驗
- 操作說明:使用 Azure Machine Learning Studio 建立、探索及部署自動化機器學習實驗
機器學習管線
機器學習管線可以使用先前提及的定型方法。 管線更常用來建立工作流程,因此其所包含的功能不只是將模型定型而已。
了解當您提交定型作業時會發生什麼事
Azure 定型生命週期由下列各步驟組成:
壓縮專案資料夾中的檔案,並上傳至雲端。
提示
若要避免在快照中包含不必要的檔案,請在目錄中建立忽略檔案 (
.gitignore
或.amlignore
)。 將要排除的檔案和目錄新增到這個檔案中。 如需此檔案中可用語法的詳細資訊,請參閱.gitignore
的語法和模式。.amlignore
檔案會使用相同的語法。 如果兩個檔案都存在,則會使用.amlignore
檔案,不會使用.gitignore
檔案。擴充您的計算叢集 (或無伺服器計算)
建置或下載 dockerfile 至計算節點
- 系統會計算下列雜湊:
- 基礎映像
- 自訂 Docker 步驟 (請參閱使用自訂 Docker 基礎映像部署模型)
- conda 定義 YAML (請參閱使用 CLI (v2) 管理 Azure Machine Learning 環境))
- 系統會使用此雜湊作為工作區 Azure Container Registry (ACR) 查閱中的索引鍵
- 如果找不到,則會在全域 ACR 中尋找相符項目
- 如果找不到,系統會建置新的映像 (將進行快取並向工作區 ACR 註冊)
- 系統會計算下列雜湊:
將壓縮的專案檔案下載至計算節點上的暫存儲存體
解壓縮專案檔
執行
python <entry script> <arguments>
的計算節點將寫入
./outputs
的記錄、模型檔案和其他檔案儲存到與工作區相關聯的儲存體帳戶縮小計算,包括移除暫存儲存體
Azure Machine Learning 設計工具
此設計工具可讓您在網頁瀏覽器中使用拖放介面來將模型定型。
Azure CLI
機器學習 CLI 是 Azure CLI 的擴充功能。 其提供跨平台 CLI 命令供您使用 Azure Machine Learning。 一般而言,您會使用 CLI 來將工作自動化,例如將機器學習模型定型。
VS Code
您可以使用 VS Code 擴充功能來執行和管理定型作業。 若要深入了解,請參閱 VS Code 資源管理操作指南。