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

如何将AzureML作业输出路径设置为工作目录?

解决方案

核心原理

AzureML 的执行工作目录 exe/wd 是计算实例的临时本地目录,作业结束后会被自动清理,无法持久化存储文件。要让输出出现在 Studio 的「Outputs+Logs」标签,必须将文件写入 AzureML 挂载的持久化输出目录(关联到工作区存储),而非本地临时路径。

步骤1:修正作业的 Output 配置

移除 Output 中的 path 参数,让 AzureML 自动管理输出存储位置;同时修正拼写错误并规范环境变量格式:

from azure.ai.ml import Output

job = command(
    inputs={
        'data': Input(
                type="uri_folder",
                path=f"{data_asset.id}",
                mode=InputOutputModes.RO_MOUNT
        )},
    outputs={
        'outputs': Output(
            type='uri_folder',
            mode=InputOutputModes.RW_MOUNT  # 移除path参数,由AzureML自动分配存储
        )},
    code="<path>",
    command=az_cfg.COMMAND_TRAIN,
    environment=f"{az_cfg.ENV_NAME}:{az_cfg.ENV_VERSION}",  # 补充环境名与版本的分隔符
    display_name=az_cfg.DISPLAY_NAME,
    compute=ci_name,
    environment_variables={ 
      "DATASET_MOUNT_BLOCK_BASED_CACHE_ENABLED": "True"  # 环境变量值需为字符串类型
      },
    experiment_name=az_cfg.EXPERIMENT_NAME
)

步骤2:训练脚本中写入正确路径

通过 AzureML 自动注入的环境变量获取挂载的输出目录,将文件写入该目录:

import os

# 获取AzureML挂载的持久化输出目录
output_dir = os.environ.get("AZUREML_OUTPUT_outputs")
if not output_dir:
    raise ValueError("未找到输出目录环境变量,请检查作业的output配置")

# 构造目标文件路径
filepath = os.path.join(output_dir, "checkpoint.pth")  # 替换为你的文件名

with open(filepath, 'wb') as f:
    f.write(obj)

关键说明

  • 配置 RW_MOUNT 模式后,AzureML 会将工作区 blob 存储的目录挂载到计算实例,写入该目录的文件会自动同步到云存储,作业结束后可在「Outputs+Logs」标签查看。
  • 若必须指定 path,需使用工作区存储的绝对 URI(如 azureml://datastores/workspaceblobstorage/paths/outputs/your-job),但自动分配路径更便捷且不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:52:45