在SageMaker部署HuggingFace Tapas模型时torch-scatter缺失报错求助
问题根因
你在Notebook环境安装torch-scatter不生效的核心原因是:报错来自于SageMaker托管的模型推理容器内部,而非你运行部署脚本的Notebook环境,两个环境的依赖相互独立,Notebook侧安装的库不会同步到推理容器中。
修复方案
你可以通过给HuggingFace容器附加自定义依赖的方式解决,操作步骤如下:
- 在你运行部署脚本的工作目录下,新建名为
requirements.txt的文件,写入以下内容匹配你的pytorch版本:
torch-scatter==2.0.9
- 修改你原有部署代码中的
HuggingFaceModel初始化部分,添加source_dir参数指向requirements.txt所在目录,修改后的完整代码如下:
from sagemaker.huggingface import HuggingFaceModel import sagemaker role = sagemaker.get_execution_role() # Hub Model configuration hub = { 'HF_MODEL_ID':'google/tapas-base-finetuned-wtq', 'HF_TASK':'table-question-answering' } # create Hugging Face Model Class,新增source_dir参数 huggingface_model = HuggingFaceModel( transformers_version='4.6.1', pytorch_version='1.7.1', py_version='py36', env=hub, role=role, source_dir="./" # 该目录下需要包含你刚才创建的requirements.txt ) # deploy model to SageMaker Inference predictor = huggingface_model.deploy( initial_instance_count=1, instance_type='ml.m5.xlarge' ) # 测试推理 predictor.predict({ 'inputs': { "query": "How many stars does the transformers repository have?", "table": { "Repository": ["Transformers", "Datasets", "Tokenizers"], "Stars": ["36542", "4512", "3934"], "Contributors": ["651", "77", "34"], "Programming language": [ "Python", "Python", "Rust, Python and NodeJS", ], } } })
注意事项
如果你后续改用GPU实例部署,需要选择和容器内CUDA版本匹配的torch-scatter版本,避免出现版本不兼容的运行时报错。
内容的提问来源于stack exchange,提问作者newiatester
相关产品推荐
相关产品推荐

