AI开发平台MODELARTS-附录:训练常见问题:问题1:在训练过程中遇到NPU out of memory

时间:2024-11-12 16:42:44

问题1:在训练过程中遇到NPU out of memory

解决方法:

  1. 容器内执行以下命令,指定NPU内存分配策略的环境变量,开启动态内存分配,即在需要时动态分配内存,可以提高内存利用率,减少OOM错误的发生。
    export PYTORCH_NPU_ALLOC_CONF = expandable_segments:True
  2. 将yaml文件中的per_device_train_batch_size调小,重新训练如未解决则执行下一步。
  3. 替换深度学习训练加速的工具或增加zero等级,可参考模型NPU卡数、梯度累积值取值表,如原使用Accelerator可替换为Deepspeed-ZeRO-1,Deepspeed-ZeRO-1替换为Deepspeed-ZeRO-2以此类推,重新训练如未解决则执行下一步。
    1. - ZeRO-0 数据分布到不同的NPU
    2. - ZeRO-1 Optimizer States分布到不同的NPU
    3. - ZeRO-2 Optimizer States、Gradient分布到不同的NPU
    4. - ZeRO-3 Optimizer States、Gradient、Model Parameter分布到不同的NPU
  4. 增加卡数重新训练,未解决找相关人员定位。
support.huaweicloud.com/bestpractice-modelarts/modelarts_llm_train_90936.html