Dynamic Self-Distillation via Previous Mini-batches for Fine-tuning Small Language Models

📄 arXiv: 2411.16991v1 📥 PDF

作者: Yao Fu, Yin Yu, Xiaotian Han, Runchao Li, Xianxuan Long, Haotian Yu, Pan Li

分类: cs.CL

发布日期: 2024-11-25

备注: Work in progress


💡 一句话要点

提出DynSDPB,通过前一批次动态自蒸馏微调小型语言模型,无需复杂教师模型。

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 自蒸馏 知识蒸馏 小型语言模型 微调 动态调整

📋 核心要点

  1. 传统知识蒸馏依赖大型教师模型,成本高昂且对商业LLM不适用,限制了小型语言模型的微调。
  2. 提出DynSDPB,利用前一批次输出进行动态自蒸馏,无需教师模型,且能动态调整蒸馏影响和温度。
  3. 实验表明,DynSDPB在BERT和LLaMA等模型上,NLU和NLG任务中均表现出优越的性能。

📝 摘要(中文)

知识蒸馏(KD)已成为压缩大型语言模型(LLM)以降低计算成本和内存占用的常用方法。然而,运行大多数KD流程的前提是需要复杂的教师模型。因此,传统的KD过程可能无法实现或成本高昂,尤其是在依赖像GPT4这样的商业LLM时。对此,自蒸馏(SelfD)成为一种可取的替代方案,使学生模型能够在没有教师指导的情况下学习。然而,现有的LMs自蒸馏方法通常涉及架构修改,并假设模型是开源的,这可能并不总是实际的。在这项工作中,我们引入了一种模型无关和任务无关的方法,名为dynamic SelfD from the previous minibatch (DynSDPB),它实现了从前一批次生成的logits中蒸馏当前迭代。此外,为了解决早期迭代期间的预测不准确问题,我们动态调整蒸馏影响和温度值,以增强微调的适应性。此外,DynSDPB是一种新颖的微调策略,它有助于无缝集成现有的小型语言模型(SLM)的自校正和自训练技术,因为它们都需要更新SLM的参数。我们证明了DynSDPB在仅编码器LMs(例如,BERT模型系列)和仅解码器LMs(例如,LLaMA模型系列)上的优越性能,验证了其在自然语言理解(NLU)和自然语言生成(NLG)基准测试中的有效性。

🔬 方法详解

问题定义:现有知识蒸馏方法依赖于大型、复杂的教师模型,这在计算资源有限或无法访问商业LLM的情况下变得不可行。此外,现有的自蒸馏方法通常需要对模型架构进行修改,这限制了其在闭源模型上的应用。因此,如何在不依赖外部教师模型和不修改模型架构的前提下,有效地微调小型语言模型是一个关键问题。

核心思路:DynSDPB的核心思路是利用模型自身在先前迭代中产生的输出来进行知识蒸馏。具体来说,当前迭代的模型将前一个mini-batch的输出logits作为“教师”信号,从而在训练过程中不断地自我提升。这种方法避免了对外部教师模型的依赖,并且可以应用于各种模型架构,无需进行修改。

技术框架:DynSDPB的整体框架包括以下几个主要步骤:1) 在每个mini-batch中,模型生成logits;2) 将这些logits存储起来,作为下一个mini-batch的“教师”信号;3) 在下一个mini-batch中,模型不仅要最小化其自身的预测误差,还要最小化其与先前mini-batch logits之间的差异,从而实现知识蒸馏。此外,为了解决早期迭代中模型预测不准确的问题,DynSDPB还引入了动态调整蒸馏影响和温度值的机制。

关键创新:DynSDPB的关键创新在于其动态自蒸馏机制,它利用模型自身在先前迭代中的输出来进行知识蒸馏,无需外部教师模型。此外,动态调整蒸馏影响和温度值的机制可以有效地解决早期迭代中模型预测不准确的问题,从而提高训练的稳定性和效率。这种方法是模型无关和任务无关的,可以应用于各种模型架构和任务。

关键设计:DynSDPB的关键设计包括:1) 使用前一个mini-batch的logits作为“教师”信号;2) 引入蒸馏损失函数,用于衡量当前模型输出与先前mini-batch logits之间的差异;3) 动态调整蒸馏损失的权重(蒸馏影响)和温度值,以控制知识蒸馏的强度。具体的参数设置和损失函数选择可以根据具体的任务和模型进行调整。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,DynSDPB在BERT和LLaMA等模型上,在NLU和NLG任务中均取得了显著的性能提升。例如,在某些NLU基准测试中,DynSDPB相比于传统的微调方法,性能提升了2-3个百分点。这些结果验证了DynSDPB的有效性和通用性。

🎯 应用场景

DynSDPB可广泛应用于资源受限场景下小型语言模型的微调,例如移动设备上的自然语言处理、边缘计算环境下的智能助手等。该方法降低了对大型教师模型的依赖,使得在计算资源有限的条件下也能获得高性能的模型,具有重要的实际应用价值和潜力。

📄 摘要(原文)

Knowledge distillation (KD) has become a widely adopted approach for compressing large language models (LLMs) to reduce computational costs and memory footprints. However, the availability of complex teacher models is a prerequisite for running most KD pipelines. Thus, the traditional KD procedure can be unachievable or budget-unfriendly, particularly when relying on commercial LLMs like GPT4. In this regard, Self-distillation (SelfD) emerges as an advisable alternative, enabling student models to learn without teachers' guidance. Nonetheless, existing SelfD approaches for LMs often involve architectural modifications, assuming the models are open-source, which may not always be practical. In this work, we introduce a model-agnostic and task-agnostic method named dynamic SelfD from the previous minibatch (DynSDPB), which realizes current iterations' distillation from the last ones' generated logits. Additionally, to address prediction inaccuracies during the early iterations, we dynamically adjust the distillation influence and temperature values to enhance the adaptability of fine-tuning. Furthermore, DynSDPB is a novel fine-tuning policy that facilitates the seamless integration of existing self-correction and self-training techniques for small language models (SLMs) because they all require updating SLMs' parameters. We demonstrate the superior performance of DynSDPB on both encoder-only LMs (e.g., BERT model families) and decoder-only LMs (e.g., LLaMA model families), validating its effectiveness across natural language understanding (NLU) and natural language generation (NLG) benchmarks.