跳到主要内容

蒸馏是一个产品决策,而非研究产物

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个基于前沿模型的聊天功能,单次对话成本大约是 30 美分。而同功能的蒸馏版本,单次对话成本大约只有 0.3 美分。这并不是同一个产品的两种实现方式,而是两个截然不同的产品。它们有着不同的免费层级经济模型、不同的获客成本、不同的市场定位以及不同的竞争护城河。如果一个团队只是将蒸馏版本当作“更便宜的同款功能”发布,那就白费了这一招。

大多数工程组织仍将蒸馏视为研究团队的优化任务,认为是在功能“完成”后,为了挤出推理成本而对已经按前沿模型规格设计好的东西进行的后期处理。这种理解在数量级上就是错误的。Teacher 模型(教师模型)的选择、Student 模型(学生模型)的选择、用于评测 Student 的评估套件,以及 Student 最终部署的产品界面,本质上都是产品决策。它们决定了你同意放弃哪些能力、你为哪种流量形态进行设计,以及你正在开启哪种价格底线。如果把这些交给研究团队去针对 MMLU 进行优化,你最终发布的模型虽然在榜单上表现优异,但对产品本身毫无意义。

经济账让其中的利害关系变得清晰。一个每天处理 1 万次查询的小型蒸馏模型,每月运行成本在 500 到 2,000 美元之间;而同等规模的前沿模型 API 工作负载则需要 5,000 到 50,000 美元——这意味着推理费用压缩了 10 到 25 倍,在调优良好的流水线中甚至能达到 30 倍。每百万 Token 的定价也反映了同样的情况:GPT-4o-mini 的价格为 0.15 美元 / 0.60 美元,而 Claude Opus 则高达 15 美元 / 75 美元,最便宜和最强大层级之间存在百倍的价差。这不叫优化,这是菜单上一个完全不同的价格列。

能力损失评估(Capability-Loss Eval)是产品规格

最常见的蒸馏失败往往是悄无声息的,通常是这样的:团队选择一个 Teacher(某个前沿模型),选择一个 Student(某个较小的 Checkpoint),针对通用蒸馏数据集进行训练,看着 Student 达到了 Teacher MMLU 分数的 95%,然后发布。结果两个月后发现,那些驱动“免费转付费”的长尾用例,恰恰是 Student 无法处理的。因为没有人明确指出哪些能力被放弃了,所以也就没有人注意到它的消失。

弥补这一差距的方法是进行“能力损失评估(Capability-Loss Eval)”,明确你愿意失去哪些行为。长推理链、冷门领域知识、低频工具选择、超过三四个步骤的多步规划、前三大编程语言之外的代码生成、针对 Teacher 能抵御而 Student 无法抵御的越狱提示词的对抗鲁棒性。每一个都是产品规格上的复选框,而不是一个要去优化的数字。对于一个蒸馏后的客服机器人,诚实的答案可能是“我们正在失去对任意文档的推理能力,但保留了意图分类和情感分析”——这没问题,因为产品并不需要前者。但除非你白纸黑字写下来,否则你无法做这笔交易。

公共基准测试并不是合适的工具。蒸馏模型保留 Teacher 95% 的 GLUE 或 SuperGLUE 分数是常态而非特例。但这个保留比例无法告诉你,模型损失的 5% 是否集中在那些驱动收入的流量切片中。针对特定应用的评估——基于你自己的生产日志、根据流量频率和业务价值加权——是唯一能以关键分辨率观察损失的方法。如果你的评估套件无法区分“在蒸馏前模型也无法处理的 0.5% 查询中失败”和“在模型原本可以处理、但现在不行了的 0.5% 查询中失败”,那么它就不是蒸馏评估,而只是一种凭感觉的“氛围检查(vibe check)”。

蒸馏阶梯:基于经济模型将变体映射到产品界面

一旦将蒸馏视为产品变体,自然就会保留多个变体。一个“蒸馏阶梯(Distill Ladder)”是一组逐步压缩的模型——前沿 Teacher、中层 Student、小型 Student、边缘侧部署 Student——每个模型都根据经济模型而非随机可用性分配到不同的产品界面。

前沿 Teacher 服务于那些错误答案会导致付费用户流失的工作流:法律研究查询、合同红线摘要、多步调试会话。中层 Student 服务于大部分已认证流量,这些用户已登录,且稍微弱一些的推理链是可以接受的。小型 Student 服务于匿名免费层级流量和对延迟敏感(超过质量感知)的自动补全类功能。边缘侧变体运行在用户设备上,用于离线模式或数据不能离开边界的隐私敏感场景。

在这些模型之间进行路由本身就是一个工程问题——一个小型分类器或基于规则的路由系统,而不是第四次 LLM 调用——但产品层面的问题是,哪个界面对应哪个阶梯层级。将这个问题视为“通过我们底线的最低成本模型”,会产生一个连贯的阶梯。将其视为“一切都去向前沿模型,以后再优化”,则只会得到一个阶梯层级和严重的毛利问题。

阶梯的战略价值在于它赋予了产品团队在不同价位上的选择权。运行在小型 Student 上的免费层级是一个获客渠道;运行在前沿 Teacher 上的付费层级是升级目标。让你能够免费提供底层服务的经济模型,恰恰是让顶层服务变得有价值的原因。那些只有顶层服务的公司,是在运行一个没有获客漏斗的高利润业务。

