將腳本執行至 SDK v2
在 SDK v2 中,「實驗」和「執行」會合併到作業中。
工作具有類型。 大部分作業都是執行 command
的命令作業,例如 python main.py
。 工作中執行的內容與任何程式設計語言無關,因此您可以執行 bash
指令碼、叫用 python
解譯器、執行一堆 curl
命令或任何其他項目。
若要升級,您必須變更程序代碼,才能將作業提交至 SDK v2。 您在作業內執行的內容不需要升級至 SDK v2。 不過,建議您從模型定型腳本中移除 Azure 機器學習 特有的任何程序代碼。 此區隔可讓您更輕鬆地在本機和雲端之間進行轉換,並被視為成熟 MLOps 的最佳做法。 實際上,這表示移除 azureml.*
程式代碼行。 模型記錄和追蹤程式代碼應該取代為 MLflow。 如需詳細資訊,請參閱 如何在 v2 中使用 MLflow。
本文提供 SDK v1 和 SDK v2 中案例的比較。
提交腳本執行
SDK v1
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig # connect to the workspace ws = Workspace.from_config() # define and configure the experiment experiment = Experiment(workspace=ws, name='day1-experiment-train') config = ScriptRunConfig(source_directory='./src', script='train.py', compute_target='cpu-cluster') # set up pytorch environment env = Environment.from_conda_specification( name='pytorch-env', file_path='pytorch-env.yml') config.run_config.environment = env run = experiment.submit(config) aml_url = run.get_portal_url() print(aml_url)
SDK v2
#import required libraries from azure.ai.ml import MLClient, command from azure.ai.ml.entities import Environment from azure.identity import DefaultAzureCredential #connect to the workspace ml_client = MLClient.from_config(DefaultAzureCredential()) # set up pytorch environment env = Environment( image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04", conda_file="pytorch-env.yml", name="pytorch-env" ) # define the command command_job = command( code="./src", command="train.py", environment=env, compute="cpu-cluster", ) returned_job = ml_client.jobs.create_or_update(command_job) returned_job
v1 和 v2 中主要功能的對應
SDK v1 中的功能 | SDK v2 中的粗略對應 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
下一步
如需詳細資訊,請參閱