1、显存占用关键数据,包括:
模型参数:包含大量参数,如权重矩阵和偏置向量(协助实现负载均衡,γ 决定了偏置项的更新速度,α 主要用于衡量序列级平衡损失在整个模型训练损失中的重要程度。)等。
中间结果:计算过程的中间结果也会存储在显存中,如激活值、梯度和卷积中间结果。
优化器状态:包括动量(加速收敛并减小震荡)、自适应学习率(根据参数随时变化的收敛速率)等优化器状态信息。
数据副本:分布式训练中为了并行处理数据会存储部分数据副本。
2、并行策略的实现原理及其对显存占用的影响:
1)张量并行
实现原理:将张量分割成多个部分,分布到不同的加速卡上进行计算。例如将矩阵按行和列分割。
显存影响:由于将张量分到不同的加速卡中,减少单个卡张量大小,从而降低显存占用。但由于不同加速卡需要通信和同步,会增加额外显存开销。
2)序列并行:
实现原理:对序列数据进行不同加速卡分割。如将长文本按照段落分割。
显存影响:和张量并行类似,将序列数据分到不同加速卡,降低显存占用,增加通信和同步开销。
3)流水并行
实现原理:将神经网络不同层次划分到多个加速卡中。
显存影响:减少单个存储卡存储模型参数和中间结果,降低显存占用。需要额外显存去存储中间状态和同步信息。
4)数据并行:
实现原理:将训练数据分割成多个子集,每个加速卡上都有完整的模型副本,各自处理不同的数据子集。在反向传播过程中,将各个加速卡上计算得到的梯度进行聚合,更新模型参数。
显存影响:每个加速卡上都需要完整的模型参数,显存占用随加速卡数量增加而线性增加。
5)上下文并行:
实现原理:将上下文相关的计算任务分割为多个部分,分布到不同加速卡上。如对话系统中,将多个轮次对话分到不同加速卡上。
显存影响:减少单个加速卡上的上下文数据大小。同样会有通信和同步开销。
6)专家并行:
实现原理:将不同的专家模块分配到不同的加速卡中。根据输入数据特点选择相应加速卡。
显存影响:减少单个加速卡中的专家模块参数数量,降低显存占用。但是加速卡间进行路由和选择会增加通信开销,从而影响显存使用。
3、在 NPU 芯片建模中,DCU 通常是 “Digital Control Unit” 的缩写,即数字控制单元。数字控制单元是 NPU 芯片中的一个关键组件,主要负责对芯片的各种数字信号进行处理和控制,协调芯片内各个模块的工作,以实现高效的神经网络计算。例如,它可以控制数据在不同存储单元和计算单元之间的传输,确保数据的正确流向和处理顺序,还能对计算过程中的各种参数进行配置和调整,以适应不同的神经网络模型和应用场景。