1. 从零理解CoT蒸馏让大模型的思考能力装进小模型第一次听说CoT蒸馏这个概念时我正被一个实际问题困扰客户需要在智能音箱上部署数学解题功能但GPT-4的API调用成本高得吓人。当时尝试直接用7B小模型微调结果生成的答案就像背了题库的学渣——遇到原题能蒙对题目稍改就露馅。直到发现CoT蒸馏这个作弊码才真正解决了问题。CoT蒸馏的本质就像学霸给学渣补课。传统知识蒸馏相当于让学渣死记硬背学霸的答案而CoT蒸馏则是把学霸的解题草稿本也复印给学渣。具体来说它包含三个关键环节教师模型的选择建议选用至少比学生模型大10倍的教师模型。比如用GPT-4教Llama3-8B或用Claude-3教Mistral-7B。我实测发现教师模型的推理步骤质量直接影响最终效果。Prompt设计的艺术要让教师模型输出优质推理链prompt需要包含三个要素明确要求分步思考Think step by step提供解题格式范例如首先...然后...最后...限制自由发挥避免生成无关内容# 典型CoT prompt模板示例 cot_prompt 请逐步解决以下问题并按照以下格式回答 问题问题描述 思考过程 1. 第一步... 2. 第二步... ... n. 第n步... 最终答案答案数据清洗的陷阱最初我直接使用原始生成数据结果小模型学会了教师模型的坏习惯——包括计算错误。后来加入自动校验如数学题用sympy验证、人工抽检后模型效果提升27%。建议保留5-10%的错误案例作为负样本反而能增强鲁棒性。2. GRPO不用奖励模型的强化学习新玩法去年调试PPO时光是奖励模型就烧掉我3张A100两周的训练时长。直到看到GRPO论文才发现原来强化学习可以这么轻装上阵。这个技术的精妙之处在于它把传统RLHF的三部曲收集数据→训练奖励模型→PPO微调压缩成了实时进行的单步操作。GRPO的核心机制可以类比为照镜子每次生成token时模型会同时看到理想中的自己Ghost Respond通过比较两个版本的概率差异立即获得奖励信号这个信号就像镜子里的偏差提示让模型实时调整生成策略在实际项目中我发现GRPO特别适合这些场景对话系统的即时风格调整如从正式转幽默代码生成时的实时格式修正多轮对话中的一致性保持# GRPO奖励计算伪代码 def compute_reward(logits, y, y_star): # y: 模型实际生成的token # y_star: ghost respond中的理想token log_p_y logits[y] # 模型对实际token的预测概率 log_p_ystar logits[y_star] # 模型对理想token的预测概率 return log_p_ystar - log_p_y # 奖励理想概率-实际概率但要注意几个坑Ghost Respond的质量决定上限。我试过用GPT-4生成ghost respond效果比用高温采样好43%学习率要设得比PPO小5-10倍否则容易振荡适合token级细粒度调整不适合整体语义大幅改变3. 实战用CoTGRPO训练数学解题小模型去年给教育机构部署的数学辅导机器人就是用这套组合拳实现的。具体流程如下阶段一CoT蒸馏打基础收集10000道中小学数学题代数/几何/应用题用GPT-4生成带详细步骤的解答过滤低质量数据后得到约8500组有效训练样本在Llama3-8B上做监督微调阶段二GRPO精调行为准备500道新题作为测试集对每个问题用高温采样生成多个候选解答人工标注最佳解答作为ghost respond进行在线GRPO训练关键参数学习率5e-6批大小32训练步数2000效果对比令人惊喜纯SFT模型58%准确率SFTGRPO72%准确率推理速度比GPT-4快8倍显存占用可在RTX3090上部署4. 避坑指南那些年我踩过的雷在多个项目实践中总结出这些血泪经验数据层面的坑教师模型幻觉传染有次发现小模型会模仿GPT-4的虚构步骤。解决方法是在prompt中明确要求只使用已知数学原理多样性不足初期只用了代数题导致几何题表现差。后来保持题目类型均匀分布中文数字问题教师模型喜欢用一百而不用100导致小模型格式混乱。需要统一数字格式训练技巧渐进式蒸馏先教简单题再逐步增加难度效果比混合训练好15%损失函数设计除了标准LM loss我增加了对推理步骤关键token如因此所以的加权注意力早停策略监控验证集上推理步骤的连贯性而不只是答案正确率部署优化量化压缩用AWQ量化到4bit后精度仅下降2%但推理速度提升3倍缓存机制对高频题目缓存推理过程减少30%计算开销回退策略当置信度低于阈值时自动转人工避免硬撑答错