实践中的知识蒸馏:微调 Gemma 3 27B 以在任务上媲美 GPT-4o 的经验技巧

社区文章 发布于 2025 年 6 月 9 日

大型语言模型(LLM)基础模型层出不穷,要跟上它们的步伐真是一段狂野的旅程。Anthropic 推出了新的 Claude Sonnet 4 模型,Google 也推出了新的“小型”27B 模型(Gemma 3 模型),该模型可以装入单个 A100 GPU。这给 Kiln 的我们带来了一个想法:我们能否使用合成数据生成和知识蒸馏来训练 Gemma 3 完成 Sonnet 4 的任务?这种设置模拟了产品公司的典型场景,他们希望使用大型模型,但又不想支付专有模型的高昂费用(包括价格和延迟)。好的,让我们从一些问题开始

  • 相对较小尺寸的 Gemma 3 27B 是否能够解决涉及指令遵循、语言理解和结构/风格的多目标现实世界问题?
  • 为了优化 Gemma 3 在特定任务上的表现,我们是应该使用 Sonnet 4 合成数据进行微调,还是可以通过巧妙的提示和上下文中包含的示例(few-shot prompting)来解决问题?

设置

  • 数据源: 利用 Kiln 的合成数据生成器与 Sonnet 4 共同创建输入和输出(合成数据生成指南)。
  • 数据问题类型: 带有指令遵循的语言理解(参数化摘要)。
  • 数据: 数据输入(用户提示)是输入的“新闻文章”和所需的摘要长度(以句子为单位)。输出是摘要。注入到输出摘要中的指令遵循金丝雀是,输出摘要的第二个单词必须以字母“P”开头。注意:我在这里应该指出,这不是一个很好的测试,而只是一个尚可的测试。大多数现代模型使用子词分词器,一个单词可以有多个标记,但通常不是在字符级别。Gemma 使用 SentencePiece 分词器(SentencePiece),所以这更多地与模型记忆了多少以 P 开头的单词有关,而不是实时测量它。即便如此,模型也需要学习 JSON 结构,处理受限的摘要任务,然后记住让第二个单词以某个字母开头。
  • 大小: 从 Claude Sonnet 4 生成了大约 250 个训练示例。
  • 参数: 参数设置很简单,LoRA 秩为 8,学习率 (1e-4) 和批大小使用默认设置。
  • 评估: 使用 Kiln 的评估堆栈和 LLM-as-a-Judge GPT-4.1 模型,结合直接测试(金丝雀测试)和更复杂的评估(如摘要质量)进行评估。

结果

微调消融实验:

方法学很简单。我们评估了在推理时是否使用 few-shot 示例(即使它们未包含在训练提示中),并测试了对同一数据集进行多次训练(即 epoch)的影响。评估使用 64 个测试样本进行,并以 GPT-4.1 作为 LLM-as-a-Judge 来评估不同指标的输出。

指标 (越高越好) Gemma 3 27B + LoRA (R=8)
10 epochs, Zero-shot
Gemma 3 27B + LoRA (R=8)
10 epochs, Few-shot
Gemma 3 27B + LoRA (R=8)
1 epoch, Few-shot
Gemma 3 27B + LoRA (R=8)
10 epochs, Few-shot
摘要质量 3.83 3.95 4.23 4.42
指令遵循摘要长度 0.86 0.98 1.0 1.0
指令遵循金丝雀 0.23 0.38 0.38 0.38

分析第 1 列与第 2 列表明,即使模型未经训练,在推理时添加 few-shot 示例也能提高性能。比较第 3 列与第 4 列显示了当提示保持不变时,训练 epoch 对性能的影响——在一个指标上略有改善,而其他指标保持稳定。

下表将这些微调的 LoRA 模型与基础模型进行比较。

与基线的最终比较:

指标 (越高越好) Gemma 3 27B
基础模型,Zero-shot
Gemma 3 27B
基础模型,Few-shot
Gemma 3 27B
最佳 LoRA,Few-shot
GPT-4o
基线,Few-shot
摘要质量 3.78 4.14 4.42 4.06
指令遵循摘要长度 0.73 0.98 1.0 1.0
指令遵循金丝雀 0.25 0.13 0.38 0.38

这些结果显示出显著的改进。基础 Gemma 3 模型通过 few-shot Sonnet 4 示例获得了显著增强,但仍然面临指令遵循方面的挑战。而 GPT-4o 在指令遵循方面表现优于基础 Gemma 3 模型(正如预期)。此外,经过微调的 Gemma 3 模型在这个小型数据集上,相对于 GPT-4o 和基础 Gemma 3 模型,实现了更优的整体性能,这符合数据集狭窄的预期。

关键要点:

  • LoRA 监督微调显示出明显价值: 相对于基础 Gemma 3 27B 模型,所有指标均持续改进。
  • 推理时提示提供了可衡量的益处: 在测试时添加 few-shot 示例即使在训练中未使用也能提高性能。需要注意的是,这种方法会增加首次生成令牌的时间(TTFT)和提示处理的整体延迟,尽管这可以通过未来的实现中的提示缓存来解决。
  • 增加 epoch 次数收益递减: 从 1 个 epoch 训练到 10 个 epoch 改善了摘要性能(4.23 → 4.42),而其他指标趋于稳定。通常,增加 epoch 次数会导致更多的记忆和潜在的过拟合,尽管在训练数据有限时,这仍然是一种可行的方法。
  • 性能超越 GPT-4o: 最佳微调模型在摘要任务上超越了 GPT-4o,并与其指令遵循能力相当。
  • 小数据集证明有效: 仅 250 个合成示例就产生了显著的改进。

Kiln AI - 如何构建您自己的 LLM 产品

我们所有这些工作都是通过本地 Kiln AI 桌面应用程序完成的——这是一个用于微调模型、评估结果和生成合成训练数据的工具。而且无需代码,只需使用用户界面!

免费下载 Kiln: getkiln.ai/download

社区

注册登录 发表评论