日期:2026-07-22
这个项目起于一次真实的成本对账。某集团物资采购电子商城上线大模型后,每个月推理账单涨得让财务皱眉,而统计下来约六成请求其实是高度确定的——订单状态查询、目录检索、合同要素抽取,这些本不需要 70B 级别的模型出手。我们当时算了一笔账:把这部分确定性强、容错要求不极致的请求,用大模型蒸馏出的小模型在端侧或轻量服务上承接,理论上能把大头成本砍掉,同时把 P99 时延从秒级压到百毫秒级。前提是蒸馏不能把质量带崩,端侧也不能把内存撑爆。我们采用的私有化底座里,模型服务化层支持 vLLM 与 TGI 两套推理栈,算力调度监控层能按 GPU 池化做弹性扩缩容,AI 网关的路由层恰好可以按能力画像把请求分发到大模型或小模型,计量层则把两边的 token 与费用按部门分别记账。
场景拆成三段。第一是蒸馏产出:用线上大模型的输出日志作为教师信号,构造"软标签"训练集,产出 1.5B 级别的领域小模型,承接意图分类、要素抽取、简单问答。教师信号的来源我们做了分级——只取线上被人工抽检判为"优质"的对话作为蒸馏正样本,避免把教师自己答错的分布也学过去。第二是量化部署:小模型做混合精度量化后,一部分部署到门店前置仓的边缘盒子,一部分部署到私有云的轻量推理服务,用 TGI 跑批量请求,KV 缓存做复用;边缘侧用我们采用的自研私有化交付形态里的推理一体机,断网也能本地承接。第三是网关路由:AI 网关接入层收到请求后,路由层先按意图置信度与复杂度打分,确定性高且置信度够的走小模型,模糊或高风险走大模型,小模型连续低置信时自动兜底回大模型。可观测模块把大小模型的延迟、命中率、回退率实时画进 Grafana,方便我们看路由策略是否健康,也能据此反推哪些意图该回流进蒸馏集补数据。
蒸馏数据构造与教师—学生对齐。 我们一开始直接拿教师模型的 argmax 硬标签训学生,结果学生只会死记答案,换种问法就崩。后来改成保留教师输出的概率分布(softmax 温度 T=4 的软标签),用 KL 散度让学生去贴合教师的"思考分布"而非单点答案,并在数据里混入 20% 的真实人工标注硬标签做校准。蒸馏损失用 α·KL(学生‖教师) + (1-α)·CE(学生, 真值),α 取 0.7,这样学生既学分布又不被教师错误带偏,泛化明显更稳。
小模型量化与精度保真。 INT8 量化上线第一批就翻车:金额、合同编号这类数字字段识别率掉了近一成。我们改用混合精度——权重 INT8、激活保留 FP16,并对数值敏感层做 per-channel 量化而非 per-tensor,回退了三层最敏感的注意力输出层到 FP16。量化后跑一轮领域校准集,只有掉点小于 1% 的层才允许量化落地,其余强制走 FP16,精度与体积之间取了折中。
端侧算力约束与常驻。 边缘盒子的内存只有 8GB,小模型常驻还要留推理缓冲。我们把模型切成分块加载(layer-by-layer lazy load),推理时只把当前层权重驻留显存,配合 KV 缓存上限截断,峰值内存从 5.2GB 压到 3.1GB。常驻进程用 cgroup 限到 3.5GB,避免和门店 POS 抢资源。同时做了冷启动预热,首次请求不再有数秒的加载抖动,时延曲线平稳。
大模型/小模型路由与兜底。 路由最怕"小模型逞强"。我们在网关路由层加了一条硬规则:凡是涉及金额、合同、法律口径的请求,无论置信度一律走大模型;其余请求小模型置信度低于 0.6 立即回退。计量层对回退请求单独打标,用来反推哪些意图该从蒸馏集里补数据,形成"路由—回退—补数据"的闭环。网关的限流熔断信号还会反向驱动底座的弹性扩缩容,大模型压力大时自动加副本。
以下为脱敏示意数据,来自某集团物资采购电子商城的订单与合同处理链路,统计窗口约两个月。
| 指标 | 改造前 | 改造后 | 说明 |
|---|---|---|---|
| 小模型准确率 | 基线 — | 约 94% | 相对教师模型在确定性子集上的准确率 |
| 推理成本 | 基线 100% | 降至约 38% | 小模型承接约六成请求后综合成本下降 |
| P99 时延 | 约 1.8s | 降至约 210ms | 端侧/轻量服务承接确定性请求 |
| 端侧内存占用 | — | 约 3.1GB | 分块加载+混合精度后的峰值显存 |
整体看,确定性强请求被小模型有效承接,综合推理成本降至约四成,端侧时延进入百毫秒级,峰值内存控制在边缘盒子可承受范围,门店前置仓也能稳定常驻。
能小则小,这是这条链路最朴素的结论。不是所有请求都值得大模型出手,把确定性请求交给蒸馏小模型,成本和时延同时受益。第二,蒸馏保的是教师的"分布"而非死记答案——软标签加温度、保留概率分布,学生的泛化才稳。第三,量化要讲精度保真,数值敏感层别硬上 INT8,混合精度更稳。第四,路由必须留兜底,小模型不是万能,硬规则保底加置信度回退,才能放心把流量切过去。我们采用的 AI 网关路由层与计量层,把"按能力分发"和"回退即补数据"两件事串成了自动闭环,底座的弹性扩缩容也被网关限流信号反向驱动,整体形成了一条可复制的小模型落地范式。
下面是蒸馏与路由的一段配置(已脱敏):
案例片段(已脱敏): distill: teacher: xp-llm-70b student: xp-llm-1.5b temperature: 4 loss: "0.7KL(student||teacher) + 0.3CE(student, gold)" mix_gold_ratio: 0.2 quant: scheme: mixed # 权重 INT8,激活 FP16 per_channel: true sensitive_layers_fp16: [attn_out_3, attn_out_7, attn_out_11] route: small_model_threshold: 0.6 force_large: ["amount", "contract", "legal"] # 高风险意图一律走大模型
这段配置把"教师分布"和"端侧约束"同时落了地,是我们这个项目里最常被复用的一页。后来另一条即时零售履约链路也照此范式做了蒸馏,路由规则只改了 force_large 的口径,整体收益基本可平移。