You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分Azure ML管道步骤调试并模拟PipelineData对象

解决方案:模拟PipelineData实现单步骤调试

核心思路

PipelineData是Azure ML管道运行时自动管理的存储路径,单独用ScriptRunConfig调试时,我们可以用本地路径或Azure ML数据存储路径模拟它的行为,让原脚本的输入输出逻辑完全不变,无需修改代码。

方法1:本地路径直接模拟(适合快速本地调试)

原脚本中--model_path参数在管道里会被Azure ML替换为实际存储路径,本地调试时直接传入本地文件夹路径即可,脚本读写逻辑完全匹配管道场景:

# 用本地文件夹模拟PipelineData的输出/输入路径,提前创建该文件夹
local_model_path = "./local_model_temp"

# 创建验证步骤的ScriptRunConfig
validate_script_config = ScriptRunConfig(
    source_directory=source_folder,
    script='ValidateStepScript.py',
    arguments=['--model_name', model_name,
               '--model_path', local_model_path],  # 直接传入本地路径
    environment=experiment_env,
    docker_runtime_config=DockerConfiguration(use_docker=True)
)

# 提交运行
experiment = Experiment(workspace=ws, name=experiment_name)
run = experiment.submit(config=validate_script_config)
run.wait_for_completion(show_output=True)

调试训练步骤时,脚本会自动把模型写入local_model_path,之后验证步骤直接读取该路径即可,完全复刻管道数据流。

方法2:用DataReference模拟管道存储路径(贴近真实运行环境)

如果要更贴近管道的真实运行逻辑(使用Azure ML云端存储),可以用DataReference指向数据存储中的指定路径替代PipelineData:

  1. 获取工作区默认数据存储:
from azureml.core import Datastore

datastore = ws.get_default_datastore()
  1. 创建指向云端存储路径的DataReference:
from azureml.data.data_reference import DataReference

# 模拟PipelineData在云端存储的路径,需提前在数据存储中创建该路径
model_data_ref = DataReference(
    datastore=datastore,
    data_reference_name='model',
    path_on_datastore='simulate_pipeline/model'
)
  1. 将DataReference传入ScriptRunConfig:
validate_script_config = ScriptRunConfig(
    source_directory=source_folder,
    script='ValidateStepScript.py',
    arguments=['--model_name', model_name,
               '--model_path', model_data_ref],  # 传入DataReference
    environment=experiment_env,
    docker_runtime_config=DockerConfiguration(use_docker=True)
)

experiment = Experiment(workspace=ws, name=experiment_name)
run = experiment.submit(config=validate_script_config)
run.wait_for_completion(show_output=True)

这种方式下,Azure ML会自动将DataReference解析为云端存储的实际路径,和管道中PipelineData的行为完全一致,脚本无需任何修改。

关键注意事项

  • 确保原脚本对--model_path的处理是直接读写路径本身(原适配PipelineData的脚本天然满足此要求)。
  • 使用Docker运行时,本地路径会被自动挂载,无需额外配置。

内容的提问来源于stack exchange,提问作者Jorge LG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:26:16