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

Azure ML CLI创建作业报错:代码快照在Blob存储中被修改

问题分析与解决方案

错误原因解析

这个错误的核心是Azure ML的代码快照校验机制在起作用:提交作业时,Azure ML会对你指定的本地code目录生成哈希值,上传到Blob存储后会再次校验该哈希。如果Blob中的快照内容和本地计算的哈希不匹配,就会触发“代码快照被篡改”的提示。

你提到的“计算实例对比数据资产和代码文件夹哈希”是误解——数据资产和代码快照是完全独立的两个资源,校验只针对代码快照本身,和数据资产无关。可能的触发场景包括:

  • 本地code目录在提交后到作业启动前被修改
  • Azure ML存储端的代码快照文件出现损坏或意外修改
  • 本地路径配置问题(比如code指向了包含动态生成文件的目录,导致每次哈希不一致)

针对你的YAML配置的修复步骤

1. 确保代码目录稳定

检查C:/CODE/azureml-examples/CODE_azure/目录:

  • 移除临时文件、日志、自动生成的缓存文件夹(比如__pycache__、.ipynb_checkpoints)
  • 提交作业前不要修改该目录内的任何文件

2. 强制生成新的代码快照

如果是旧快照缓存导致的问题,最简单的解决方法是:

  • 在本地代码目录中创建一个空文件(比如手动新建dummy.txt)
  • 修改现有文件的内容(比如在某个脚本末尾加个空行)
  • 重新提交作业,Azure ML会生成新的哈希和快照,绕过旧的校验

3. 优化代码快照配置(解决耗时问题)

针对两年前提到的快照耗时问题,现在Azure ML有更高效的优化方式:

  • 使用.amlignore文件:在代码目录根目录创建.amlignore,像.gitignore一样排除不需要上传的文件/目录(比如大文件、虚拟环境、缓存文件夹),减少快照体积和上传时间
  • 注册代码资产:提前将代码注册为Azure ML的代码资产,提交作业时直接引用资产路径(code: azureml:my-code-asset:1),避免每次提交都重新上传和生成快照,大幅提升效率
  • 直接使用计算实例本地代码:如果用计算实例作为目标,可以直接引用计算实例上的本地代码路径(比如code: /home/azureuser/code/),完全跳过代码上传和快照生成步骤

数据资产的正确使用说明

你的YAML中数据资产的配置是正确的,trainingData会被挂载到计算目标的$AZUREML_INPUT_trainingData路径下,和代码快照完全隔离。作业中可以通过这个环境变量访问数据集,比如修改command为:

ls $AZUREML_INPUT_trainingData

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:35:05