Aioga
AI资讯 / 行业动态
返回 AI资讯

Making Knowledge Distillation Cheap Enough to Run at Scale

Hugging Face:Blog(RSS)Aioga 编辑团队2026-08-10T10:05:36.000Z热度 58

🔗 阅读原文 via AIHOT · https://aihot.virxact.com/items/cmsn4c69701x9ron5wn1hfxxw

行业动态Hugging Face:Blog(RSS)

今日 AI 情报摘要

🔗 阅读原文 via AIHOT · https://aihot.virxact.com/items/cmsn4c69701x9ron5wn1hfxxw

中文正文 · AI 翻译

为什么蒸馏恢复成本高:#why-distillation-recovery-is-expensive 两个系统的变化:#two-systems-changes 这些变化在实践中意味着什么:#what-this-changes-in-practice 扩展到长上下文长度:#scaling-to-long-context-lengths 由此产生的学生模型:#the-resulting-student:https://multiversecomputing.com:https://github.com/CompactifAI/Full-Chunked-KL-Loss/tree/main:https://arxiv.org/abs/2608.03796

Making Knowledge Distillation Cheap Enough to Run at Scale
Making Knowledge Distillation Cheap Enough to Run at Scale

:https://cdn-uploads.huggingface.co/production/uploads/614a1ebb8f82f1df64d55126/jsYblMP3R5futGF9Y8Kl1.png

知识蒸馏:https://arxiv.org/abs/1503.02531,训练一个较小的学生模型以匹配较大教师模型的性能,是机器学习中一个著名的技术。随着近期开源大型语言模型的浪潮,比如 gpt-oss:https://huggingface.co/openai/gpt-oss-120b, Qwen:https://huggingface.co/collections/Qwen/qwen35, GLM:https://huggingface.co/zai-org/GLM-5.2, 或 Kimi:https://huggingface.co/moonshotai/Kimi-K3,这一研究主题再次成为主流。部署这些非常大的模型成本很高:近期的 Kimi-K3 模型:https://huggingface.co/moonshotai/Kimi-K3 拥有 2.8 万亿参数,仅加载就需要大约 3TB 的显存。因此,将它们压缩成较小的模型并通过知识蒸馏恢复原有能力,已经成为标准做法,如 Nvidia (Nemotron 3 Puzzle 75B:https://huggingface.co/nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4) 或 Multiverse Computing (Hypernova 60B:https://huggingface.co/MultiverseComputingCAI/Hypernova-60B-2605) 最近发布了高质量的压缩模型。

蒸馏步骤决定了大部分最终质量,但它通常也是流程中最昂贵的部分。保持教师模型和学生模型同时加载,并为每个标记生成整个词汇表的概率分布,需要巨量的显存,通常只能在数百个GPU和谨慎的张量并行策略下实现。我们最新的论文《面向大型语言模型的高效知识蒸馏:离线 Top-K Logits 与融合分块 KL 损失》:https://huggingface.co/papers/2608.03796,通过两个系统方面的改动来解决这个问题:一次性缓存教师模型的 Top-K logits,这样教师模型无需与学生模型同时占用内存;以及一种新的、节省内存的 KL 散度损失,它避免了生成整个词汇表大小 × 序列长度的矩阵,大幅度降低了显存使用量,远低于 PyTorch:https://pytorch.org 或 NVIDIA Megatron-Bridge:https://github.com/NVIDIA-NeMo/Megatron-Bridge 等库的默认实现。结合这两项改动,训练成本下降到足以在单个 GPU 上实现长上下文蒸馏,并且足够低廉,使大规模实验成为可能。

标准配置是使用 Kullback-Leibler 散度损失 (KL 损失)进行在线蒸馏:https://docs.pytorch.org/docs/2.13/generated/torch.nn.KLDivLoss.html,这要求教师模型和学生模型同时加载。在每个训练步骤中,教师模型进行完整的前向传播以生成输出分布,学生模型训练以匹配它。这是最具表现力的配置,因为可以使用完整的教师分布,但它也是最耗内存和计算的:每个标记位置需要保存两个完整词汇表的张量,并且教师模型必须在每一步都重新计算,即使其行为在整个训练过程中不变。

