知识蒸馏(KD)是将大型语言模型(LLMs)压缩为更小模型的重要技术。然而,尽管学生模型和教师模型在KD中扮演着不同角色,大多数现有框架仍然使用同质的训练后端(如FSDP和DeepSpeed)来训练这两种模型,导致训练效率低下。本文提出了一种新颖的LLM蒸馏框架,称为 KDFlow,其具有解耦架构并采用SGLang进行教师推理。通过结合FSDP2的训练效率和SGLang的推理效率,KDFlow在统一系统中实现了这两种优势的充分利用。
此外,我们的框架并不传输完整的logits,而是仅使用零拷贝数据传输传递教师的隐藏状态,并在学生端重新计算logits,有效平衡了通信成本和KD性能。KDFlow还支持离线和在线蒸馏,并通过高度可扩展和用户友好的API集成了跨分词器的KD算法。实验表明,KDFlow相较于当前的KD框架可以实现 1.44$\times$ 到 6.36$\times$ 的加速,使研究人员能够以最小的工程开销快速原型和扩展LLM蒸馏。代码可在 GitHub 获取。
博主点评: KDFlow通过解耦架构和高效的数据传输策略,显著提升了知识蒸馏的效率。其灵活的API设计和支持多种蒸馏策略,为研究人员提供了极大的便利,尤其是在进行大规模模型训练时,这将大大降低时间和资源的消耗。整体来看,KDFlow的发布将推动LLM领域的进一步发展。