如何在AWS SageMaker中使用新版本的HuggingFace Estimator?
在AWS SageMaker训练场景中使用高版本Transformers的解决方案
在AWS SageMaker使用HuggingFace Estimator开展训练时,直接将transformers_version设为4.24会触发报错,提示当前环境最高仅支持4.17版本。官方目前仅提供了推理场景下使用新版本的说明,训练场景的适配方法相对复杂且有效性未经过充分验证,以下是一套可落地的实操方案:
解决步骤
- 自定义训练依赖包
在source_dir指定的目录(示例中为./scripts)下创建requirements.txt文件,写入内容:
transformers==4.24.0
SageMaker启动训练实例时,会自动安装指定版本的Transformers,覆盖默认的4.17版本。
- 调整Estimator初始化代码
保持transformers_version='4.17'不变(规避官方版本校验逻辑),其他参数无需修改,示例代码如下:
# create the Estimator huggingface_estimator = HuggingFace( entry_point='train.py', source_dir='./scripts', # 确保该目录下存在requirements.txt instance_type='ml.p3.2xlarge', instance_count=1, role=role, transformers_version='4.17', pytorch_version='1.10', py_version='py38', hyperparameters = hyperparameters )
- 验证版本加载情况
在train.py开头添加版本检查代码,确认Transformers版本正确加载:
import transformers print(f"Transformers version: {transformers.__version__}")
注意事项
- 需确认高版本Transformers与指定的PyTorch版本兼容:4.24.0和PyTorch 1.10是兼容的,若后续升级其他版本,需提前核对两者兼容性。
- 自定义依赖安装会增加训练实例的启动时间,需预留额外初始化时长。
内容的提问来源于stack exchange,提问作者alvas
相关产品推荐
相关产品推荐

