
前言
故事的开始是使用了谷歌的Gemini就广西水患进行原因分析。
我好奇it为什么会知道最近发生的事,还知道是七月的,我以为他使用了RAG技术。
意外得出动态参数微调的方案。
我好奇这种动态参数微调会不会影响原有的模型在某些任务上的表现;
it提出了混合的动态参数微调方法,其中注意到用5%的新数据搭配95%的旧的经典数据(筛选过的)来使得微调后的模型在擅长的任务上维持表现,同时又能获得新的知识,而不依赖于外部的RAG及技术。
得出RAG的优势:量大管饱、更新快、不用对LLM进行增量式预训练+微调。
那么Gemini这里为何能够回答7月水患的问题呢?答案就是——增量式微调
专家模型的增量式微调通过门控网络来判断哪些专家参与接收这些高质量的数据,这样只有涉及到该此增量训练的专家的神经网络参与前项传播与反向传播,由此带来算力开销。下面表格举例,着重看最后一列动态切换,“洪水数据”时代码专家在歇着,Python代码”时,代码专家立刻被激活。
| 维度 | 传统冻结参数(如 PEFT / 局部 Frozen) | MoE 的稀疏激活(Sparse Activation) |
|---|---|---|
| 决定谁不参与的人 | 人类工程师。在训练前写死代码,指定哪些层不参与训练。 | AI 路由网络自己。在训练过程中根据输入数据动态决定。 |
| 状态是固定的吗 | 绝对固定。整个训练周期内,被冻结的参数雷打不动。 | 动态切换。上一秒处理“洪水数据”时代码专家在歇着;下一秒混入的旧数据是“Python代码”时,代码专家立刻被激活开始打工。 |
| 参数会发生微弱变化吗 | 绝对不会,梯度直接为 0。 | 路由网络自身在变。虽然闲置专家的参数没动,但负责分发数据的“路由网络”参数一直在调整,它在学习未来如何更精准地分发新旧知识。 |
模型参数
在解答“什么是专家模型,与激活参数的实际关系是什么”的问题中,我了解到**总参数量(Total Parameters)和激活参数量(Active Parameters)**的关系,前者是模型运行所需占用的显存的容量,决定了模型本身的知识储备量,后者的则是单次计算时的计算量,决定了推理的速度(计算量越小,推理速度越快)。
另外,解答了一点,专家模型的任务划分并不是按具体的代码任务或者知识任务来划分的是按照token级别的纬度来划分的,因此激活专家的组合是在不断切换的。
最后,回答了端侧蒸馏模型的应用,失去了大量的知识储备,保留了原有的推理思维链就,部署于手机车载设备等相对低性能终端。也就是说,蒸馏后的小模型并不是没有脑子,而是没有知识。
RAG + 蒸馏后的端侧模型是否可行?
提出新问题:针对蒸馏后的小模型,用于部署端侧,比如手机或者车机等设备,这种小模型呢,它保留了原有的思维链,也就是思维,但是它缺少了知识储备,那么我们想法来了,这里我们加RAG技术,通过联网或者自建局与知识库,来增加知识储备和更新知识,这样的话那他岂不是和大模型相差无几了?
回答依旧提出了 致命的“长文本上下文窗口(Context Window)”,就是说RAG 的本质是把知识库里检索出来的几千甚至上万字,一股脑塞进模型的 Prompt(提示词)里,小模型上下文很短,外加上本地算力限,很容易导致推理时间过长,然后缺失这种端侧模型的优势;
另外还提到小模型,语义理解能力差,若使用RAG塞入到提示词中的大量信息,则会造成干扰,面对这种干扰时,小模型的语义理解能力展现出明显的劣势。
因此,可以通过对信息进行预先处理,如通过替换一些晦涩难懂的词等等,将要处理的信息范围限制在小模型能够理解的范围之内,这样处理后再交给小模型。
意外收获:在面对RAG给出的信息时由于小模型会受到干扰,因此小模型的 RAG 知识库投毒 / 提示词注入方向 可以做做文章。
题外话:详细了解什么是RAG?与向量数据库检索有什么关系?
RAG并不等于向量数据库检索,涉及检索(Retrieval)+ 增强(Augmentation)+ 生成(Generation)的有机结合都叫RAG,这包含搜索引擎的信息检索、知识图谱的信息检索等。下面有个具体的RAG实例:演示了RAG检索信息->组装prompt->生成回答的全过程

关于RL在 LLM训练中的应用
经过大量数据预训练得到BaseModel,在BaseModel上进行微调得到带有思维方式的Model。
以Deepseek为代表的LLM,引入第3阶段 RL;特别是Deepseek在第一阶段训练得到BaseModel后,复制多个该BaseModel分别进行微调(进行SFT有监督微调和大规模RL),得到效果后,得到多个专家模型,再拿出一个赶脚的BaseModel向这些专家模型学习,也就是对这些专家模型进行蒸馏,得到一个真正的V4。

关于微调阶段
对比了通用大模型的微调和专家模型的微调,前者一般是全量微调,后者更多采用LoRA/QLoRA微调(3090双卡即可)。效果上自然是前者的效果更好,毕竟计算量大得多。
不一样的是通用模型中的微调为的是让模型有通用的CoT即会说人话,而专家模型的微调是为了深入行业说行业话掌握行业的CoT。
基于开源model的 无论哪种方式进行专家模型训练均会丢失原有模型的通用能力,特别是全量微调。
关于蒸馏
deepseekV4区别于传统的离线式蒸馏——教师模型生成大量问题的答案,交给学生学习,而在线策略蒸馏(On-Policy Distillation),我称之为响应式蒸馏,得到题后学生当场作答,老师当场评分纠正,这样实时的反馈能够使得clean basemodel的水平无限接近所有专家模型(老师模型)。下图的OPD正是——在线策略蒸馏(On-Policy Distillation)

问题解答:基于basemode训练专家模型和 开源的model微调做专家模型后者往往更差么,请举出实际例子证明?
2025 年初 DeepSeek-R1 横空出世,官方除了发布 671B 的大模型外,还开源了几个小尺寸的“蒸馏版专家模型”(如基于 Qwen 和 Llama 的版本)。这是历史上最完美的正面对比:
对比组 A(开源 Chat 改装路线):很多民间开发者尝试拿
Qwen2.5-32B-Instruct(Chat版)去微调,希望让它具备很强的思维链推理能力。无论怎么喂数据,模型在面对奥数题或高难度 Codeforces 编程时,总是习惯性地直接给出答案,无法自发地在<think>里进行深度的自我纠错和长文本推理。对比组 B(DeepSeek 官方路线):DeepSeek 官方绝对不碰 Chat 版。他们直接拿最干净的
Qwen2.5-32B-Base(基座版)作为起点,用 R1 生成的 80 万条纯粹的推理数据进行微调。震撼结果:最终得到的
DeepSeek-R1-Distill-Qwen-32B专家模型,在数学、代码推理能力上直接干翻了比它大数倍的闭源旗舰模型。它在纯净的 Base 身体里完美复刻了长链条的推理思维,完全没有任何日常聊天的废话。
开源模型的版本
-chat、-base、-instruct
chat一般是聊天助手式的;instruct则少了助手式寒暄,转而执行单一指令;base则是词语接龙完全没有思维链。所有用来微调做垂直领域专家一般采用后两者,优先base。
⚠️注:现有训练阶段——一体化:大厂采用了“全生命周期一体化训练”(从连续预训练阶段 CPT 开始,就直接将 SFT 和强化学习 RL 的策略融入进去了。
