单机多卡训练baichuan2

本文记录了在单机多卡训练中遇到的问题和解决过程,从使用baichuan到尝试accelerate。文章讨论了如何选择运行环境、是否进行分布式操作错误检查、是否使用torch.dynamo优化、是否使用Deepspeed、是否启用FSDP等关键决策,并详细解释了每个选项的影响和考虑因素。在实践中遇到了配置文件不存在的错误,作者正在寻求解决方案。
摘要由CSDN通过智能技术生成

  起因:使用GitHub - baichuan上的单机训练显示内存不足,所以准备单机多卡训练,但看不懂多机训练的代码以及不明确它这个多机训练的定义,又在大佬的建议下,决定单机多卡使用accelerate,见图:

“单机多卡。用accelerate" cr 大佬

于是参考这篇链接:7_accelerate,试图按照步骤来,但出现了一个没解决的老问题,就是服务器连不上huggingface(烦),于是我决定手动下载然后上传,然后进行配置,一些过程记录:

Q1:Please select a choice using the arrow or number keys, and selecting with enter.选择是This machine 和 AWS(Amazon SageMaker),

A:在这个选择中,你被要求选择你的运行环境。这通常会影响配置文件的设置和如何优化你的训练任务。下面是每个选项的简单说明:

  1. This machine

    • 如果你选择 "This machine",那么配置和优化将针对你当前的机器或服务器进行。这是一个适用于本地服务器或你直接可以访问的服务器的选项。
  2. AWS (Amazon SageMaker)

    • 如果你选择 "AWS (Amazon SageMaker)",那么配置和优化将针对运行在Amazon SageMaker服务上的训练任务进行。Amazon SageMaker是一个托管的机器学习服务,它允许你在云中轻松构建、训练和部署机器学习模型。

由于你提到你是在一台服务器上进行多卡训练,你应该选择 "This machine" 选项。这样,配置将针对你的服务器环境进行优化,以确保你可以充分利用你的多卡硬件来加速训练过程。

Q2:Should distributed operations be checked while running for errors?This can avoid timeout tissues but will be slower.

A:这个问题是在询问你是否希望在运行过程中检查分布式操作以便发现错误。在一个分布式系统(例如多卡训练或多机训练)中,运行时错误检查可以帮助识别和调试可能出现的问题,例如通信错误或数据不一致等。然而,启用运行时错误检查可能会降低运行速度,因为它会增加额外的计算和通信开销。

以下是选择 "Yes" 或 "No" 的一些考虑因素:

  • 选择 "Yes":

    • 如果你选择 "Yes",系统会在运行过程中检查分布式操作的错误。这可以帮助你更快地识别和解决问题,特别是在调试新代码或配置时。
    • 但是,这可能会降低训练速度,因为错误检查需要额外的计算和通信。
  • 选择 "No":

    • 如果你选择 "No",系统不会在运行过程中检查分布式操作的错误。这可能会提高运行速度,但如果出现问题,可能会更难诊断。
    • 这个选项可能更适合在你已经测试过你的代码,并且相信它没有明显错误的情况下使用。

最终的选择取决于你的具体需求和优先级。如果你更关心运行速度并且相信你的代码是正确的,你可能会选择 "No"。如果你更关心错误诊断并愿意接受一些额外的运行时间开销,你可能会选择 "Yes"。

Q3:Do you wish to optimize your script with torch dynamo?eager,aot_eager,inductor,nvfuser,aot_nvfuser,aot_cudagraphs,ofi,fx2trt,onnxrt,ipex,

A:Torch Dynamo 是一个可以优化 PyTorch 脚本的工具。它通过分析和转换你的 PyTorch 代码,以提高运行效率并减少内存使用。它可能会应用一系列的优化技术,例如内联(inlining)、常量传播(constant propagation)、死代码消除(dead code elimination)等,以提高你的 PyTorch 脚本的运行速度。

在你面对的选择中:

  • 选择 "Yes":

    • 如果你选择 "Yes",accelerate 将尝试使用 Torch Dynamo 优化你的脚本。这可能会使你的脚本运行得更快,但可能会使代码变得更难调试(例如,如果优化改变了代码的行为或引入了新的错误)。
  • 选择 "No":

    • 如果你选择 "No",accelerate 不会尝试优化你的脚本。你的脚本可能会按照常规速度运行,但不会应用任何额外的优化技术。

如果你正在寻求更快的运行速度,并且愿意尝试自动优化,那么选择 "Yes" 可能是一个好选择。但是,如果你更关心保持代码的清晰和可调试,或者如果你已经手动优化了你的代码,那么选择 "No" 可能更合适。

  1. Eager:

    • 这是
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值