SageMaker推理时模型路径不存在问题求助(FastAPI部署场景)
问题排查与解决步骤
1. 修正目录命名与路径匹配
你打包的文件夹是pre-models(横杠),但代码里写的路径是pre_models(下划线),这是核心的命名不匹配问题。先统一命名:要么把本地的pre-models文件夹重命名为pre_models,要么把代码里的路径改为ml/pre-models。
2. 确认tar包的解压结构
你执行的打包命令cd opt/ml/ && tar -czvf pre-models.tar.gz pre-models是正确的,tar包解压后顶层目录会是pre-models。但SageMaker会把模型包默认解压到/opt/ml/model目录下,所以解压后的实际路径是/opt/ml/model/pre-models,代码里的路径需要对应这个位置:
- 绝对路径写法:
/opt/ml/model/pre-models/[子目录] - 若代码运行目录为
/opt/ml,相对路径写法:model/pre-models/[子目录]
3. 本地验证tar包内容
先在本地解压tar包确认结构,避免打包时嵌套多余目录:
tar -tvf pre-models.tar.gz
输出应显示顶层为pre-models文件夹,以及内部的子目录和文件,没有opt/ml/这类上层路径嵌套。
4. 容器内路径排查
如果问题仍存在,可在推理容器内执行命令查看实际解压后的文件结构:
ls -la /opt/ml/model/
确认pre-models(或修正后的pre_models)是否存在,再根据实际输出调整代码中的路径。
内容的提问来源于stack exchange,提问作者R.K
相关产品推荐
相关产品推荐

