原贴链接

这听起来可能像是在发牢骚,或者过于消极,但我认为这一点足够重要,值得强调。

所以在Llama3 405b计划发布前几天,有多个报告称将有一组“刷新”的Llama3模型(特别是70b和8b)进行蒸馏。

在文献中(针对优化概率分布训练的机器学习模型),“蒸馏”有非常具体的含义;你优化的是教师模型的预测,而不是模型生成的合成数据

不幸的是,Llama3.1系列(特别是8b和70b)被错误地宣传为“蒸馏”。

为了说明为什么这是一个问题:

https://i.imgur.com/Qxsfhwx.png

  • 在训练数据上的正常交叉熵损失隐含地假设数据中的目标候选已经是可能性最大的(独热向量),并使用与此的距离作为损失函数

  • 蒸馏损失在模型之间权衡和比较完整的概率分布,特别是它们在每个位置的差异,以最小化损失函数

前者对于从头开始预训练模型是有意义的,但如果你的目标数据是由405b这样的教师模型合成生成的,你将会得到明显更差的结果;教师模型生成合成数据的所有缺陷和不准确性都将被暴露和放大,以及教师模型学到的任何信息,这会导致伪影。

除此之外,交叉熵中固有的信息要少得多,因为每个令牌位置只有一个“正确”答案。我不太确定他们为什么选择这种策略。我想这可能只是最容易做的事情,团队中没有人对进一步扩展KL散度损失感兴趣,不像谷歌成功地用他们的9b实现了这一点。(我在每次增加数据大小的实验中,用4x8b蒸馏尝试都取得了成功,但由于计算资源不足,无法将其扩展到真正有意义的程度)。

当你在教师的自回归生成输出上训练时,你也不得不使用“假数据”;而通过蒸馏,可以使用真实的网络数据来缩小模型之间的差距。

我个人对此感到失望,这让我对3.1版本的发布感到非常不快(以及他们使用DPO进行新的指令微调的相当奇怪的方法,而不是PPO/奖励建模,后者泛化得更好,并且不偏好分布外的响应。)

我发现甚至在405b失败并记住了一个幻觉的情况下,原始的L3 70b指令只是…没有问题。由于可疑的方法论,新的70b感觉最多是个平级升级,而且他们选择了一个明显更差的RL算法来微调他们迄今为止最好的基础模型,这有点尴尬…

还有其他人有类似的看法吗?

讨论总结

本次讨论主要聚焦于Llama3.1系列模型被错误地标记为“蒸馏”模型的问题。参与者普遍认为,“蒸馏”在机器学习中应指优化教师模型的预测,而非使用模型生成的合成数据。这种错误的标记导致模型性能下降,因为教师模型的缺陷和不准确性被放大。此外,讨论还涉及了微调方法的选择,如DPO与PPO/奖励建模的比较,以及对模型透明度和社区反馈的重视。整体情感倾向为失望和批评,但也包含对未来改进的期待。

主要观点

  1. 👍 Llama3.1系列模型被错误地标记为“蒸馏”模型
    • 支持理由:蒸馏应优化教师模型的预测,而非合成数据。
    • 反对声音:部分观点认为使用合成数据也是一种蒸馏。
  2. 🔥 使用合成数据训练模型导致性能下降
    • 正方观点:合成数据暴露教师模型的缺陷和 inaccuracies。
    • 反方观点:合成数据训练是常见做法,关键在于如何优化。
  3. 💡 对Llama3.1使用DPO而非PPO/奖励建模的质疑
    • 解释:DPO可能导致模型偏好分布外的响应,影响泛化能力。
  4. 👀 社区对模型透明度和正确标记的期待
    • 解释:正确的标记和透明度有助于社区理解和信任模型。
  5. 😞 普遍的失望情绪
    • 解释:许多用户对Llama3.1的性能和发布策略感到失望。

金句与有趣评论

  1. “😂 Meta从未声称较小的3.1模型会是蒸馏模型。”
    • 亮点:揭示了市场宣传与实际技术实现之间的差异。
  2. “🤔 使用合成数据训练模型会导致性能下降。”
    • 亮点:强调了合成数据训练的潜在风险。
  3. “👀 蒸馏应保留其原始含义,即优化教师模型的预测。”
    • 亮点:呼吁对技术术语的正确理解和使用。

情感分析

讨论的总体情感倾向为失望和批评,主要分歧点在于对“蒸馏”定义的理解和合成数据使用的看法。失望的原因主要来自模型性能未达预期和对发布策略的不满。社区普遍期待更高的透明度和更准确的术语使用。

趋势与预测

  • 新兴话题:对模型标记和透明度的讨论可能引发对行业标准和规范的进一步探讨。
  • 潜在影响:提高模型标记的准确性和透明度可能增强用户信任,推动行业向更负责任的人工智能发展。