在 AWS Sagemaker 中利用 HuggingFace Trainer 的最小 FSDP 示例

问题描述 投票:0回答:1

我目前正在尝试在 AWS Sagemaker 中微调 LLM。由于它太大,无法安装在单个 GPU 上,因此我尝试将模型权重分配到 AWS Sagemaker 实例中的多个 GPU 上。在我的训练脚本中,我使用 HuggingFace Trainer。由于 HuggingFace Trainer(带有 fsdp 参数)、PyTorch 库(带有 torch.distributed)以及 AWS Sagemaker(带有 smdistributed)都具有启用 fsdp 的机制,我完全困惑如何(或应该?)启用 FSDP对于我的用例。

如果有人可以帮助我,提供一个关于如何在 AWS Sagemaker 培训作业中利用 HuggingFace Trainer 启用 FSDP 的最小但可行的示例。

amazon-web-services pytorch amazon-sagemaker large-language-model huggingface
1个回答
0
投票

我不知道具体的例子,但这是我的想法:

  • HuggingFace FSDP Trainer 集成已通过
    accelerate launch
    启动(解释于此处
  • SageMaker 允许您传入所需的任何入口点脚本(解释此处
  • 因此原则上基于 HF Trainer 的 FSDP 脚本中不应发生任何更改;您只需创建适当的启动脚本即可。这是 HF 加速启动脚本的示例

一般来说,通过 HF 的 Trainer 使用 FSDP 只是抽象处理实际的训练循环。至于 SM DDP 优化集体,现在可以更好地集成到 pytorch 中;当您使用 PyTorch 实例化进程组时,它们只是将默认的 nccl 后端替换为 smddp 后端。如果您在 SageMaker 训练作业上运行 HF 的 Trainer,此功能将默认为您打开,因为您可以看到 HF 已将其集成到此处

© www.soinside.com 2019 - 2024. All rights reserved.