如何使用AWS Sagemaker与新版本的Huggingface Estimator?



当尝试在sagemaker上使用Huggingface estimator时,请在Amazon sagemaker上运行训练,例如

# create the Estimator
huggingface_estimator = HuggingFace(
entry_point='train.py',
source_dir='./scripts',
instance_type='ml.p3.2xlarge',
instance_count=1,
role=role,
transformers_version='4.17',
pytorch_version='1.10',
py_version='py38',
hyperparameters = hyperparameters
)

当我尝试将版本增加到transformers_version='4.24'时,它抛出了一个错误,支持的最大版本是4.17。

如何使用AWS Sagemaker与新版本的Huggingface Estimator?

在https://discuss.huggingface.co/t/deploying-open-ais-whisper-on-sagemaker/24761/9上使用新版本的推理有一个说明,但看起来使用它与Huggingface估计器进行训练的方式有点复杂https://discuss.huggingface.co/t/huggingface-pytorch-versions-on-sagemaker/26315/5?u=alvations,并且尚未确认复杂的步骤可以工作。

@alvas,

Amazon SageMaker是一项托管服务,这意味着AWS为您构建和操作工具,从而节省您的时间。在您的示例中,您感兴趣的工具是将新版本的HuggingFace Transformers库与SageMaker集成,应该对其进行开发、测试并部署到生产环境中。因此,这种集成自然会比上游库落后一个或几个版本。但作为一个好处,你总是得到一个版本的变形金刚被证明是稳定的,并与SageMaker兼容。

在您的情况下,您想在SageMaker中尝试最新版本的Transformers,这可能会牺牲稳定性和兼容性(v4.24在不到一个月前刚刚发布)。正如您正确地提到的,这个工作流程可能是"有点复杂",而没有确认复杂的步骤可以工作。@Arun Lokanatha建议尝试新版本的最简单方法。事实上,transformer可以使用常规的PyTorch估计器,但现在您需要使用较低级别的PyTorch估计器API来代替高级HuggingFace估计器API。上面提到的requirements.txt看起来像这样:

transformers==4.24.0

作为一个缺点,你需要自己做更多的工作,例如,找出所需的PyTorch/CUDA库的最小版本等。您还要负责测试、保护和优化适合生产级使用的集成,这可能会失去利用SageMaker的全部功能所带来的一些好处。

如果在我的解释之后您最终决定在生产中使用HuggingFace高级估计器,我建议您至少采取以下操作:

  • 直接在其源代码中查看最新版本SageMaker Python SDK中支持的当前版本列表(今天它是v4.17.0)。
  • 创建或监控一个要求在SageMaker Python SDK中支持新版本的现有问题,例如#3456支持Transformers v4.24.0。

我希望这个答案对你有帮助。

伊万

您可以使用Pytorch估计器,并在源目录中放置一个添加了transformer的requirements.txt。这将确保两件事

  1. 你可以在huggingface估计器中使用比1.10.2更高版本的pytorch 1.12(当前)。
  2. 安装新版本的HuggingFace Transformers库。

要实现这一点,您需要像这样构建您的源目录

脚本/train.py/让

并将source_dir属性传递给pytorch估计器

pt_estimator = PyTorch(
entry_point="train.py",
source_dir="scripts",
role=sagemaker.get_execution_role(),

您可以通过

步骤1:使用所需的hf版本创建自定义ECR映像(https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html)

步骤2: Develop your Train.py

步骤3::将train.py和新的ecr映像uri传递给sagemaker.estimator。(https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html)

相关内容

  • 没有找到相关文章

最新更新