← 返回
AI技术

AI 模型能从数据中学习,还能从其他模型学到什么?

✍️ zhirenhun 📅 2026/10/16 👁 164 阅读 ⏱ 14 分钟
AI 模型能从数据中学习,还能从其他模型学到什么?

您好,我是 Rijul,我正在构建 LiveReview —— 一个对 blast-radius 感知的 AI 代码审查工具,专为您的业务关键系统而设计。点个星 以帮助开发者发现该项目、试用并分享反馈,从而帮助改进产品。


想象您已经训练了一个在其任务上表现非常出色的巨型 AI 模型,例如识别照片中的物体或回答问题。

但有一个问题。该模型非常庞大。它需要强大的服务器,运行成本高昂,并且可能在手机、智能手表或汽车上运行太慢或太大。

您希望得到一个性能几乎相当、运行更快且成本更低的小型模型。

一种方法是使用您的原始数据从头训练一个小型模型。然而,它可能无法达到与大型模型相当的性能水平。

知识蒸馏 提供了一种另一种方法。除了仅从原始数据学习外,小型模型还会从大型模型学习,就像学生向老师学习而非仅仅研读教材一样。

让我们看看它是如何工作的。

1. 教师和学生

想想学习数学的两种方式。

第一种方式,您会得到一本包含问题及其最终答案的教材。

第二种方式,除了教材外,您还有导师,导师会解释他们解决每个问题的思路。导师可能会向您展示,尽管答案不同,但一个问题可能与另一个问题相似。

第二种方式提供了额外的信息,有助于您的学习。

知识蒸馏将类似的思想应用于 AI 模型:

教师提供额外的学习信号,帮助学生再现其一些能力。

2. 从正确答案之外的学习

假设我们有一个 AI 模型,能够将动物照片分类到三个类别:

当模型收到一张猫照片时,它会为每个类别输出一个分数。这些分数称为 logits。一个 softmax 函数能把它们转换为总和为 100% 的概率。

例如,老师可能会输出这些概率:

类别 概率
Cat 90%
Dog 9%
Fox 1%

老师将 cat 预测为最可能的类别,因为它给该类别分配了最高的概率。

但还有另一点需要注意:它认为狗比狐狸更可能。

这些较小的概率提供了关于老师如何区分这些类别的额外信息。

硬标签 vs. 软标签

在普通的监督分类中,训练目标可能是一个硬标签:

Cat = 100%, Dog = 0%, Fox = 0%

这告诉模型哪个类别是正确的,但它没有直接传达其他类别之间的比较。

另一方面,老师的输出给出了一个分布:

Cat = 90%, Dog = 9%, Fox = 1%

这些被称为软标签。它们提供了老师在所有三个类别上的相对置信度信息。

老师实际上在说:“这是一只猫。狗的可能性较低,而狐狸的可能性更低。”

这些信息可以帮助学生学习简单的正确或错误标签无法表达的区别。

杰弗里·辛顿及其同事将老师输出概率中包含的有用信息称为“暗知识”。

特别是那些不太可能的替代方案所蕴含的信息。

核心思想是:

让学生从老师的完整概率分布中学习,而不仅仅是正确答案。

3. 让隐藏信息更易察觉:温度

上面的例子存在一个问题。

想象老师非常自信,并给出这些概率:

类别 概率
Cat 99.9%
Dog 0.09%
Fox 0.01%

狗和狐狸概率很小。它们之间的差异可能提供有用的学习信号,但老师输出主要由猫预测决定。

这就是 温度起作用的地方。

温度通常用 (T) 表示,它控制在对老师的 logits 应用 softmax 时,概率分布变得有多软或有多锐利。

例如,在温度较高时,老师可能会产生如下分布:

类别 示例概率
Cat 70%
Dog 22%
Fox 8%

这些数字仅作示例,并不是某个特定温度的必然结果。

重要的是排名保持不变,而概率分布变得更软。

学生现在可以获得一个更具信息量的信号,了解老师如何关联不同的类别。

4. 学生实际上是如何学习的

学生需要学习两件事:

  1. 如何模仿老师。
  2. 如何从原始训练数据中预测正确答案。

在训练过程中,这些目标可以合并为一个损失函数。

A. 匹配老师

首先,学生使用相同的温度生成自己的概率分布。

训练过程将学生的软化概率与老师的软化概率进行比较。

一种衡量这种差异的方法是 KL 散度。它用来衡量两个概率分布有多不同。