作为一个实际的例子,gpt-oss-120b 的词汇量为 201,088 个标记。在序列长度为 32K、批量大小为 4 的情况下,仅教师概率张量的形状就是 4 × 201,088 × 32,768;以 bfloat16 存储,这单个张量就占用了大约 50GB 的显存。再加上梯度、激活、模型权重和优化器状态,一次蒸馏训练迭代的显存峰值大约可达 250GB,甚至超过 H200 或 B200 GPU 的显存容量。在这篇文章中,我们展示了将 KL 损失重构为分块处理数据可以将成本几乎降为零。

:https://cdn-uploads.huggingface.co/production/uploads/668e37fd9c9aa124a3c867e8/-whmAUit96bo1Yy0vLPis.png 密集 KL 峰值约为 250GB,高于单个 H200 的 141GB 容量。融合分块损失永远不会形成这样的峰值,最大值约为 128GB。来源:论文图 1。

离线蒸馏。我们不是在每一步都重新计算教师模型,而是计算一次其输出,缓存每个位置最可能的前 100 个标记,并让学生模型针对该缓存进行训练。在训练期间教师模型无需驻留在内存中,并且一旦缓存存在就无需再次运行,因此同一个缓存可以在多次消融实验中重复使用。

融合的分块 KL 损失。为了理解为什么损失本身很昂贵,可以想象它实际构建的内容:对于序列中的每个标记位置和词汇表中的每个单词,损失需要一个数值来描述学生的预测与教师的不一致程度。排列成网格,就是每个词汇表条目一行,每个序列位置一列,对于 10 万+ 词的词汇表和长序列,这个网格非常巨大,而默认的 KL 损失计算方式是在生成单个数值之前会先构建整个网格。

我们比较了三种计算同一损失的方法,它们在数学上是等价的:

下方的 GIF 展示了密集与融合分块方法的区别:一种构建整个比较网格并保留所有内容,另一种每次构建并丢弃一片网格,因此内存不会超过单个块。

我们已经开源了分块损失的实现:github.com/CompactifAI/Full-Chunked-KL-Loss:https://github.com/CompactifAI/Full-Chunked-KL-Loss

:https://cdn-uploads.huggingface.co/production/uploads/614a1ebb8f82f1df64d55126/k4K6L0g7crbOk4ZqJuFuy.gif

下表将这四种配置对比:在线蒸馏和刚才描述的三种离线损耗实现。在单个H200 GPU上,使用Llama 3.1 8B Instruct:https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct 作为教师,以及3.2B Llama模型作为学生,8K令牌上下文下,四者训练损失几乎相同,尽管离线运行只针对每个令牌缓存的前100日志进行训练。

:https://cdn-uploads.huggingface.co/production/uploads/668e37fd9c9aa124a3c867e8/hV9Hu8he7f1kZJy_SS9X6.png

损失曲线在四种方法中几乎完全重叠,证实了使用前100缓存日志的离线蒸馏相对于在线蒸馏是无损的。来源:论文,图2。在这个序列长度下,融合分块丢失还不是最快的选择,其额外的向后传投影会消耗一些速度,但其真正的优势只有在上下文长度增加时才显现,下一节将演示这一点。

为了更清楚地看到缩放模式,我们在一个玩具输出-投影网络上运行了一个孤立的基准测试(没有变压器本体,只有损耗核)。在32K代币时,高峰内存从带稠密丢失的85.2 GiB降至全分块版本的5.45 GiB,减少了15.6×,而从64K代币开始,密集损失则完全失效。在256K代币中,完全分块损失消耗11.6 GiB,而下一个最佳分块版本为134.2 GiB,且每次迭代速度约快3.3×。

