什么场景该用小模型替代大模型?模型蒸馏怎么做?
面试怎么回答
任务明确、输出空间有限、调用量大、延迟敏感、数据不能出公司,并且有训练数据或能从大模型生成数据时,适合用小模型,比如分类、抽取、意图识别;开放式复杂推理不适合。蒸馏就是用大模型作为教师在真实业务输入上生成输出,筛选一致的、通过校验的、抽检正确的高质量样本,微调小模型,再在独立的人工标注测试集上和教师对比。实践中常用级联:小模型先处理,高置信度直接用,低置信度的交给大模型。要注意业务分布变化后小模型不会自适应,需要监控和定期重训,考虑训练部署的维护成本,并确认模型服务条款是否允许用其输出训练。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
一个工单分类任务,用能力最强的大模型准确率 95%,每天 10 万条,成本和延迟都不低。换成一个经过训练的小模型,准确率 93%,成本降到几十分之一。面试官问这题,想看你能不能根据任务特点做模型选择,并知道怎么把大模型的能力迁移到小模型上。
什么任务适合小模型
- 任务明确、输出空间有限:分类、实体抽取、意图识别、简单改写;
- 调用量大:每天几十万、几百万次,成本和吞吐压力大;
- 延迟敏感:在线链路里的一个环节,比如检索前的查询分类;
- 数据不能出公司:小模型容易私有化部署;
- 有足够的训练数据或者能从大模型生成数据。
不适合:开放式的复杂推理、需要广泛知识、任务多变的场景。
蒸馏的基本思路
用大模型(教师)的输出作为训练数据,训练小模型(学生),让小模型学会在这个特定任务上的表现:
- 收集输入:真实的业务数据,覆盖任务的各种情况;
- 教师标注:用大模型生成输出(标签、抽取结果、回答),必要时让它输出推理过程;
- 筛选:只保留高质量的教师输出,比如多次生成结果一致的、通过规则校验的、人工抽检正确的;
- 训练学生:在这些数据上微调小模型;
- 评估:在独立的、人工标注的测试集上对比学生和教师。
这和「模型预标注 + 训练」本质上是同一类数据工程。
混合使用:级联
不必非此即彼:
- 小模型先处理,输出置信度;
- 置信度高的直接使用;
- 置信度低或者小模型判断为复杂的,再交给大模型。
这样大部分流量走便宜的小模型,难的少数走大模型,兼顾成本和效果。
需要注意
- 数据分布变化:业务变了(新的工单类型),小模型不会自己适应,需要监控准确率并定期重新训练;
- 持续评估:抽样和大模型的结果对比,发现退化;
- 维护成本:小模型的训练、部署、版本管理都需要人力,调用量不大时不一定划算;
- 许可:使用某些模型的输出训练其他模型,要确认服务条款是否允许。