老师傅 = 大模型(Teacher Model) 年轻人 = 小模型(Student Model) 跟着学 = 蒸馏过程
太贵:调用一次大模型的 API,费用是小模型的 10 倍甚至更多 太慢:参数多,推理速度慢,用户等得烦 太重:动辄几百 GB,手机上跑不了,嵌入式设备更别想 杀鸡用牛刀:很多场景其实不需要最强的模型,够用就行
L = α × L_soft + (1-α) × L_hard
L_soft:小模型的输出和大模型的输出之间的差距(用 KL 散度衡量)
L_hard:小模型的输出和真实标签之间的差距(传统的交叉熵)
α:控制两者比重的参数
准备几万到几十万条问题 让 GPT-4 或 Claude 逐条回答 用这些"问题 + 大模型的回答"作为训练数据 微调一个 7B 或 13B 参数的小模型
让大模型在回答时展示完整的推理过程 把推理过程和最终答案一起作为训练数据 训练小模型时,要求它也学会"先想后答"
DistilBERT:BERT 的蒸馏版本,参数量减少 40%,速度提升 60%,但保留了 97% 的性能 DeepSeek-R1 蒸馏版:从 671B 参数蒸馏到 7B/14B/32B 等多个版本,在数学推理上甚至超过了一些同量级的原生模型 Gemma、Phi 系列:微软和 Google 的小模型都大量使用了蒸馏技术,让几十亿参数的模型具备了远超自身体量的能力
小模型的容量有限:再怎么学,7B 参数的模型也装不下 400B 参数模型的全部能力,你能蒸馏出精华,但无法做到完全还原 任务泛化能力会下降:蒸馏后的小模型在特定任务上表现不错,但遇到没见过的任务类型,往往不如大模型灵活 存在法律和商业风险:很多大模型的使用条款明确禁止用其输出来训练竞争模型,比如 OpenAI 的服务条款就有相关限制 质量取决于老师:大模型本身如果在某个领域表现不好,蒸馏出的小模型只会更差
|