在32,768令牌上下文中提取出GPT-OSS 20B模型,融合丢失释放的内存使得配置从四个GPU节点缩减到一个。步进时间从57.0秒降至12.23秒,快约5×,GPU吞吐量从74.2提升至345.7 TFLOP/s。

高效的离线设置正是大规模蒸馏活动之所以能负担得起的原因。最终的紧凑学生,从Llama 3.1 8B Instruct中精炼到约3.2B参数,在BoolQ和HellaSwag上保持了教师的大部分准确度,在MMLU上也保持在大约9分以内,且参数数不到一半。

:https://cdn-uploads.huggingface.co/production/uploads/614a1ebb8f82f1df64d55126/e0VvKmFktQCyoOhhOTD4n.png 学生模型在不到一半的规模下,保持了大部分教师模型的短上下文准确性。来源:论文图6。

这项工作是Multiverse Computing's:https://multiversecomputing.com 持续研究的一部分,旨在使蒸馏和修复在大规模下可实际运行:https://multiversecomputing.com/compactifai,不仅仅作为一次性方案,而是团队可以低成本迭代的内容。论文还涵盖了其他消融实验,例如损失函数选择和序列打包如何影响恢复质量。

想要完整的技术细节吗,包括融合分块损失背后的闭式梯度和完整的训练配置?阅读完整论文:https://arxiv.org/abs/2608.03796,或联系我们的团队讨论将其应用到您自己的蒸馏管道中。

我们还开源了分块损失的实现:github.com/CompactifAI/Full-Chunked-KL-Loss:https://github.com/CompactifAI/Full-Chunked-KL-Loss

情报判断

Aioga 编辑摘要

Hugging Face 博客介绍一种面向大语言模型知识蒸馏的系统方案:预先缓存教师模型每个位置最可能的前100个词元,并使用分块KL损失,减少训练阶段的显存占用与教师模型重复计算。

背景分析

知识蒸馏通过训练较小的学生模型匹配较大教师模型的表现。文章指出,在线蒸馏需同时加载教师和学生,并为每个词元处理完整词表分布,因此在长上下文场景下显存与计算成本较高。

Aioga 观点

Aioga 判断,该方案的关键价值在于把教师推理从反复在线计算改为可复用缓存,并避免生成完整的词表大小乘序列长度矩阵。其实际收益仍可能取决于前100个词元缓存对蒸馏质量的影响。

影响与后续

文章称,分块损失可避免约250GB的显存峰值,在示例中峰值约为128GB;结合离线缓存,长上下文蒸馏可能在单GPU上进行,也可能降低大规模实验的门槛。 值得关注后续公开材料是否进一步说明不同缓存规模、上下文长度和模型组合下的效果,以及压缩后的学生模型在能力恢复、训练成本和部署需求之间的具体权衡。

来源与版权说明

本页正文由公开来源页面提取并按原有信息整理,同时保留来源、发布时间和原文入口。版权归原作者及来源网站所有,请通过原文链接核验和阅读来源版本。

抓取通道: RSS · 原始域名: huggingface.co

来源: Hugging Face:Blog(RSS)

原文链接: 打开原始来源

Aioga 归档: 查看情报页

Content record: source-page · Updated: 2026-08-10T10:05:36.000Z

API 中转站
API RELAY · DEVELOPER INFRASTRUCTURE

API 中转站

统一接入主流 AI 模型 API,为开发、测试与生产环境提供稳定调用入口。

立即访问 api.w173.com
AIOGA SHARE POSTER

分享这篇 AI 情报

🔗 阅读原文 via AIHOT · https://aihot.virxact.com/items/cmsn4c69701x9ron5wn1hfxxw

Hugging Face:Blog(RSS)2026-08-10T10:05:36.000Z
扫码打开文章详情扫码直达文章详情

Aioga 自动聚合全球 AI 动态,并保留来源信息用于核验与引用。