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

在Azure ML中运行训练容器遇问题:ACR连接失败及计算对象选择困惑

问题解决:Azure ML访问ACR镜像失败及计算目标选择

一、解决ACR连接失败问题

1. 配置Azure ML工作区对ACR的权限

即使ACR启用了管理员选项,Azure ML工作区的托管标识仍需具备拉取ACR镜像的权限:

  • 登录Azure门户,进入目标ACR的「IAM」页面
  • 添加角色分配,角色选择「AcrPull」,成员选择Azure ML工作区的系统分配托管标识(名称与工作区一致)
  • 保存配置,等待权限生效(通常需几分钟)

2. 修正代码中的镜像凭据配置

代码缺少ACR身份验证配置,需在Environment中补充登录信息:

from azureml.core import Workspace
from azureml.core import Environment
from azureml.core.compute import ComputeTarget
from azureml.core.runconfig import DockerConfiguration
from azureml.core import ScriptRunConfig
from azureml.core import Experiment

ws = Workspace.from_config(path="./config.json")

# 配置自定义镜像及ACR凭据
env = Environment.from_docker_image(name="<env_name>", image="<registry_name>.azurecr.io/train_image:latest")
# 添加ACR登录信息
env.docker.base_image_registry.address = "<registry_name>.azurecr.io"
env.docker.base_image_registry.username = "<ACR管理员用户名>"
env.docker.base_image_registry.password = "<ACR管理员密码>"

env.python.user_managed_dependencies = True
dc = DockerConfiguration(use_docker=True)

cluster_name = "<cluster_name>"
cluster = ComputeTarget(workspace=ws, name=cluster_name)

# 若镜像已包含所有训练代码,无需指定source_directory
scr = ScriptRunConfig(
    source_directory=None,  # 镜像内已有train.py时可省略本地目录上传
    script='go.py',  # 若镜像内无go.py,仍需保留source_directory并确保文件存在
    compute_target=cluster,
    environment=env,
    docker_runtime_config=dc
)

experiment_name = "<experiment_name>"
experiment = Experiment(workspace=ws, name=experiment_name)
run = experiment.submit(scr)
run.wait_for_completion(show_output=True)

3. 其他检查项

  • 确认镜像标签一致:推送镜像时的标签(如latest或v1)需与代码中镜像地址完全匹配
  • 网络连通性检查:若ACR配置了VNet隔离,需确保计算集群/实例处于同一VNet,或ACR防火墙规则允许Azure ML工作区的出站IP访问

二、计算集群 vs 计算实例选择

  • 计算集群:优先用于训练任务
    • 支持自动缩放,空闲时自动停止节点,节省成本
    • 适配批量、长期运行的训练作业,支持多节点分布式训练
  • 计算实例:适合开发调试阶段
    • 为交互式虚拟机,用于Jupyter Notebook调试、代码开发
    • 持续运行(除非手动停止),成本较高,不适合正式训练任务

三、脚本代码修正

go.py存在拼写错误,需修正:

import subprocess

subprocess.run("python train.py", check=True)  # 添加check=True可捕获命令执行错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:58:00