昇腾社区首页
中文
注册

约束限制

  • 当前版本只支持在A+K(Ascend+Kunpeng)形式的组合硬件上部署使用。
  • 众多大模型框架都支持ZeRO(Zero Redundancy Optimizer)来减少对显存的使用,当前故障快速恢复特性在开启ZeRO-1特性时,仅支持DP(Data Parallelism) Size为偶数,同时DP Size做如下约束。
    • DP Size限制:
      • 针对分布式优化器,MindIO TTP实现优化器数据副本的方式,是在ZeRO-1功能的基础上,通过以算代传实现,在DP Size域上减少优化器ZeRO-1切分范围,实现了优化器副本机制,默认为2副本。
      • 为了保证故障发生后,有完整的优化器状态数据,要求副本数是2时,DP Size大于1;多副本数时要求副本数能被DP Size整除。
      • 开启MoE(Mixture of Experts)前要求稠密层DP Size大于1;开启MoE后要求稠密层和稀疏层DP Size都大于1。
    • 开启分布式优化器特性后,优化器状态数据全局只有一份,无数据冗余。故障快速恢复特性通过增加优化器状态冗余数据副本,保证故障场景下优化器状态数据的完整性,但同时该方案会导致片上内存使用增加,详情请参见3.2-2.f。在原有的模型配置基础上,直接开启故障快速恢复特性可能会导致模型训练启动过程中出现片上内存OOM(Out Of Memory)异常。在此情况下,需要通过扩容增加训练作业的片上内存总量。

      增加副本对应增加的片上内存大小计算公式:增加片上内存总量(GB) = 模型参数量N(B) * 12 * 副本数,其中,模型参数量的单位为B(十亿),通过以上公式,计算出需要增加的片上内存,扩容后,再开启故障快速恢复特性。

  • 训练容错框架中有Active Controller与两个Backup Controller,为了包括Active Controller在内多张卡发生故障时,能够顺利切换到Backup Controller完成临终保存,需要状态正常的卡的数量大于world_size的一半。
  • 故障快速恢复特性,会对优化器状态数据做副本,生成临终CheckPoint数据时,通过寻找有效的副本,拼凑出一份完整的优化器状态数据,当训练集群发生多卡故障,通过副本仍然无法拼凑出一个完整副本时,则会无法生成临终CheckPoint数据。
  • MindIO TTP是在训练任务故障后,保存一次临时CheckPoint,写接口返回后,MindIO TTP会通知训练进程、容器立即退出。为了确保MindIO TTP写入的数据在进程、容器退出前数据已经到持久化存储,约束MindIO TTP写数据直接写入到持久化存储,不使用异步CheckPoint。
  • 故障快速恢复特性目前不支持级联故障场景。例如:当MindIO TTP正在保存时,如果出现其他故障,就会保存失败。
  • 日志打印配置了默认logger实现,日志保存路径默认在运行脚本同级目录下“logs/ttp_log.log”文件,可在运行脚本里自行配置,默认日志级别为“INFO”,日志文件数量限制为5个,单个大小限制为10MB,写方式为单个追加写,多个文件循环写覆盖旧文件。