在Hugging Face SageMaker中导入LayoutLMv3Processor报错求助
解决Hugging Face SageMaker中LayoutLMv3Processor导入错误的方法
问题描述
- 触发的错误:
ImportError: cannot import name 'LayoutLMv3Processor' from 'transformers' (/opt/conda/lib/python3.8/site-packages/transformers/init.py)
- 使用的HuggingFace Estimator配置代码:
huggingface_estimator = HuggingFace(entry_point='train.py', source_dir='./', instance_type='ml.g5.xlarge', instance_count=1, role=role, transformers_version='4.12', pytorch_version='1.9', py_version='py38', hyperparameters = hyperparameters, sagemaker_session=sess, )
- 补充信息:未使用HuggingFace Estimator时,在SageMaker环境中可正常导入该模块,当前使用的SageMaker版本为
2.118.0
解决方案
1. 升级transformers版本
LayoutLMv3Processor是在transformers 4.17.0版本中正式引入的,你当前指定的transformers_version='4.12'版本过低,直接升级到符合要求的版本即可。修改Estimator配置中的transformers版本,同时注意匹配兼容的PyTorch版本:
huggingface_estimator = HuggingFace(entry_point='train.py', source_dir='./', instance_type='ml.g5.xlarge', instance_count=1, role=role, transformers_version='4.17.0', # 可选择更高的兼容版本 pytorch_version='1.10', # 4.17.0版本建议搭配PyTorch 1.10及以上版本 py_version='py38', hyperparameters = hyperparameters, sagemaker_session=sess, )
2. 自定义依赖安装(可选)
如果因环境限制无法直接升级Estimator指定的transformers版本,可以通过以下方式手动安装所需版本:
- 在训练脚本
train.py开头添加安装命令:
!pip install transformers>=4.17.0
- 或者在source_dir目录下创建
requirements.txt文件,写入:
transformers>=4.17.0
SageMaker启动训练时会自动读取并安装该文件中的依赖。
3. 验证版本兼容性
修改版本后,确保transformers、PyTorch和Python版本之间的兼容性,避免出现其他依赖冲突问题。
内容的提问来源于stack exchange,提问作者Talha Anwar
相关产品推荐
相关产品推荐

