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

SageMaker的SKLearnModel部署时requirements.txt依赖未安装的问题求助

SageMaker的SKLearnModel部署时requirements.txt依赖未安装的问题求助

大家好,我在使用AWS SageMaker的SKLearnModel部署模型时遇到了依赖安装的问题,想请教下大家怎么解决。

先贴一下我的部署代码:

from sagemaker.sklearn import SKLearnModel

role = sagemaker.get_execution_role()

model = SKLearnModel(
    model_data= f"s3://{default_bucket}/{prefix}/model.tar.gz",  
    role=role,
    entry_point="inference.py",    
    framework_version="1.2-1",      
    py_version="py3",
)

predictor = model.deploy(
    instance_type="ml.c5.large",
    initial_instance_count=1,
    container_startup_health_check_timeout=180
)

我上传到S3的model.tar.gz包内容如下(我还参考PyTorch模型的文档试过把requirements.txt放到code/目录里,但也没用):

?rw-r--r-- sagemaker-user/users    4349839 2024-11-29 19:22:21 model.pkl 
?rw-r--r-- sagemaker-user/users         24 2024-12-02 14:43:26 inference.py 
?rw-r--r-- sagemaker-user/users      44212 2024-11-29 19:23:17 explainer 
?rw-r--r-- sagemaker-user/users         24 2024-12-02 14:43:26 requirements.txt 

requirements.txt里的内容很简单:

dill
pandas
joblib

(补充下,我查过AWS的官方代码,知道pandas是容器默认安装的,所以主要问题是dill和joblib没装上)

现在的问题是,当我尝试部署时,inference.py第一行的import dill会报错说找不到这个模块。去CloudWatch日志里看,发现只有inference 1.0.0被安装了——我猜这个应该是指我的脚本本身,而不是依赖包。

我知道可以在inference.py里用subprocess调用pip手动安装依赖,但总觉得这不是规范的做法,想问问大家有没有正确的方式让SageMaker自动安装requirements.txt里的依赖?

备注:内容来源于stack exchange,提问作者Daniele Gentili

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:39:34