聚类与简单蒸馏在原理和用途上有什么区别

模型与算力

从原理到落地把聚类和蒸馏分清楚:一个是在数据里找分组、一个是把大模型本事搬到小模型,讲清各自该在什么场景用、什么时候别用。

不少人在做数据整理或模型压缩时会把这两件事混着叫:明明想给一批文本自动分组,却被推荐去「蒸馏一个模型」;明明想让小模型继承大模型能力,却被建议「先做个聚类」。这篇不绕概念,直接从目标、输入输出、产物形态三处对照,给你一张能照着判断的对照表和落地顺序,并说明哪些情况下这两条路都不合适。

很多人把这两件事混着叫,是因为都能用「一堆数据进、一堆结果出」来描述,但落脚点完全不同。聚类是在数据里找分组,蒸馏是把一个已经训好的模型的输出习惯搬到另一个模型上。前者做完你得到的是一份分组结果,后者做完你得到的是一个新模型。混淆的代价不小:想给语料自动分堆却被推荐去蒸模型,白搭一轮训练;想让小模型承接大模型能力却被建议先聚类,最后拿到的只是几个簇编号,和部署降本没关系。

这篇不铺概念史,直接从目标、输入输出、产物形态三处对照,再给一张能照着判断的对照表和落地顺序,最后说清楚哪些情况下这两条路都不该走。

先看目标:一个找分组,一个搬能力

聚类解决的是「这批东西里谁和谁像」,蒸馏解决的是「怎么让一个更小的模型表现接近一个更强的模型」。目标不同,决定了你做完之后拿到手的东西也不同:聚类给你分组编号或簇中心,蒸馏给你一份新的模型权重文件。

聚类
没有标签的前提下,按相似度把样本归堆,产物是分组结果,通常接人工看、做标注筛选或特征加工
简单蒸馏
用教师模型的输出当监督信号,让一个小模型去拟合,产物是可部署的新模型,通常接评测和上线

判断口诀很简单:你要的是一份「结论」,还是一个「能继续跑的模型」。要结论往聚类想,要模型往蒸馏想。这条口诀的边界是——如果你既想要结论又想要模型,那就是两条流水线,不是一件事的两个选项。

再看输入输出:数据进数据出,还是模型进模型出

聚类的输入是一批样本,文本向量、图片特征、用户行为序列都行,核心动作是算距离或相似度。最常见的坑是特征没归一化、维度太高,导致距离度量失效,分出来的簇看着整齐其实没意义。蒸馏的输入是教师模型的输出加训练数据,核心动作是让小模型拟合教师给的软标签或中间表示,常见坑是训练数据分布和教师当初训练时差太远,小模型学到的只是表面像。

对照维度聚类简单蒸馏
核心动作算样本之间的相似度并归堆让新模型拟合教师模型的输出
是否需要标签不需要通常不需要人工标签,但需要已经训好的教师模型
输入一批样本(向量、特征)教师模型输出 + 训练数据
产物分组编号、簇中心一个新的模型权重
主要成本抽特征、调参、算距离教师推理开销、训练算力、评测
验收方式换随机种子后分组是否稳定小模型在留出集上是否接近教师表现

一句话对照:聚类吃数据吐分组,蒸馏吃两组模型的输出对比吐一个新模型。前者不需要标签,后者通常需要一个已经能用的强模型当老师。没有可当教师的模型,蒸馏无从谈起。

什么场景用哪个:按手头资源反着推

  1. 看手里有没有教师模型已经有可用的强模型、且它在目标任务上表现靠谱,蒸馏才有意义;只有一堆没标注的数据,就先别想蒸馏
  2. 看瓶颈在数据还是在部署瓶颈是「不知道这批数据长什么样」,先做聚类摸底;瓶颈是「推理成本和延迟压不下来、必须落到本地或端侧」,才考虑蒸馏
  3. 看结果要不要给人看要把分组结果拿去做人工审核、抽样标注、去重,用聚类;要交付一个可调用的服务,用蒸馏
  4. 看两者能不能串起来常见组合是先用聚类把训练数据分堆,再按堆采样构造更均衡的蒸馏数据集,避免小模型只学到某一类样本的脾气

还有一种容易被忽略的情况:数据量很小。小样本下聚类结果对参数和随机种子非常敏感,蒸馏也容易过拟合教师的噪声输出。这时候先别急着上方法,先确认样本量够不够支撑你想得到的结论。

什么时候都不适用:别硬套

  • 数据结构本身不可分,或者簇形状很怪(长条、嵌套、密度差异极大),普通聚类会给出一看就误导的分组,此时不如直接上分类模型或人工抽样
  • 教师模型在目标任务上本来就不准,蒸馏只会把它的错一起搬过去,小模型不会因为「学得更认真」就变聪明
  • 任务对输出格式和逻辑链要求很高、小模型容量明显不够时,蒸出来的模型容易「看着像但一较真就错」,这类优先考虑提示词或检索方案
  • 数据分布会持续变化时,聚类结果和蒸馏模型都会快速过期,先想清楚多久重跑一次,再决定要不要投这笔人力

判断的底线是:如果这两条路都需要你先有一批质量过得去的样本,而你现在连样本长什么样都不清楚,那先做的是数据摸底,不是选方法。

落地顺序:照这个清单走一遍

  1. 确认目标写一句话说明你做完要交付什么:一份分组结果,还是一个可部署的模型。写不清楚就别动手
  2. 对齐口径聚类这边确认特征怎么抽、距离怎么算、簇数怎么定;蒸馏这边确认教师是谁、训练数据从哪来、小模型规模多大
  3. 小样本预跑聚类换几个随机种子跑,看分组是否稳定;蒸馏先用一小部分数据跑通流程,看小模型在留出集上的表现是否比随机初始化明显好
  4. 对照站内口径向量维度、模型规模、部署测算这些数字会变,到 /embeddings、/models/deploy 和 /compute/sizing 核对当时的数字,别拿旧记忆做决策
  5. 定复跑节奏数据分布多久变一次,就多久重跑一次聚类或重蒸一次模型,把这个节奏写进流程里,否则结果过期了你也不知道
下一步想先判断自己该走哪条路,可以先看工具目录里向量与评测相关的页面,再对照部署测算把成本口径对齐,避免选完方法才发现资源对不上。

常见问题

聚类算不算一种蒸馏?

不算。聚类是无监督的数据分析方法,没有教师模型也没有参数迁移,它只告诉你样本之间怎么分组;蒸馏是训练方法,必须有一个提供监督信号的教师模型,产出是新权重。两者可以配合使用,但不是同一类事。

小模型效果差,直接蒸馏一下就能追上大模型吗

要看差距来源。如果差在容量不够、任务又需要多步推理,蒸馏能缩小差距但通常追不平;如果差在输出风格、格式稳定性这类表层习惯,蒸馏收益会比较明显。建议先做小规模对照实验,别一次性投入全部数据。

聚类结果怎么判断靠不靠谱

先看稳定性:换随机种子、换特征抽取方式后分组是否大致一致;再看可解释性:抽几个人工能看懂的代表样本,看同组是不是真的同质。如果分组一变再变、或者每组里什么都混着,说明数据本身没有清晰结构,先别急着拿去做标注或训练。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。