失败模式:赢下简单的 80%,输掉长尾部分

这种诱人的失败模式是针对简单的绝大多数流量进行蒸馏。团队构建了一个教师-学生流水线 (teacher-student pipeline),对“具有代表性”的生产查询语料库进行采样,训练学生模型,并眼睁睁地看着它在大多数查询上达到与教师模型相当的水平。然后,他们发布了。

他们所发布的是一个针对那些从未成为问题的查询进行优化的模型。任何合理的模型都能正确处理那 80% 的流量,而这部分流量并不是驱动产品市场匹配 (product-market fit) 的核心。另外 20% —— 长尾边缘案例、多步推理、对抗性输入、特定领域的术语、多轮澄清 —— 才是用户要么成为拥护者,要么流失的地方。一个在简单查询上获胜但在长尾上失败的蒸馏模型,是一个在演示时表现惊艳,但在生产环境中悄无声息地降级的特性。

有两种做法可以防止这种情况。第一种是分层训练数据采样 —— 构建学生模型的训练语料库,使长尾流量相对于其生产频率超量代表,从而将学生模型的训练信号偏向它原本会欠拟合 (underfit) 的案例。第二种是分层评估 —— 以相同的方式切分评估集,这样一来,以长尾部分 15% 的退化为代价换取的 2% 整体准确率提升,就不会看起来像是一次胜利。大多数蒸馏流水线默认都不会这样做。添加这些步骤的团队会捕捉到一类回归问题,而没有添加这些步骤的团队则会直接发布这些问题。

所有权属于产品,而非研究

教师-学生流水线是一个产品规格 (product spec)。教师模型的选择是质量上限,学生模型的选择是成本下限,训练语料库是对产品用途的定义,而评估套件是对“优秀”标准的定义。这些都是产品负责人 (product owner) 需要做出并承担责任的决定。让研究团队孤立地做出这些决定,会产生一个针对学术目标优化的模型,而这并不符合产品的经济效益。

这并不意味着产品经理在运行梯度下降 (gradient descent)。它意味着流水线的跨职能所有权存在于产品层面:哪些能力需要保护,哪些可以牺牲,哪些界面使用哪一阶梯,价格上限是多少,延迟下限是多少。研究团队执行训练;产品团队指定权衡。反之 —— 研究团队指定权衡,产品团队接受产出的任何结果 —— 就会导致蒸馏模型在团队内部基准测试中表现出色,但在真正产生收益的界面上却遭遇失败。

判断所有权是否错位的一个实际信号是:询问团队为什么选择该学生模型的尺寸。如果答案是“它是教师模型的下一个更小的检查点”或“它正好能装进一个 GPU”,那么所有权在基础设施团队。如果答案是“我们需要将每次对话的成本降至一美分以下,并将 p95 延迟控制在 800 毫秒以内,因为聊天界面在超过这个数值后会失去会话留存率”,那么所有权在产品团队,且该团队正在做出正确的决策。

不要按前沿模型定价

最后也是最容易被忽视的一点:一个定价和定位与其前沿兄弟模型 (frontier sibling) 完全相同的蒸馏功能,浪费了它的大部分杠杆作用。承担教师-学生流水线、能力损失评估、蒸馏阶梯 (distill ladder) 和分层评估这些工程复杂性的全部意义,在于解锁在前沿模型价格点上不存在的产品界面。例如:免费层级、批量处理层级、具有不同服务等级协议 (SLA) 的高流量 API 层级,或者前沿模型永远无法运行的端侧部署。

如果团队发布了一个蒸馏模型,并以相同的价格引导相同的流量通过它,他们只是将产品策略杠杆转化为了现有业务的利润率提升。这并非毫无意义 —— 但这是最小的潜在回报,而且它放弃了更大的动作。更大的动作是利用成本下限来定义新产品。推理成本 30 倍的压缩是产品策略资本。将其花在利润率上,相当于用一笔意外之财偿还信用卡账单,而不是进行投资。虽然这在辩护上行得通,但很少是这笔钱的最佳用途。

实践中的表现

一个认真对待蒸馏作为产品决策的团队,会像对待任何其他产品发布一样对待上线。会有一个产品负责人对变体负责。会有一份书面的能力损失规格书,列出被放弃的行为。会有一个分层评估集,对驱动收入的流量赋予更高的权重。会有一个路由层,根据经济效益而非偶然性将界面映射到阶梯的相应层级。会有一个定价决策,将新的成本下限反映为一种新的产品形态,而不是对旧产品进行低调的利润率升级。

完全不做这些工作的团队仍然会发布一个蒸馏模型。它的运行成本会更低,在标准基准测试中表现尚可,但在关键的流量切片上会表现不佳。而做到所有这些工作的团队最终会拥有一系列变体,每个变体都针对不同的市场定价,每个变体都根据不同的标准进行评估,并且每个变体都捕捉到不同的需求细分。第一支团队拥有的是一个研究产物,而第二支团队拥有的是一个产品策略。

蒸馏是少数几种你获得的主要是经济能力的工程技术。请这样对待它。将规格交给产品负责人,将权衡交给书面评估,将层级到界面的映射交给路由器。将蒸馏作为产品变体发布的团队,与将其作为研究余兴节目发布的团队相比,正在玩一场不同的游戏,而这种差异在出现在模型卡 (model card) 之前,早就体现在损益表上了。

References:Let's stay in touch and Follow me for more thoughts and updates