AWS Lambda+Docker部署HuggingFace模型推理时导入transformers.training_args出现共享对象映射错误
AWS Lambda+Docker部署HuggingFace模型推理时导入transformers.training_args出现共享对象映射错误
看起来你遇到的问题根源很明确:Lambda的默认运行环境是CPU架构,而你安装的torch是带CUDA支持的版本,它依赖NVIDIA的libcufft.so.10库——但Lambda里根本没有这个GPU相关的库,所以导入依赖这个库的模块时就会触发共享对象映射失败的错误。
给你两个针对性的解决方案,按需选择:
方案一:安装CPU版本的PyTorch
修改你的requirements.txt,把torch的安装行替换成CPU专用版本:
torch==2.0.0+cpu --index-url https://download.pytorch.org/whl/cpu
或者在Dockerfile的pip安装命令里加上CPU源参数,确保安装的是纯CPU版本:
RUN pip install -r requirements.txt --index-url https://download.pytorch.org/whl/cpu
这样安装的torch就不会依赖任何GPU库,完全适配Lambda的CPU环境。
方案二:移除不必要的训练相关导入
看你的需求是做模型推理,而TrainingArguments和Trainer都是HuggingFace用于模型训练的工具类,推理场景下根本用不到。你可以直接修改model.py里的导入语句,删掉这两个类:
from transformers import AutoTokenizer, AutoModelForCausalLM
这样就不会触发对训练模块的导入,自然也不会加载那些GPU依赖的库了。这个方案更轻量化,还能减少镜像体积。
另外给你个小建议:本地测试Docker镜像的时候,尽量模拟Lambda的CPU环境运行,避免因为本地有GPU环境而忽略了依赖问题。
备注:内容来源于stack exchange,提问作者shiho
相关产品推荐
相关产品推荐

