最近大模型圈子里有个话题讨论度挺高:七家中国公司被点名,说他们在“蒸馏”别人家的模型。很多人第一反应是“偷模型”,第二反应是“技术剽窃”,但说来说去,大多数人其实说不清“蒸馏”到底偷了什么,是偷了参数,偷了数据,还是偷了代码?
我先说个结论:如果只是“偷”一份训练好的参数文件,那叫克隆,不叫蒸馏。蒸馏确实有点“偷”的意思,但它偷的东西不在文件里,而在模型的“行为”里。这恰恰是它隐蔽的地方。
用大白话讲,蒸馏就是找一个大模型当老师,让一个小模型或者新模型去模仿老师的“答题习惯”。不是抄作业答案,而是模仿“怎么想”的过程——虽然大模型自己也说不出自己怎么想的。今天这篇就来拆一拆,所谓“被偷走的东西”到底长什么样,技术上有哪些门道,以及我们从实操角度能怎么理解这件事。
1. “蒸馏”本身不是黑话:它是AI训练里的一门正经手艺
1.1 先搞清楚蒸馏的原始定义
模型蒸馏这个概念,最早在2015年由Hinton等人提出,核心思想叫“知识蒸馏”。当时要做的事情很简单:训练一个大模型太贵,推理太慢,想把它的能力压缩到一个小模型里。
具体怎么做?举个接地气的类比。老厨师做菜很厉害,但他没法复制自己,只能带徒弟。徒弟不可能上来就学会所有火候和手感的细节,但可以通过反复品尝师父做的每一道菜,然后自己试着做,做完再让师父点评,不断逼近师父的水平。
在深度学习里,这个过程更数学化。老师模型(大模型)在输出结果时,不只是输出一个最终答案,还会输出一个概率分布——比如问“猫是什么”,模型内部可能认为有80%概率是猫,15%是狗,5%是兔子。这个分布里带有老师对“模糊地带”的判断,是压缩后的知识精华。
徒弟模型(小模型)在学习时,不仅学习正确答案(硬标签),还要学习老师输出的概率分布(软标签),并且让两个分布尽可能接近。训练时的损失函数一般长这样:
loss = alpha * KL_div(student_softmax, teacher_softmax) + (1 - alpha) * cross_entropy(student_logits, true_label)其中alpha是蒸馏强度的权重,KL_div是衡量两个分布差异的KL散度。温度参数T也很关键——把softmax分布“烧热”,让概率分布更平滑,暴露更多“暗知识”。
所以你看,蒸馏本来就是一种合法的模型压缩技术。如今开源社区里大量使用蒸馏,比如阿里的Qwen系列就有蒸馏版本,OpenAI也曾提到用蒸馏来提升小模型效率。它本身没有原罪,问题在于:如果被蒸馏的老师,是你没有权限使用的闭源模型,事情就变味了。
1.2 这次被点名的“蒸馏”,其实是一种“黑盒蒸馏”
传统蒸馏假设你能拿到老师模型的完整输出,包括每一层的中间特征。但现实中,像GPT-4这种模型你只能通过API调用,拿到的是最终文本。那怎么蒸馏?只能“黑盒蒸馏”,也叫“API蒸馏”。
过程大致是:写一堆高难度提示词,把API当免费(或付费)的“老师”,收集大量问题和答案对。然后用自己的学生模型去学习这些问答对。学生模型不一定很小,它可能也是一个大模型,目标不是压缩,而是“迁移能力”。
这个思路在学术界也被研究过,叫“模仿学习”。问题是,如果API的条款明确写了“不得使用输出训练竞争模型”,那这就不是技术问题,而是违约问题。这也就是“被点名”的核心争议点。
我在自己的项目里也做过黑盒蒸馏的实验,说句公道话:它确实能学到表面能力,但学不到老师的“灵魂”。比如你问一个很复杂的推理问题,老师的回答里可能隐含了某种推理路径。学生模型通过大量模仿,可能会背下推理模板,但遇到没见过的变体,就会露馅。这也是很多“蒸馏模型”在benchmark上跑分很高、落地就崩的原因——它学的是“形”,不是“神”。
2. 那些被“偷走”的东西,藏在输出里,看不见摸不着
2.1 输出分布:模仿“不确定性”比模仿“答案”更值钱
大多数人以为蒸馏偷的是“正确回答”。其实正确答案在互联网上到处都是,真正值钱的是大模型对模糊问题的“倾向性”。
举个例子。你问“外星人存在吗”,一个训练有素的大模型不会直接说“存在”或“不存在”,它会说“目前没有确凿证据,但宇宙尺度很大,可能性存在”。这句话本身没什么,但其中“确凿”“尺度”“可能性”这类词的分布权重,是在海量语料和人类反馈对齐中磨出来的。
当你用蒸馏方式收集成千上万个这样的回答时,你实际上在不付成本的情况下,复刻了对方耗费数亿美元做的“价值观对齐”和“风格控制”。这不只是偷数据,更像是把对方已经调校好的“性格”拷贝了一份。
在这点上我有个很深的体会:黑盒蒸馏最值钱的部分并不是“知识”,而是“格式”。大模型在处理指令时有一套隐蔽的格式偏好,比如如何处理多步任务、如何分点阐述、如何在不确定时留有余地。这些格式模式很难从普通语料里习得,但通过蒸馏,你可以直接继承。
2.2 推理链与“隐藏的CoT”
如果你用过一些强推理模型,会发现它们在给出答案前会有一段“思考过程”。有些产品会明着输出思维链,有些则隐藏起来。无论显式还是隐式,模型内部已经学会了“先分解问题,再逐步求解”的路径。
黑盒蒸馏如果只是拿(问题, 最终答案)做监督训练,学生模型学不到推理链。但是有一种更阴的玩法:让老师“想”得更久,或者通过prompt诱导老师输出更详细的中间步骤,然后把中间步骤也当训练语料。比如问“请一步步推理”,老师的回答里就包含了完整的CoT。
这种做法等于把对方模型里“推理能力”的中间表示直接挖出来。关键在于,这种能力不是靠几条规则写死的,而是从海量高质量数据里涌现出来的。你通过蒸馏,等于用几千条精心构造的问题,撬动了对方几十亿参数里沉淀的推理模式。
我围观过一些公开报告的案例分析,不少被点名的模型在数学、代码任务上表现异常接近老师模型,甚至在错误模式上都高度相似——比如同样在某个类型的应用题上犯同样风格的错误。这种“同款错误”是最硬的指纹,因为如果是独立训练,错误分布几乎不可能这么相似。
2.3 数据配比与“隐性知识”的迁移
这里要说得更细一点。一个模型的价值不仅仅在参数,还在于训练数据的配比。比如某个模型在代码、数学、多语种上表现均衡,是因为它用了大约30%代码数据、20%数学数据、15%多语种数据……这个配比是保密的。
黑盒蒸馏一个隐蔽的动作,就是通过大量采样,反推出老师模型擅长的领域分布。如果你发现某个API在代码生成上特别强,你就多采代码样本;在多轮对话上强,就多采对话样本。这相当于免费做了一遍“能力测绘”,把对方的数据配方大致摸清了。
有些团队还会用“蒸馏”来做领域特化:先让老师生成某个垂直领域(比如法律、医疗)的高质量问答对,然后再用这些数据微调自家模型。这样做的成本远低于从头找专家标注数据,而且质量上限很高。
但这里有个讽刺的现实:我在尝试蒸馏开源模型做垂直领域任务时,发现效果往往不如直接用原模型微调。因为开源模型已经覆盖了通用能力,你缺的是领域数据,而不是让又一个模型“重新学一遍通用能力”。很多团队如获至宝地蒸馏,最后得到的不过是一个“对话能力打了折扣的复读机”。
3. “偷”的边界到底在哪?不是所有蒸馏都叫剽窃
3.1 技术底色:蒸馏本来就不被禁止
要说清楚边界,得先看蒸馏在技术社区的地位。开源模型里,蒸馏可以说是一种标准操作。比如你用Llama 3生成一批高质量数据,然后微调一个小模型,这在开源许可下通常是被允许的(但要看具体License)。业界也确实有很多“小模型之神”,通过蒸馏让7B、13B模型逼近70B甚至更大模型的效果。
所以“蒸馏”本身没有任何问题,就像“逆向工程”在软件行业也是有争议但并非全黑的技术。问题的核心在于:你是否获得了老师的授权?
如果老师是开源的、允许商用和二次训练的,那蒸馏就是正常操作。如果老师是闭源的、API条款明确禁止用输出训练竞品,那蒸馏就变成了一种违约行为。这次被点名,多半是因为后者。
3.2 闭源模型的“条款围墙”与“技术反制”
现在几乎所有主流闭源模型API的条款里都有类似这句话:“You may not use output to develop models that compete with us.”翻译成大白话就是:你可以用我的API干活,但不能拿我的输出去训练跟我对着干的模型。
为什么要写这句?因为厂商早就知道,蒸馏是一个非常直接的“能力虹吸”方式。如果不写禁止条款,那所有竞争对手都可以只用几百美元调用API,然后训练出自己的“平替”模型,等于花钱买了个“能力扫描仪”。
但这道围墙并不牢固。技术上很难检测“一个模型的训练数据是否包含另一个模型的输出”。不过也不是完全没办法:
- 水印法:在API返回的文本中加入肉眼不可见但模型可识别的特征,比如特殊token排列、同义词偏好。
- 指纹法:记录模型在特定输入下的行为指纹,比如用一组特殊问题测试被怀疑模型的输出分布,看是否与老师模型高度吻合。
- 行为探测法:用那些老师模型会做出特定错误的问题去问被怀疑模型,如果它犯了同款错,就有蒸馏嫌疑。
业界确实有团队在做这类检测。比如用一组“反事实问题”——让老师模型对某个问题给出一种违反常识但符合训练分布的答案,如果学生模型也给出了同样答案,说明它不是从真实世界学到的,而是从老师那里学的。
3.3 不是黑就是白:灰色地带同样存在
另一种情况更微妙:如果某个公司先用合法方式(比如购买API服务)收集了大量问答数据,然后清洗掉明显是API输出的痕迹,再用这些数据做监督微调,这算不算蒸馏?在法律上很难界定。
我自己见过一些案例,说是“用自研数据微调”,但跑出来的输出风格、错误倾向、甚至长度分布都跟某个闭源模型极其相似。你说这是巧合,没人信,但你说它直接蒸馏,又没有实锤。这也是为什么“被点名”这件事,往往只能凭行业猜测,很难有法律定论。
所以在讨论“偷”的时候,一定要分层看:
- 第一层:输出层面,逐字抄袭答案——这个最容易被抓,也最低级。
- 第二层:行为层面,模仿风格和推理路径——带点技术含量,但依然有迹可循。
- 第三层:能力层面,把老师当作免费的“RLHF标注器”——通过大量查询提取老师价值偏好和安全边界,再把这些偏好迁移到自家模型上。
第三层最像“偷”,因为它是把对方花费高昂成本才调教出来的“价值观”直接搬走。但这层又最难定义,因为价值观这种东西没有明确的版权归属。
4. 想合法地用蒸馏做自己的模型?这几条红线必须守住
4.1 选对老师:不要碰条款不明的闭源模型
如果你也在做模型蒸馏或者打算用大模型生成数据来微调模型,我的建议非常直接:优先选开源模型或者明确允许二次训练的商用模型。
目前主流开源模型的许可证大概分几类:
| 模型 | 许可 | 是否允许蒸馏后商用 | 备注 |
|---|---|---|---|
| Llama 3 | Llama 3 Community License | 允许(月活超7亿需申请) | 明确允许使用输出改进模型 |
| Qwen系列 | Apache 2.0(部分变体) | 允许 | 商用友好 |
| Mistral | Apache 2.0 | 允许 | 宽松 |
| 某些“开放权重”模型 | 自定义(如“仅研究用途”) | 不允许 | 需仔细阅读条款 |
实际操作中,很多人懒得看License,直接调API生成一堆数据就开训,结果后面要商用才发现有问题。这种事我见过不止一次,最后要么推倒重来,要么跟法务拉锯几个月。
如果你确实需要使用一个闭源模型生成数据,至少要留好调用记录、用途说明,并且对生成数据进行深度清洗和改写。但这个“深度清洗”到底有没有法律效力?我不知道,反正业内没有统一答案。最稳妥的方式还是“别用闭源模型当老师”。
4.2 实操中的蒸馏参数与数据配比
如果你选的是合法老师,那做蒸馏时真正要关心的就是技术细节。这里我可以分享一下我的经验。
先说温度T。传统知识蒸馏中,蒸馏温度一般设置在2到6之间。温度太小,软标签接近于硬标签,学不到暗知识;温度太大,分布太平滑,学生会学到太多噪声。实际调参时可以先用一个验证集试几个T值,看学生模型在“模糊题”上的表现。
再说损失函数。不要只用一个KL散度,建议用“双损失”:
loss = lambda * temperature^2 * KL(soft_targets, student_logits) + (1 - lambda) * CE(hard_targets, student_logits)为什么前面要乘temperature^2?这是为了平衡梯度尺度,否则温度升高后,KL项的梯度会被缩小。很多初学者忽略这一点,蒸馏半天效果还不如直接用硬标签。
最后是数据配比。如果老师模型擅长的是代码和数学,你强行蒸一堆通用对话数据,效果会很差。比较好的做法是:
- 先用老师模型生成你目标领域的样本,覆盖各种难度。
- 按“简单:中等:困难=1:2:1”的比例混合,重点让学生吃透中等难度。
- 每次训练后,用老师模型重新评测学生,找那些学生答错但老师答对的题,再生成一批类似题目做第二轮蒸馏。
这个“循环蒸馏”的技巧我强推。它不是一次性收集数据,而是把老师当成一个“陪练”,不断发现学生的弱点并针对性补强。这样做出来的学生模型,即使参数量只有老师的1/5,也能在特定任务上逼近老师。
4.3 做产品时如何避免“蒸馏嫌疑”
如果不想自己的模型被外界质疑“你是抄GPT的”,除了技术上的努力,还要有一些可解释的痕迹。比如:
- 公开训练数据来源,哪怕只说“使用了开源数据+自采数据”也多少能消除一些误解。
- 确保自己的模型在“老师模型会犯的典型错误”上表现不同。如果发现高度相似,主动去调整训练数据分布,引入更多独立来源的数据。
- 在论文或技术报告里说明“未使用任何受限制的API输出作为训练数据”。这句话虽然不能证明清白,但至少从程序上表明你没有偷偷摸摸。
说实话,在目前的监管和技术环境下,“是否蒸馏过”很多时候靠的是信任。你公开得越多,外界的猜测空间就越少。
5. 被点名之后,模型圈会发生什么?
5.1 蒸馏检测会越来越像“取证”
以前大家都在闷头训模型,很少人研究“这模型是不是蒸馏来的”。但这次点名之后,我估计会有更多第三方机构做模型溯源排查。
技术上有几个可能的方向:
- 设计“指纹题集”:一份包含数百个异常输入的题目集,这些输入在正常训练语料里几乎不会出现,但模型在被特定方式训练后,会对这些输入产生独特的输出模式。
- 分析模型输出的“perplexity”分布:如果某个候选模型在特定领域内的困惑度曲线与老师模型过于接近,就会触发怀疑。
- 利用对抗样本:构造一些会让老师模型产生“独特幻觉”的问题,看候选模型是否也会产生同样的幻觉——这算是最强的证据之一。
这些方法还在研究中,但方向已经很清晰。将来模型发布,可能像软件发布一样,附上一份“模型来源合规声明”,甚至有第三方给你出“溯源报告”。这对合规的团队来说是利好,对想靠“偷”快速起量的团队来说,则是高悬的剑。
5.2 蒸馏不会消失,但会进入“暗线竞争”
可能有人会问:既然蒸馏被说成“偷”,那以后是不是没人敢蒸馏了?
不是。蒸馏作为一种技术手段,永远会存在。哪怕闭源模型API全面封死蒸馏,还可以用开源模型互相蒸馏,或者用“合成数据”来训练。真正的变化在于:那些依赖“黑盒蒸馏闭源模型”来获取超额能力的团队,以后会越来越难,因为头部玩家会在API层加更多检测水印、行为指纹、人性化验证,甚至针对可疑的大量调用做降维打击。
另一方面,蒸馏本身也在进化。比如现在已经有团队在研究“自我蒸馏”——让模型用自己的输出来迭代自己,不依赖外部老师。这种方式如果走通,那“偷”的叙事就变成“自我进化”了。
5.3 留给从业者的一句话思考
我在大模型落地这块摸爬滚打了两年多,见过不少团队因为“快速蒸馏”尝到甜头,也见过他们因为“过度依赖”陷入瓶颈。说白了,蒸馏只能让你追上别人的影子,很难让你定义下一个时代。真正拉开差距的,永远是数据质量、算法创新,以及对业务场景的深度理解。
“被点名”这件事,说到底不是在审判蒸馏这个技术动作,而是在提醒所有人:你在借助别人能力成长的时候,至少要知道自己借的是什么,以及要不要付门票。
如果你也在做模型训练相关的工作,希望这篇能把“蒸馏到底偷了什么”这个问题讲透。技术上的门道很多,但归根结底,是“知识、能力、价值观”的三层迁移。无论你站在哪一方,了解这些细节,都能让你在吵吵闹闹的舆论里保持清醒。