涡轮增压训练:使用FP8优化Databricks Mosaic AI堆栈

涡轮增压训练:使用FP8优化Databricks Mosaic AI堆栈

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

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的训练平台适合希望从头开始训练或微调基础模型的合作伙伴,以提高效率和性能。

🏷️

标签

➡️

继续阅读