内容提要
Databricks改进了LLM堆栈,提高了预训练和微调效率。他们使用FP8相比BF16实现了1.4倍-1.5倍的加速。他们还改善了模型FLOPS利用率,并发现FP8的较低精度对模型收敛几乎没有影响。Databricks实施了可配置的激活检查点、自定义并行配置的DTensor和用于更快训练的Transformer Engine FP8。他们还使用压缩技术来缓解通信瓶颈。Databricks邀请合作伙伴使用他们的训练平台进行高效和高性能的AI训练。
延伸解读
FP8加速的实际效果与精度权衡
Databricks在64块H100 GPU上测试显示,FP8相比BF16实现了1.4-1.5倍的训练加速,且损失曲线紧密跟随,表明低精度对模型收敛影响极小。但需注意,FP8的模型FLOPS利用率(MFU)低于BF16,这是因为FP8理论计算能力是BF16的两倍,实际利用率自然较低。因此,FP8主要提升吞吐量,而非硬件利用效率。
可配置激活检查点:内存与计算的精细平衡
传统激活检查点通常作用于整个Transformer块,但Databricks允许针对任意层或子模块(如仅对grouped_query_attention)进行检查点,从而在节省GPU内存的同时最小化重计算开销。例如,可对前5层全检查点,后35层仅检查注意力部分。这种灵活性有助于在有限内存下训练更大模型或更大批量。
DTensor与压缩技术:突破大规模训练通信瓶颈
DTensor支持灵活的自定义并行配置,通过将模型分片限制在较小块内并复制到整个集群,避免了全集群AllGather的延迟线性增长问题,从而在数千GPU上实现近线性扩展。此外,针对通信和激活张量仍使用高精度格式的瓶颈,Databricks采用自定义压缩内核,减少通信量并提升每GPU令牌数,进而提高矩阵乘法规模和硬件利用率。
Q&A
Databricks在LLM堆栈中做了哪些改进?
Databricks改进了LLM堆栈,提高了预训练和微调效率,使用FP8实现了1.4倍-1.5倍的加速。
FP8与BF16相比有什么优势?
FP8相比BF16实现了更高的训练速度,且对模型收敛几乎没有影响。
什么是可配置的激活检查点?
可配置的激活检查点是一种技术,通过存储部分激活并在反向传播中重新计算缺失的激活,以节省GPU内存。
DTensor在训练中的作用是什么?
DTensor提供灵活的并行配置接口,帮助在多GPU集群中优化模型的分片和复制,提高训练性能。
Databricks如何缓解通信瓶颈?
Databricks使用自定义内核压缩张量,以减轻通信瓶颈并提高硬件利用率。
Databricks的训练平台适合哪些用户?
Databricks的训练平台适合希望从头开始训练或微调基础模型的合作伙伴,以提高效率和性能。