求助:SageMaker注册PyTorch模型后Studio性能指标加载网络错误
SageMaker新版Studio注册PyTorch模型后性能指标加载NetworkError问题
问题背景
我基于PyTorch的sentence-transformers模型搭建了SageMaker Pipeline,包含模型注册步骤,其中model_metrics由信息检索评估器生成。参考官方教程实现时,发现教程多基于SKLearn estimator,而我用PyTorch模型注册后,在新版SageMaker Studio(非经典版)查看已注册模型的「性能」标签时,「模型指标」加载转圈后提示NetworkError when attempting to fetch resource.。已确认:
- 未添加
model_metrics时无此问题 - 指标文件确实存在于注册时指定的S3 URI
- 替换为教程示例的
evaluation.json仍报错
解答
1. 是否有人成功实现该功能?
肯定有,不少开发者在PyTorch模型(包括sentence-transformers这类基于PyTorch的封装模型)上成功配置过模型指标展示,问题并非框架本身限制,大概率出在格式、权限或配置细节上。
2. 指标文件是否需要特定格式?
是的,必须严格遵循SageMaker要求的JSON格式,不能自定义结构。核心要求如下:
- 根节点需包含
metrics数组,每个数组元素为单个指标对象,必须有name(指标名称)和value(指标数值),可选字段unit(指标单位) - 需保证JSON语法合法,无语法错误(比如末尾多余逗号)
- 注册时需通过
ModelMetrics对象正确关联,且指定content_type="application/json"
示例合法格式:
{ "metrics": [ { "name": "Recall@10", "value": 0.85, "unit": "%" }, { "name": "MAP@5", "value": 0.72 } ], "framework": "PyTorch", "dataset": "自定义检索测试集" }
注册时的代码示例:
from sagemaker.model_metrics import ModelMetrics, MetricsSource model_metrics = ModelMetrics( model_statistics=MetricsSource( s3_uri="s3://your-bucket/path/to/evaluation.json", content_type="application/json" ) ) # 注册模型时传入model_metrics model.register( model_package_group_name="your-group-name", model_metrics=model_metrics, ... )
3. 如何获取更详细的错误信息?
- 查看浏览器开发者工具:打开新版Studio页面后按F12进入开发者工具,切换到「Network」标签,重新加载「性能」页面。查看失败的请求:确认请求的S3 URI是否正确,响应的HTTP状态码(比如403是权限问题,404是路径错误),以及响应内容中的具体错误提示
- 验证S3权限与路径:在Studio终端执行
aws s3 cp s3://your-bucket/path/evaluation.json -,如果无法下载,说明路径错误或SageMaker Studio的执行角色没有s3:GetObject权限,需在IAM控制台补充对应权限策略 - 检查Pipeline日志:在SageMaker控制台找到对应的Pipeline运行记录,查看「Register Model」步骤的日志,确认
model_metrics是否被正确关联,有没有注册时的报错信息 - 直接访问S3文件:复制指标文件的S3 URI,在浏览器中尝试访问(需确保本地有AWS权限),看是否能正常打开JSON文件
内容的提问来源于stack exchange,提问作者David Waterworth
相关产品推荐
相关产品推荐