通过训练让学生减少这种差异,使其输出更接近老师的输出。

B. 匹配正确的标签

学生还会使用数据集中的实际标签进行训练。

例如,如果图像中包含一只猫,学生仍应学习猫是正确的类别。

这通常通过交叉熵损失来实现,这是训练分类模型的标准方法。

C. 结合两种学习信号

两种损失可以通过加权求和结合:

权重决定每个目标在训练中的贡献程度。

这种组合帮助学生既从教师的行为,也从原始训练标签中学习。

5. 知识蒸馏过程

以下是整体工作流程:

  1. 准备教师: 训练一个大型模型或使用现有模型。
  2. 选择学生: 选择适合您用例的较小模型架构。
  3. 准备训练数据: 通过教师运行示例以获取其输出。
  4. 训练学生: 使用教师的输出和原始标签计算训练损失。
  5. 部署学生: 训练和评估完成后,使用较小的模型进行推理。教师在部署期间通常不需要。

结果是一个学生模型,旨在尽可能保留教师的有用行为,同时只需更少的资源。

6. 知识蒸馏真的有效吗?

是的。一个著名的例子是 DistilBERT,这是由 Hugging Face 开发的 BERT 的较小版本。

根据其创建者的说法, DistilBERT 大约比 BERT 小 40%、快 60%,同时在评估基准测试上保留了约 97% 的语言理解能力。

这些数字描述了该特定模型及其评估设置。结果会因教师、学生架构、训练数据和任务而异。

知识蒸馏也与大型语言模型相关。

较小的语言模型可以使用较大模型生成的输出进行训练。这是向老师学习的一种形式,尽管具体方法与用于分类的基于概率的蒸馏不同。

例如,较大的模型可能会生成一组问题的答案。这些答案随后可以用作较小模型的训练样例。

这有助于将较大模型的一些能力迁移到运行成本更低的模型中。

然而,蒸馏并不能保证学生模型能够达到老师模型的水平。训练数据的质量、学生模型的架构以及蒸馏方法都很重要。

结论

知识蒸馏是将较大 AI 模型的有用行为迁移到较小模型的一种方式。

学生不仅可以从正确答案中学习,还可以从老师的输出概率或其他信号中学习。这为学生提供了关于老师如何处理任务的额外信息。

目标是在降低模型运行成本和资源需求的同时,尽可能保留有用的性能。

简而言之,知识蒸馏帮助较小的模型通过向较大模型学习,以更少的资源实现更多功能。



您团队的注意力有限,AI 生成代码的洪流使得在不减慢您的情况下,保持生产环境的可靠和安全变得更加困难。

我正在构建 LiveReview,这是一种面向业务关键系统的、具备爆炸半径感知能力的 AI 代码审查工具。

与其对每个 diff 赋予同等重视,不如让 LiveReview 根据爆炸半径对每个更改进行评分 — — 其影响通过调用图传播的范围 — — 这样您就能将注意力集中在真正重要的地方。

将代码审查工作集中在业务风险最高的地方 — — 而不是将其平均分配到每个 diff。

⭐ 在GitHub上点亮星标:

这张技术文章配图的内容是关于AI Code Reviews,Secure and Self-Hosted

LiveReview:面向关键业务系统的风险感知AI代码审查

LiveReview是一套面向整个组织的风险感知工具,专为AI生成的代码打造。它解决两类问题:判断哪些Pull Request完全可以跳过审查,以及在仍需人工审查的代码中优先标记出高风险部分。

自动批准:让安全的50%代码免人工直接合并

安全地自动批准最多50%的Pull Request。通过风险评分判断哪些MR/PR足够安全、无需人工审核即可合并,让你的团队把评审时间留给高风险和关键改动。

demo.mp4

LiveReview自动批准低风险改动,同时把高风险改动转给人工评审。点击播放。

风险评分综合三个信号得出:

  • 大模型语义分析
  • 基于你生产环境风险信号训练的自定义机器学习模型
  • 基于静态图谱的代码库分析

灵感来自 Meta 的 RADAR 论文:生产事故减少 50 倍,回滚减少 3 倍,评审速度提升 35%。

工作原理:

  1. 追踪结果——记录生产事故并……

点击下方链接,用你的代码库试用 LiveReview:

——

广告 广告
🧑‍💻

zhirenhun

一个热爱技术的程序员,喜欢分享前沿AI知识和开发经验。

ai learning beginners genai