如何在Azure ML Pipeline Job中指定实例名称与实例数量?
在Azure ML Python SDK v2的Pipeline Job中配置Serverless Compute实例参数
要在Pipeline Job里指定serverless compute的instance_type和instance_count,需要在Pipeline的组件步骤中单独配置计算目标,或者通过默认计算参数统一配置,具体两种实现方式如下:
方式一:为单个Pipeline步骤指定实例参数
构建Pipeline时,给每个command component步骤绑定ServerlessCompute实例配置:
from azure.ai.ml import pipeline from azure.ai.ml.entities import ServerlessCompute from azure.ai.ml import load_component # 加载自定义组件 my_component = load_component(source="component.yml") # 定义serverless计算资源配置 serverless_config = ServerlessCompute( instance_type="Standard_F4s_v2", instance_count=1 ) # 构建Pipeline @pipeline() def my_pipeline(): # 实例化组件步骤 task_step = my_component( input_data=..., # 替换为组件实际输入参数 output_data=... # 替换为组件实际输出参数 ) # 为当前步骤绑定serverless配置 task_step.compute = serverless_config # 创建并提交Pipeline Job pipeline_job = my_pipeline() ml_client.jobs.create_or_update(pipeline_job, experiment_name="your-experiment-name")
方式二:设置Pipeline全局默认计算目标
如果所有步骤都需要使用相同的serverless配置,可以在Pipeline定义时统一设置默认计算:
from azure.ai.ml import pipeline from azure.ai.ml.entities import ServerlessCompute from azure.ai.ml import load_component my_component = load_component(source="component.yml") another_component = load_component(source="another-component.yml") # 定义全局serverless配置 serverless_config = ServerlessCompute( instance_type="Standard_F4s_v2", instance_count=1 ) # 构建Pipeline时指定默认计算 @pipeline(default_compute=serverless_config) def my_pipeline(): step1 = my_component(input_data=..., output_data=...) step2 = another_component(input_data=step1.outputs.output_data) # 创建并提交Pipeline Job pipeline_job = my_pipeline() ml_client.jobs.create_or_update(pipeline_job, experiment_name="your-experiment-name")
注意事项
- 每个Pipeline步骤可独立配置不同的serverless实例参数,适配不同任务的资源需求
- 确保工作区所在区域支持指定的
instance_type,且已启用serverless compute功能
内容的提问来源于stack exchange,提问作者MarkJ
相关产品推荐
相关产品推荐

