问题
以ChatGPT为代表的大模型在文字生成、语义理解等任务上表现卓越,但大模型的参数量在3年内增长数万倍,且仍呈现增长的趋势。大模型训练面临存储挑战,存储需求大,且具有独特的计算模式、访存模式、数据特征,这使得针对互联网、大数据等应用的传统存储技术在处理大模型训练任务时效率低下,且容错开销大。
面向大模型训练的存储加速技术
基于大模型计算模式的分布式显存管理技术
依据大模型计算任务的划分模式和计算任务间的依赖关系,设计模型数据在分布式集群中的划分、存储和传输策略。
细分为2种模式:模型层间并行,以张量为粒度对模型数据进行拆分;模型层内并行,以张量种某一维度为粒度对模型数据进行拆分。
模型层间并行,数据并行:
![](https://i-blog.csdnimg.cn/direct/c470c7a1e5f84ebf94d8da38934cc498.png)
模型层间并行,流水线并行:
![](https://i-blog.csdnimg.cn/direct/ba60e0b2e37b4e8589cf693ada941d91.png)
![](https://i-blog.csdnimg.cn/direct/a49bb9ee44ed422bb604339377cfc108.png)
模型层内并行,张量并行:
![](https://i-blog.csdnimg.cn/direct/6161bdc0fa294675a918f1d8e002441b.png)
![](https://i-blog.csdnimg.cn/direct/908088c4aa114560b7ea604bde02f6ed.png)
大模型训练访存感知的异构存储技术
借助大模型训练中的访存模式可预测的特性,设计异构设备中的数据预取和传输策略。同时利用GPU显存、DRAM、SSD,将模型参数、优化器数据、训练中间结果卸载,根据预测的仿存模式进行预取。
![](https://i-blog.csdnimg.cn/direct/aa011275893f4f18b906cd04216eae9b.png)
基于DRAM的异构存储技术:
-
异步显存管理:异步分配显存空间
-
异步数据传输:将计算和传输重叠,预取
-
显存卸载策略:静态策略(仅卸载卷积层)、动态策略(根据显存开销动态卸载)
基于SSD的异构存储技术:
结合使用数据压缩和卸载,降低数据传输开销
大模型数据缩减技术
针对大模型数据的特征,通过增加计算量或牺牲模型精度,对模型训练过程中的数据进行缩减。
激活量检查点与重算:在前向传播时,仅保存少量的激活量作为检查点,并丢弃其他的激活量。在反向传播需要使用丢弃的激活量时,系统利用激活量检查点重新进行前向传播,以恢复之前所丢弃的激活量。
混合精度训练与量化:使用半精度(FP16)降低显存开销,通过权重备份(额外保留全精度模型参数,训练使用半精度参数)、损失量(loss)扩展、算数精度提高,避免数据溢出、误差、不收敛、梯度过小的问题。
各种方法比较
![](https://i-blog.csdnimg.cn/direct/01980d83bb3243c4937b9926caf66ed7.png)
![](https://i-blog.csdnimg.cn/direct/6bd65bec21c34d6683246a22b70a152d.png)
针对大模型训练的存储容错技术
参数检查点技术
将大模型参数存储至持久化存储介质,GPU故障后利用最新且完整的参数进行恢复。
面临挑战:参数持久化开销大,会阻塞计算任务;参数检查点频率会影响训练和恢复效率。
将检查点过程拆分,与模型训练重叠:
![](https://i-blog.csdnimg.cn/direct/6bf35be58dc643f9a0f3b3a72c39d8a2.png)
冗余计算技术
在多张GPU中重复计算相同版本的参数。
总结
大模型训练过程中对存储需求大,具有独特的计算模式、访存模式、数据特征,需要根据特征设计合适的存储策略。大模型训练存储加速技术:(1)显存管理:数据并行、流水线并行、张量并行。(2)异构存储技术:利用DRAM、SSD,卸载模型参数、优化器数据、中间结果,并进行预取。(3)数据缩减:增加计算量(激活量重算)或牺牲模型精度(半精度训练)。大模型训练容错技术:(1)参数检查点:将检查点过程拆分,与模型训练重叠。(2)冗余计算:在多张GPU重复计算。