AWS SageMaker创建HuggingFace估算器后无法提交训练作业
问题排查:SageMaker HuggingFace估算器无法创建训练作业,脚本挂起
核心问题
创建HuggingFace估算器后estimator.latest_training_job返回None,调用fit()后脚本无限挂起,SageMaker控制台/CLI无训练作业记录。
可能的原因及解决方案
1. Git仓库配置异常
脚本执行时显示仓库分支已同步,但可能存在拉取权限或路径问题,导致SDK卡在代码拉取环节:
- 检查
git_config是否包含完整正确的仓库信息:私有仓库需配置username和password(或SSH密钥),确保能正常拉取代码; - 确认仓库内
source_dir指定的jobs目录确实存在,且train.py、requirements.txt在该目录下; - 本地测试
git clone目标仓库,验证拉取流程是否正常。
2. 错误配置training_repository_access_mode参数
该参数用于模型部署阶段的仓库访问控制,训练估算器不需要此配置,设置后可能引发SDK逻辑冲突:
- 直接删除
training_repository_access_mode='Platform'这一行。
3. hyperparameters设置为None
SageMaker SDK期望hyperparameters为字典类型(即使是空字典),设置为None可能导致参数处理异常:
- 将
hyperparameters=None修改为hyperparameters={}。
4. IAM角色权限不足
角色缺少创建训练作业、访问S3/ECR的必要权限,导致SDK无法提交请求:
- 确保IAM角色包含以下权限:
- SageMaker:
sagemaker:CreateTrainingJob、sagemaker:DescribeTrainingJob等; - S3:对
llama-data桶的GetObject、PutObject、ListBucket权限; - ECR:对指定镜像仓库的
BatchGetImage、GetDownloadUrlForLayer权限;
- SageMaker:
- 使用AWS IAM Access Analyzer检查角色权限是否存在缺失。
5. SDK版本兼容性问题
旧版本SDK可能存在与指定镜像的兼容性bug,导致流程卡住:
- 升级SDK到最新稳定版:
pip install --upgrade sagemaker sagemaker-huggingface
6. 额外调试建议
- 暂时注释
git_config,将source_dir改为本地jobs目录,排除代码拉取环节的问题,验证训练作业能否正常创建; - 查看DEBUG日志的完整输出,重点关注"Train args after processing"之后的内容,是否有报错信息被截断;
- 确认SageMaker Session的区域与ECR镜像区域(
us-east-1)一致,避免跨区域资源访问问题。
内容的提问来源于stack exchange,提问作者Charlotte
相关产品推荐
相关产品推荐

