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

Azure ML中Yolov8训练Job与Dataset YAML配置及权限问题咨询

解决方案:修复Azure ML CLI v2训练Yolov8的权限拒绝问题

一、修正YAML文件配置

1. 修正job.yaml中的数据资产引用

你当前training_data的path格式错误,Azure ML数据资产的正确引用格式是azureml:<data-asset-name>:<version>,而非azure:data_asset:1。修改后示例:

inputs:
  training_data:
    type: uri_folder 
    mode: ro_mount
    path: azureml:your-data-asset-name:1  # 替换为你的数据资产名称和版本

2. 调整custom_dataset.yaml的路径与语法

当数据以ro_mount模式挂载后,${{ inputs.training_data }}指向挂载根目录,需将train/test/val路径改为相对路径(去掉开头斜杠),同时修正YAML语法错误:

path: ../dataset  # 该行会被sed替换为挂载路径,无需手动修改
train: images/train/  # 改为相对路径,基于path指定的根目录
test: images/test/
val: images/test/

nc: 2  # YAML语法要求用冒号,替换原有的等号

# class names
names: ['class1', 'class2']  # 数组元素加引号,避免语法解析问题

3. 优化job中的sed命令

确保路径替换后的格式正确,避免转义问题,调整命令如下:

command: |
  sed -i "s|^path:.*|path: '${{ inputs.training_data }}'|" custom_dataset.yaml
  yolo task=detect train data=custom_dataset.yaml model=${{ inputs.model_to_train }} epochs=10 project=yolov8-experiment name=experiment

二、配置必要的权限

1. 计算集群托管标识的存储权限

Azure ML计算集群的托管标识需要访问数据资产对应的存储账户:

  • 进入Azure门户,找到数据资产所在的存储账户
  • 转到「访问控制(IAM)」页面,点击「添加角色分配」
  • 选择「存储Blob数据读取者」角色,添加对象为你的Azure ML计算集群托管标识(名称通常为azureml-compute-<cluster-name>)

2. 用户账号的权限

确保提交作业的账号拥有以下权限:

  • 工作区的「机器学习数据科学家」或「参与者」角色
  • 数据资产的「读取」权限(可在Azure ML Studio的数据资产页面配置)

3. 存储容器权限检查

若数据资产存储在自定义容器中:

  • 若容器为私有访问级别,必须通过上述IAM角色授权;若为blob匿名读取,可临时测试,但生产环境建议使用IAM授权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:27:31