Merge、Ensemble 与 Cooperate:一文读懂大语言模型协同
本文是对论文《Merge, Ensemble, and Cooperate! A Survey on Collaborative Strategies in the Era of Large Language Models》的中文解读。
论文:Jinliang Lu、Ziliang Pang、Min Xiao、Yaochen Zhu、Rui Xia、Jiajun Zhang,arXiv:2407.06089v1,2024 年 7 月。
原文链接:arXiv:2407.06089
写在前面:这篇综述到底讲了什么?
如果只记住一句话,可以记住:
大模型协同的本质,是让多个能力、成本和知识边界不同的模型,以合适的方式共同完成任务。
论文把现有方法分成三大类:
- Merge(合并):直接在参数空间中把多个模型合成一个模型。
- Ensemble(集成):保留多个模型,在输入、生成过程或输出阶段组合它们的结果。
- Cooperate(合作):让不同模型承担不同职能,例如小模型压缩输入、起草答案、检测幻觉或检索资料,大模型负责最终生成。
这三个词看起来相近,区别其实非常清楚:
- Merge 关心的是:模型参数怎么合?
- Ensemble 关心的是:多个模型的预测怎么合?
- Cooperate 关心的是:不同模型怎么分工?
从 Merge 到 Ensemble 再到 Cooperate,对模型之间"必须相似"的要求逐渐降低,系统设计的自由度逐渐提高。
特别提醒:这篇论文讨论的是广义的"LLM 协同",不只讨论"大模型 + 小模型"。但在推理加速、知识迁移、检测、检索和联邦学习等 Cooperation 场景中,大小模型之间的协同尤其突出。因此,对于"大小模型协同"研究者,论文第 5 节通常最值得重点阅读。
本文结构
- 第 1~3 节:先理解协同动机、基础术语和总分类;
- 第 4 节:参数层的 Merge;
- 第 5 节:输出层的 Ensemble;
- 第 6 节:大小模型分工最集中的 Cooperate;
- 第 7~9 节:方法选型、数学直觉和未来方向;
- 第 10~13 节:论文评价、入门研究建议、阅读路线与常见问题;
- 第 14 节:全文总结。
1. 为什么一个大模型还不够?
大语言模型已经具备很强的通用能力,但"参数更多"不等于"所有任务上都更好"。不同模型会因为以下因素形成不同的能力边界:
- 训练语料不同:有的模型中文强,有的代码强,有的医学或金融知识更丰富。
- 模型架构不同:不同架构在上下文长度、推理效率、部署方式等方面存在差异。
- 微调数据不同:同一个基础模型经过数学、代码、对话或安全数据微调后,会形成不同专长。
- 对齐目标不同:有的模型更符合人类偏好,但对齐也可能带来"对齐税",即某些原始能力下降。
- 部署成本不同:大模型通常效果更强,但更慢、更贵;小模型更快、更便宜,却可能处理不了困难问题。
因此,协同研究要解决的并不是"怎样造出唯一的万能模型",而是:
怎样把一组各有所长的模型组织起来,让系统在效果、速度、成本、隐私和可靠性之间取得更好的平衡?
论文强调了三类直接动机:
- 能力互补:没有单一模型能稳定统治所有任务。
- 弥补缺陷:缓解幻觉、偏见、隐私泄露等问题。
- 提高效率:让小模型承担便宜、简单、高频的工作,减少大模型计算量。
可以把一个协同系统想象成医院:
- Merge 像把多位医生的知识"压进"一位全科医生;
- Ensemble 像多位医生分别会诊,再投票或由专家选最终诊断;
- Cooperate 像分诊、检查、检索病历、诊断和复核由不同角色依次完成。
2. 阅读本文前需要知道的 10 个词
| 术语 | 小白解释 |
|---|---|
| 参数(parameter) | 模型训练后学到的大量数值,可粗略理解为模型的"长期记忆和能力载体"。 |
| Token | 模型处理文本的基本单位,可能是一个字、一个词或词的一部分。 |
| Vocabulary | 模型认识和输出的 token 集合。不同模型的词表可能不同。 |
| Logits | 模型对"下一个 token 应该是什么"给出的未归一化分数。 |
| 概率分布 | 将 logits 转换后得到每个候选 token 的生成概率。 |
| Router(路由器) | 根据输入选择应该调用哪个模型的额外模块。 |
| Verifier(验证器) | 对候选 token、答案或事实进行检查和打分的模型。 |
| Retriever(检索器) | 从文档库、知识图谱或数据库中找出相关信息的模块。 |
| RLHF | 基于人类反馈的强化学习,用来让模型更符合人类偏好。 |
| RAG | 检索增强生成:先检索外部知识,再让大模型依据知识生成答案。 |
还有一个容易混淆的概念:
- **协同(collaboration)**是总称;
- **合作(cooperation)**是论文三分法中的第三类。
3. 全文知识地图
#mermaid-svg-QPtdoQdazHspCsWd{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-QPtdoQdazHspCsWd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-QPtdoQdazHspCsWd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-QPtdoQdazHspCsWd .error-icon{fill:#552222;}#mermaid-svg-QPtdoQdazHspCsWd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-QPtdoQdazHspCsWd .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-QPtdoQdazHspCsWd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-QPtdoQdazHspCsWd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-QPtdoQdazHspCsWd .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-QPtdoQdazHspCsWd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-QPtdoQdazHspCsWd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-QPtdoQdazHspCsWd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-QPtdoQdazHspCsWd .marker.cross{stroke:#333333;}#mermaid-svg-QPtdoQdazHspCsWd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-QPtdoQdazHspCsWd p{margin:0;}#mermaid-svg-QPtdoQdazHspCsWd .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-QPtdoQdazHspCsWd .cluster-label text{fill:#333;}#mermaid-svg-QPtdoQdazHspCsWd .cluster-label span{color:#333;}#mermaid-svg-QPtdoQdazHspCsWd .cluster-label span p{background-color:transparent;}#mermaid-svg-QPtdoQdazHspCsWd .label text,#mermaid-svg-QPtdoQdazHspCsWd span{fill:#333;color:#333;}#mermaid-svg-QPtdoQdazHspCsWd .node rect,#mermaid-svg-QPtdoQdazHspCsWd .node circle,#mermaid-svg-QPtdoQdazHspCsWd .node ellipse,#mermaid-svg-QPtdoQdazHspCsWd .node polygon,#mermaid-svg-QPtdoQdazHspCsWd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-QPtdoQdazHspCsWd .rough-node .label text,#mermaid-svg-QPtdoQdazHspCsWd .node .label text,#mermaid-svg-QPtdoQdazHspCsWd .image-shape .label,#mermaid-svg-QPtdoQdazHspCsWd .icon-shape .label{text-anchor:middle;}#mermaid-svg-QPtdoQdazHspCsWd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-QPtdoQdazHspCsWd .rough-node .label,#mermaid-svg-QPtdoQdazHspCsWd .node .label,#mermaid-svg-QPtdoQdazHspCsWd .image-shape .label,#mermaid-svg-QPtdoQdazHspCsWd .icon-shape .label{text-align:center;}#mermaid-svg-QPtdoQdazHspCsWd .node.clickable{cursor:pointer;}#mermaid-svg-QPtdoQdazHspCsWd .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-QPtdoQdazHspCsWd .arrowheadPath{fill:#333333;}#mermaid-svg-QPtdoQdazHspCsWd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-QPtdoQdazHspCsWd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-QPtdoQdazHspCsWd .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-QPtdoQdazHspCsWd .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-QPtdoQdazHspCsWd .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-QPtdoQdazHspCsWd .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-QPtdoQdazHspCsWd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-QPtdoQdazHspCsWd .cluster text{fill:#333;}#mermaid-svg-QPtdoQdazHspCsWd .cluster span{color:#333;}#mermaid-svg-QPtdoQdazHspCsWd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-QPtdoQdazHspCsWd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-QPtdoQdazHspCsWd rect.text{fill:none;stroke-width:0;}#mermaid-svg-QPtdoQdazHspCsWd .icon-shape,#mermaid-svg-QPtdoQdazHspCsWd .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-QPtdoQdazHspCsWd .icon-shape p,#mermaid-svg-QPtdoQdazHspCsWd .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-QPtdoQdazHspCsWd .icon-shape .label rect,#mermaid-svg-QPtdoQdazHspCsWd .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-QPtdoQdazHspCsWd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-QPtdoQdazHspCsWd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-QPtdoQdazHspCsWd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} LLM Collaboration
Merge 参数层
Ensemble 输出层
Cooperate 功能与流程层
M-ROS 接近更优解
M-MTC 增强多任务能力
简单平均
加权平均
加权融合
任务向量与冲突消解
增量训练修复
推理前:路由选模型
推理中:token 级融合
推理后:选择或融合答案
高效计算
知识迁移
补偿式合作
联邦合作
输入压缩
推测解码
抑制错误知识
强化正确知识
注入新能力
检测器
检索器
联邦训练
联邦提示工程
3.1 三类方法的横向比较
| 维度 | Merge | Ensemble | Cooperate |
|---|---|---|---|
| 操作对象 | 模型参数 | 模型输出、概率或候选答案 | 模型功能和工作流程 |
| 最终保留几个模型 | 通常 1 个 | 通常多个 | 通常多个模块或模型 |
| 模型兼容要求 | 最高 | 中等 | 最低、最灵活 |
| 推理成本 | 合并后通常接近单模型 | 经常高于单模型 | 取决于分工,可能更低也可能更高 |
| 典型大小模型关系 | 较弱,通常要求同源模型 | 路由、级联、共同生成 | 起草-验证、压缩-生成、检索-回答、检测-修正 |
| 主要收益 | 得到统一模型、多任务能力 | 提高准确率、鲁棒性和校准性 | 效率、知识、可靠性、隐私等多目标 |
| 主要风险 | 参数冲突、异构模型难合并 | 延迟和成本增加、候选质量受限 | 流程复杂、误差可能逐级传播 |
4. Merge:在参数层"合成一个模型"
4.1 Merge 是什么?
假设我们从同一个基础模型出发:
- 用数学数据微调得到数学模型;
- 用代码数据微调得到代码模型;
- 用对话数据微调得到聊天模型。
Merge 希望通过参数运算,把它们合成一个同时具备多种能力的模型。合并完成后,部署时通常只需要加载一个模型。
这听起来像"把几个文件复制到一起",但模型参数并不是独立知识块。不同任务的微调可能把同一位置的参数推向不同方向,因此简单相加可能发生冲突。
4.2 Merge 最重要的前提
论文反复强调:
当前主流模型合并方法通常要求候选模型具有相同架构,并位于兼容的参数空间中。
最常见的安全条件是:所有待合并模型都从同一个预训练模型初始化,再分别微调。
例如,几个都从同一个 LLaMA 基座微调得到的模型比较容易合并;LLaMA 与 Qwen 的架构、词表和参数空间不一致,不能直接逐参数相加。
这也是初学者最容易误解的地方:模型合并并不是任意模型之间都能进行。
4.3 目标一:M-ROS------合并得到"更优的单模型"
M-ROS 是 Merging for Relatively Optimal Solution,即"通过合并接近相对更优解"。
其直觉是:不同训练运行得到的局部最优点可能处在同一个低损失区域。把多个不错的解适当平均,有机会得到更稳定、更鲁棒的中心位置。
简单平均
对于 k 个模型,最朴素的方法是:
θ ∗ = 1 k ∑ i = 1 k θ i \theta^* = \frac{1}{k}\sum_{i=1}^{k}\theta_i θ∗=k1i=1∑kθi
其中 θ i \theta_i θi 是第 i 个模型的参数, θ ∗ \theta^* θ∗ 是合并后的参数。
代表思路包括:
- Uniform Soup:所有候选模型直接等权平均;
- Greedy Soup:逐个尝试加入模型,只有验证集性能不下降时才保留;
- DiWA:也会依据验证集表现筛选候选模型。
小白理解:不是"参加合并的模型越多越好"。一个很差或方向差异过大的模型,可能把结果拉坏。
加权平均
如果不同模型的重要性不同,可以设置权重:
θ ∗ = ∑ i = 1 k α i θ i \theta^* = \sum_{i=1}^{k}\alpha_i\theta_i θ∗=i=1∑kαiθi
其中 α i \alpha_i αi 是第 i 个模型的权重。
权重可以通过验证集优化,也可以利用 Fisher 信息、参数几何关系或贝叶斯优化确定。论文提到 Learned Soup、Fisher 加权和基于参数夹角的方法。
在 LLM 上的两类应用
- 获得更强的 LLM:融合多个训练检查点或多个子数据集微调后的模型。
- 改善人类偏好对齐:融合多个奖励模型,或在不同层使用不同合并比例,以减少 RLHF 带来的能力损失。
4.4 目标二:M-MTC------合并出多任务能力
M-MTC 是 Merging for Enhancing Multi-Task Capability。
它面对的问题是:数学模型、代码模型和对话模型虽然同源,但参数变化方向可能冲突。合并的目标不再只是"平均后更稳定",而是尽量同时保留每种专长。
任务向量
论文介绍了一个核心概念:任务向量。
τ t = θ t f t − θ p r e \tau_t = \theta_t^{ft} - \theta^{pre} τt=θtft−θpre
- θ p r e \theta^{pre} θpre:原始预训练模型参数;
- θ t f t \theta_t^{ft} θtft:在任务 t 上微调后的参数;
- τ t \tau_t τt:微调为模型带来的"任务方向"。
小白理解:把基础模型看成地图原点,数学微调可能向东北走,代码微调可能向东南走。任务向量描述"为了学会这个任务,参数往哪个方向移动了多少"。
如果两个任务向量在同一参数位置方向相反,就发生了参数冲突。
三条解决路线
路线 A:调整模型权重
通过不同模型或不同参数的重要性进行加权,例如 RegMean、基于 Hessian 的合并、Fisher 加权结合剪枝。
路线 B:利用任务属性处理冲突
- Task Arithmetic:对任务向量做加减运算;
- TIES-Merging:处理冗余参数和符号冲突;
- AdaMerging:考虑模型参数重要性,自适应降低冲突;
- DARE:随机丢弃并重缩放部分增量参数,减少冗余;
- DELLA-Merging、DPPA:进一步选择更重要的参数;
- ZipIt:合并高度相关的参数,同时保留差异较大的层。
论文还提到 MergeKit,它把多种合并方法做成了开源工具,降低了实验门槛。
路线 C:合并后再训练或修复
如果纯参数运算仍造成性能下降,可以增加少量训练,例如寻找共享低维子空间,或者对合并模型进行 representation surgery,修复多任务表示偏差。
4.5 Merge 的优点与局限
优点:
- 推理时通常只运行一个模型,部署结构简单;
- 不需要保留多个在线推理服务;
- 可以在不重新完整训练的情况下整合多个同源能力;
- 适合研究参数空间、任务向量和能力组合。
局限:
- 对同架构、同初始化和参数兼容性要求高;
- 简单平均可能产生严重能力干扰;
- 合并结果很依赖候选模型质量和系数;
- "整体平均分提高"不代表每个子任务都没有退化;
- 对真正异构的大小模型,当前方法通常不适用。
4.6 对大小模型协同研究的意义
Merge 并不是最典型的"大模型带小模型"方案,因为大小模型往往层数、宽度或架构不同,不能直接逐参数融合。
但它仍然提供了两个重要研究问题:
- 能否通过神经元对齐、表示对齐或共享子空间,让不同规模模型可合并?
- 能否把大模型能力先蒸馏到与小模型兼容的参数空间,再进行合并?
这两类方向都很有研究价值,但技术难度明显高于路由、级联或推测解码。
5. Ensemble:保留多个模型,在输出层"集思广益"
5.1 为什么传统集成不能直接照搬?
传统分类模型通常输出固定类别的概率,例如"猫 0.8、狗 0.2",多个模型的概率很容易平均。
LLM 的输出却是一串离散 token,而且不同模型可能:
- 使用不同词表;
- 对同一句话采用不同的 token 切分;
- 具有不同架构和输出分布;
- 生成长度不同、表达方式不同的文本。
因此,LLM 集成比分类器投票复杂得多。
论文按发生时间把 Ensemble 分为推理前、推理中和推理后。
5.2 推理前集成:先判断该用哪个模型
核心思想:训练一个 Router,根据输入把请求分配给最合适的模型。
#mermaid-svg-51H8RMuxXEepSLJS{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-51H8RMuxXEepSLJS .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-51H8RMuxXEepSLJS .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-51H8RMuxXEepSLJS .error-icon{fill:#552222;}#mermaid-svg-51H8RMuxXEepSLJS .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-51H8RMuxXEepSLJS .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-51H8RMuxXEepSLJS .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-51H8RMuxXEepSLJS .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-51H8RMuxXEepSLJS .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-51H8RMuxXEepSLJS .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-51H8RMuxXEepSLJS .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-51H8RMuxXEepSLJS .marker{fill:#333333;stroke:#333333;}#mermaid-svg-51H8RMuxXEepSLJS .marker.cross{stroke:#333333;}#mermaid-svg-51H8RMuxXEepSLJS svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-51H8RMuxXEepSLJS p{margin:0;}#mermaid-svg-51H8RMuxXEepSLJS .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-51H8RMuxXEepSLJS .cluster-label text{fill:#333;}#mermaid-svg-51H8RMuxXEepSLJS .cluster-label span{color:#333;}#mermaid-svg-51H8RMuxXEepSLJS .cluster-label span p{background-color:transparent;}#mermaid-svg-51H8RMuxXEepSLJS .label text,#mermaid-svg-51H8RMuxXEepSLJS span{fill:#333;color:#333;}#mermaid-svg-51H8RMuxXEepSLJS .node rect,#mermaid-svg-51H8RMuxXEepSLJS .node circle,#mermaid-svg-51H8RMuxXEepSLJS .node ellipse,#mermaid-svg-51H8RMuxXEepSLJS .node polygon,#mermaid-svg-51H8RMuxXEepSLJS .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-51H8RMuxXEepSLJS .rough-node .label text,#mermaid-svg-51H8RMuxXEepSLJS .node .label text,#mermaid-svg-51H8RMuxXEepSLJS .image-shape .label,#mermaid-svg-51H8RMuxXEepSLJS .icon-shape .label{text-anchor:middle;}#mermaid-svg-51H8RMuxXEepSLJS .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-51H8RMuxXEepSLJS .rough-node .label,#mermaid-svg-51H8RMuxXEepSLJS .node .label,#mermaid-svg-51H8RMuxXEepSLJS .image-shape .label,#mermaid-svg-51H8RMuxXEepSLJS .icon-shape .label{text-align:center;}#mermaid-svg-51H8RMuxXEepSLJS .node.clickable{cursor:pointer;}#mermaid-svg-51H8RMuxXEepSLJS .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-51H8RMuxXEepSLJS .arrowheadPath{fill:#333333;}#mermaid-svg-51H8RMuxXEepSLJS .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-51H8RMuxXEepSLJS .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-51H8RMuxXEepSLJS .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-51H8RMuxXEepSLJS .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-51H8RMuxXEepSLJS .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-51H8RMuxXEepSLJS .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-51H8RMuxXEepSLJS .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-51H8RMuxXEepSLJS .cluster text{fill:#333;}#mermaid-svg-51H8RMuxXEepSLJS .cluster span{color:#333;}#mermaid-svg-51H8RMuxXEepSLJS div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-51H8RMuxXEepSLJS .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-51H8RMuxXEepSLJS rect.text{fill:none;stroke-width:0;}#mermaid-svg-51H8RMuxXEepSLJS .icon-shape,#mermaid-svg-51H8RMuxXEepSLJS .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-51H8RMuxXEepSLJS .icon-shape p,#mermaid-svg-51H8RMuxXEepSLJS .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-51H8RMuxXEepSLJS .icon-shape .label rect,#mermaid-svg-51H8RMuxXEepSLJS .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-51H8RMuxXEepSLJS .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-51H8RMuxXEepSLJS .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-51H8RMuxXEepSLJS :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 简单/高频
复杂推理
代码任务
用户问题
Router
小模型
大模型
代码模型
答案
代表方法与研究包括:
- 使用基准数据训练路由器;
- ZOOTER:先让奖励模型评价 query-output,再通过知识蒸馏训练只看 query 的路由器;
- 按问题难度和质量要求,在小模型与大模型之间分配;
- 用分类或聚类方法实现路由;
- ROUTERBENCH:同时评估路由性能和经济成本。
优点:
- 通常只调用一个主模型,额外开销主要来自路由器;
- 非常适合大小模型协同;
- 可以直接优化平均成本、延迟或吞吐量。
局限:
- 路由错误会直接选错模型;
- 路由器容易受训练数据分布限制;
- 输入看起来简单,不代表生成过程真的简单;
- "哪个模型最好"可能依赖质量阈值,而不只是题目类别。
5.3 推理中集成:每一步生成都协商
LLM 是逐 token 生成的。如果早期 token 选错,后续错误可能不断累积。推理中集成试图在每一个解码步骤融合多个模型的输出分布。
最直接的方法是:
p ( y i ) = ∑ j α j p j ( y i ) p(y_i) = \sum_j \alpha_j p_j(y_i) p(yi)=j∑αjpj(yi)
也就是对不同模型在当前位置给出的 token 概率加权。
难点在于:不同模型的词表可能不一致。论文总结了几类处理办法:
- 对 token 序列做动态规划对齐;
- 用最小编辑距离增加对齐成功率;
- 用重叠 token 作为锚点,把异构词表投影到公共空间;
- 用困惑度等指标计算不同模型的融合权重。
优点:
- token 级协同,粒度最细;
- 有机会及时纠正生成早期的错误;
- 相比只在最后挑答案,更深入地融合模型能力。
局限:
- 多个模型通常都要参与每一步前向计算,成本高;
- 同词表或词表对齐是关键障碍;
- 工程实现复杂,通信和显存开销大;
- 即使有 k 倍 GPU 并行,经济成本仍不会消失。
5.4 推理后集成:先各自回答,再选最终答案
推理后集成先让多个模型生成候选答案,再进行选择、投票、排序或融合。
常见做法:
- 多数投票:适合答案形式明确的任务;
- 打分选择:使用 BERTScore、BLEURT、BARTScore、ChatGPT 打分或专门奖励模型;
- 融合生成:把排名较高的候选答案交给另一个模型综合;
- 模型级联:先让小模型回答,质量不足时再调用大模型;
- 先验证再升级:验证小模型答案,错误时才交给大模型重做。
优点:
- 不要求多个模型共享参数、架构或词表;
- 容易接入闭源 API;
- 候选答案可解释、可审计;
- 很适合医学、SQL、推理等高价值任务。
局限:
- 通常需要生成多个完整答案,延迟最高;
- 最终性能上限受候选池质量限制;
- 如果所有模型犯同一种错,投票也可能自信地选错;
- 选择器本身也可能误判。
5.5 三种 Ensemble 的一张表
| 阶段 | 典型形式 | 粒度 | 相对速度 | 最大难点 | 大小模型应用 |
|---|---|---|---|---|---|
| 推理前 | Router 选模型 | 样本级 | 最快 | 路由准确率与泛化 | 按难度分流 |
| 推理中 | 融合 token 分布 | token 级 | 较慢 | 异构词表、计算成本 | 小模型引导或约束大模型 |
| 推理后 | 投票、排序、融合、级联 | 样本级 | 最慢 | 候选池与选择器质量 | 小模型先答,大模型兜底 |
论文的一个重要判断是:几乎所有 Ensemble 方法都会降低推理速度。
推理前只增加路由开销,速度损失较小;推理中要同时计算多个模型;推理后不仅要生成多个答案,还要额外选择或融合。
5.6 Ensemble 的应用
论文总结了两类代表应用:
-
特定任务或领域
- 选择多个推理专家中的最佳答案;
- SQL 生成;
- 临床文本纠错;
- 疾病诊断的投票或加权。
-
缓解 RLHF 中的奖励过优化
- 多个奖励模型进行集成,降低单一奖励模型校准不准和过估计的风险;
- 可以用 LoRA 降低训练多个奖励模型的成本;
- 也可以共享主体 LLM,只保留多个线性奖励头。
6. Cooperate:让模型像团队一样分工
Cooperation 是论文中最宽泛、也最贴近"大小模型协同"的部分。
它不要求模型参数能相加,也不一定要求输出能直接平均。只要多个模型在一个系统中承担互补角色,共同完成目标,就可以属于 Cooperation。
论文按目标分成四类:
- 高效计算;
- 知识迁移;
- 补偿式合作;
- 联邦合作。
6.1 高效计算:让小模型替大模型省算力
6.1.1 输入压缩
Transformer 的自注意力在长序列上计算和显存开销很高。输入压缩的思路是:先让轻量模块缩短提示词或长文档,再交给大模型。
#mermaid-svg-8Ebs7LJYQpm4TIvq{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-8Ebs7LJYQpm4TIvq .error-icon{fill:#552222;}#mermaid-svg-8Ebs7LJYQpm4TIvq .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8Ebs7LJYQpm4TIvq .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .marker.cross{stroke:#333333;}#mermaid-svg-8Ebs7LJYQpm4TIvq svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8Ebs7LJYQpm4TIvq p{margin:0;}#mermaid-svg-8Ebs7LJYQpm4TIvq .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .cluster-label text{fill:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .cluster-label span{color:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .cluster-label span p{background-color:transparent;}#mermaid-svg-8Ebs7LJYQpm4TIvq .label text,#mermaid-svg-8Ebs7LJYQpm4TIvq span{fill:#333;color:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .node rect,#mermaid-svg-8Ebs7LJYQpm4TIvq .node circle,#mermaid-svg-8Ebs7LJYQpm4TIvq .node ellipse,#mermaid-svg-8Ebs7LJYQpm4TIvq .node polygon,#mermaid-svg-8Ebs7LJYQpm4TIvq .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .rough-node .label text,#mermaid-svg-8Ebs7LJYQpm4TIvq .node .label text,#mermaid-svg-8Ebs7LJYQpm4TIvq .image-shape .label,#mermaid-svg-8Ebs7LJYQpm4TIvq .icon-shape .label{text-anchor:middle;}#mermaid-svg-8Ebs7LJYQpm4TIvq .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .rough-node .label,#mermaid-svg-8Ebs7LJYQpm4TIvq .node .label,#mermaid-svg-8Ebs7LJYQpm4TIvq .image-shape .label,#mermaid-svg-8Ebs7LJYQpm4TIvq .icon-shape .label{text-align:center;}#mermaid-svg-8Ebs7LJYQpm4TIvq .node.clickable{cursor:pointer;}#mermaid-svg-8Ebs7LJYQpm4TIvq .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .arrowheadPath{fill:#333333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8Ebs7LJYQpm4TIvq .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-8Ebs7LJYQpm4TIvq .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8Ebs7LJYQpm4TIvq .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-8Ebs7LJYQpm4TIvq .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .cluster text{fill:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq .cluster span{color:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-8Ebs7LJYQpm4TIvq .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-8Ebs7LJYQpm4TIvq rect.text{fill:none;stroke-width:0;}#mermaid-svg-8Ebs7LJYQpm4TIvq .icon-shape,#mermaid-svg-8Ebs7LJYQpm4TIvq .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8Ebs7LJYQpm4TIvq .icon-shape p,#mermaid-svg-8Ebs7LJYQpm4TIvq .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-8Ebs7LJYQpm4TIvq .icon-shape .label rect,#mermaid-svg-8Ebs7LJYQpm4TIvq .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8Ebs7LJYQpm4TIvq .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-8Ebs7LJYQpm4TIvq .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-8Ebs7LJYQpm4TIvq :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 长提示词/长文档
小模型或压缩器
短而关键的上下文
大模型
回答
论文把方法分成三类。
A. Prompt Pruning:删掉不重要的信息
删除不重要的 token、句子、示例或文档。
可使用:
- 基于图结构提取关键信息;
- 训练 token 分类器,保留重要概率最高的 token;
- 先挑选重要的思维链示例,再细粒度删除冗余 token。
优点是压缩过程相对直接;风险是删掉看似不重要、实际决定答案的细节。
B. Prompt Summarization:先摘要再回答
用抽取式或生成式摘要模型把输入压缩为短摘要。
例如:
- 训练摘要器压缩上下文,再删除语义影响较小的词;
- RECOMP:根据问题和检索文档生成面向当前问题的简洁摘要;
- 按主题对句子分组,再分别摘要;
- 为不同任务准备不同目标的压缩器。
相比机械删除,摘要可以重组信息,但也可能引入摘要幻觉。
C. Soft Prompt Compression:压成虚拟 token
把长文本编码成少量连续向量形式的"虚拟 token",再让大模型基于这些表示生成。
它的压缩率通常更高,但:
- 人类无法直接阅读压缩结果;
- 需要处理压缩器与大模型表示空间的兼容;
- 信息丢失更难检查。
论文给出的总体规律是:
从 Prompt Pruning 到 Prompt Summarization,再到 Soft Prompt Compression,压缩率和效率通常提高,但信息损失风险也随之增大。
6.1.2 推测解码(Speculative Decoding)
这是大小模型协同中非常经典的推理加速方法。
基本流程:
- 小模型快速"草拟"连续多个 token;
- 大模型并行验证这些草稿;
- 接受符合大模型分布的 token;
- 从第一个未通过的位置继续起草和验证。
大模型/目标模型 小模型/草稿模型 大模型/目标模型 小模型/草稿模型 #mermaid-svg-FYe7TseizPP4OrEe{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FYe7TseizPP4OrEe .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FYe7TseizPP4OrEe .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FYe7TseizPP4OrEe .error-icon{fill:#552222;}#mermaid-svg-FYe7TseizPP4OrEe .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FYe7TseizPP4OrEe .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FYe7TseizPP4OrEe .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FYe7TseizPP4OrEe .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FYe7TseizPP4OrEe .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FYe7TseizPP4OrEe .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FYe7TseizPP4OrEe .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FYe7TseizPP4OrEe .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FYe7TseizPP4OrEe .marker.cross{stroke:#333333;}#mermaid-svg-FYe7TseizPP4OrEe svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FYe7TseizPP4OrEe p{margin:0;}#mermaid-svg-FYe7TseizPP4OrEe .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FYe7TseizPP4OrEe text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-FYe7TseizPP4OrEe .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-FYe7TseizPP4OrEe .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-FYe7TseizPP4OrEe .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-FYe7TseizPP4OrEe .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-FYe7TseizPP4OrEe #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-FYe7TseizPP4OrEe .sequenceNumber{fill:white;}#mermaid-svg-FYe7TseizPP4OrEe #sequencenumber{fill:#333;}#mermaid-svg-FYe7TseizPP4OrEe #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-FYe7TseizPP4OrEe .messageText{fill:#333;stroke:none;}#mermaid-svg-FYe7TseizPP4OrEe .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FYe7TseizPP4OrEe .labelText,#mermaid-svg-FYe7TseizPP4OrEe .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-FYe7TseizPP4OrEe .loopText,#mermaid-svg-FYe7TseizPP4OrEe .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-FYe7TseizPP4OrEe .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-FYe7TseizPP4OrEe .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-FYe7TseizPP4OrEe .noteText,#mermaid-svg-FYe7TseizPP4OrEe .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-FYe7TseizPP4OrEe .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FYe7TseizPP4OrEe .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FYe7TseizPP4OrEe .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FYe7TseizPP4OrEe .actorPopupMenu{position:absolute;}#mermaid-svg-FYe7TseizPP4OrEe .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-FYe7TseizPP4OrEe .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FYe7TseizPP4OrEe .actor-man circle,#mermaid-svg-FYe7TseizPP4OrEe line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-FYe7TseizPP4OrEe :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} alt 草稿通过 部分草稿失败 快速生成多个草稿 token 提交草稿序列 一次前向并行验证 批量接受 接收到失败位置并重新起草
关键指标是草稿接受率。它受到以下因素影响:
- 草稿模型质量;
- 大小模型行为是否一致;
- 验证规则;
- 一次起草多少 token;
- 是否使用提前停止。
一个常见误解是"增加一个小模型,为什么反而会更快?"
原因是大模型验证一批 token 可以并行进行,而普通自回归解码必须一个 token 接一个 token 地执行。如果草稿接受率足够高,大模型需要执行的串行轮数就会减少。
但也要注意:
- 小模型太弱,草稿大量被拒绝,可能得不偿失;
- 小模型太大,起草本身又太慢;
- 两者越一致,通常越容易获得高接受率;
- 理论上保持目标分布不变,不代表所有实现都能获得同样的实际加速。
6.2 知识迁移:通过合作改变生成倾向
论文先提到传统知识蒸馏:把多个教师模型的输出概率作为监督,继续训练目标模型。随后重点讨论不需要重新训练、直接在推理阶段调节输出分布的方法。
6.2.1 抑制错误知识:Contrastive Decoding
对比解码的核心是:大模型认为可能、小模型也很容易给出的答案,未必体现了大模型真正的高级能力;可以用"强模型分数减弱模型分数"突出更可靠的 token。
论文总结的应用包括:
- 提升抽象推理;
- 减少机器翻译幻觉;
- 文本去毒和情感控制;
- 用专门诱导出幻觉或毒性的模型作为 amateur,再从主模型分布中减掉这些倾向;
- 与推测解码结合,同时改善速度和质量。
局限是:强弱模型通常仍需属于同一家族,并具有可对齐的输出分布。
6.2.2 强化正确知识:Verifier 引导
另一种路线不是"减掉错误倾向",而是增加符合条件的 token 概率:
Verifier 可以是:
- 属性分类器;
- 奖励模型;
- NLI 模型;
- 另一个 LLM;
- 目标 LLM 自己。
小模型很适合担任验证器,因为它只需要完成窄而明确的判断任务,不一定要承担完整生成。
6.2.3 提供新知识或新能力:能力增量迁移
小白理解:不是把小模型的完整答案交给大模型,而是提取"微调前后,小模型更偏向哪些 token"这份能力增量,再用它改变大模型生成。
代表方向包括:
- 从小型聊天模型提取对话能力并迁移到更大的基础模型;
- 用安全和不安全小模型的分布差异改变大模型生成;
- 当大小模型词表不一致时,把小模型的分数差作为奖励,通过树搜索引导大模型,而不是直接相加。
这类方法说明:小模型不只可以被大模型教,也可以反向给大模型提供可控能力信号。
6.3 补偿式合作:给大模型配"检查员"和"资料员"
大模型的生成过程难以完全解释和控制,因此可以引入外部模块补偿其缺陷。
6.3.1 Detector:检测器
检测器主要用于发现幻觉和不一致。
论文区分了两种幻觉:
- 事实性幻觉:回答与可验证的现实事实不一致;
- 忠实性幻觉:回答偏离了用户指令或输入上下文。
检测事实性幻觉
两条主路线:
- 检索外部事实,再比较生成内容与证据;
- 根据模型内部不确定性判断风险。
论文中的协同方法主要属于第一类,例如:
- 用 NLI 模型判断生成句子是否得到证据支持;
- 先判断证据立场,再验证是否支持原陈述;
- 把复杂事实声明分解成多个可验证子问题;
- 用辅助模型帮助主模型从历史错误中学习;
- 检索文本太长时,先用摘要模型压缩证据,再交给检测器。
检测忠实性幻觉
常见方法包括:
- 规则重叠;
- NLI 分类;
- 基于问答的一致性验证;
- 不确定性估计;
- 提示 LLM 充当评审。
论文重点讨论 NLI 和 QA 模型参与的协同:小模型不需要生成长文本,只需判断"证据是否蕴含这句话"或"由回答反推的问题能否从原文得到一致答案"。
6.3.2 Retriever:检索器
LLM 的参数知识有限、可能过时。Retriever 负责把外部知识带给 LLM。
对非结构化文本:
- 从大规模文档库检索 top-k 文档;
- 将文档和问题一起交给 LLM;
- 使用可训练检索器配合黑盒 LLM;
- 用小模型改写 query,缩小用户表达与知识库表达之间的差距;
- 用 reranker 的反馈继续训练 query rewriter。
对结构化数据:
- 知识图谱需要实体链接;
- 数据库需要生成 SQL;
- 还可能生成 SPARQL 或其他查询语言;
- 检索模块承担自然语言与结构化语言之间的转换。
这里的大小模型分工很自然:
- 小模型做实体识别、查询改写、检索和重排;
- 大模型读取高价值证据并进行综合推理;
- 验证器再次检查回答是否真正被证据支持。
一个完整系统可以是:
#mermaid-svg-xp31RhMLF6R2dNNt{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-xp31RhMLF6R2dNNt .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-xp31RhMLF6R2dNNt .error-icon{fill:#552222;}#mermaid-svg-xp31RhMLF6R2dNNt .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-xp31RhMLF6R2dNNt .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-xp31RhMLF6R2dNNt .marker{fill:#333333;stroke:#333333;}#mermaid-svg-xp31RhMLF6R2dNNt .marker.cross{stroke:#333333;}#mermaid-svg-xp31RhMLF6R2dNNt svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-xp31RhMLF6R2dNNt p{margin:0;}#mermaid-svg-xp31RhMLF6R2dNNt .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-xp31RhMLF6R2dNNt .cluster-label text{fill:#333;}#mermaid-svg-xp31RhMLF6R2dNNt .cluster-label span{color:#333;}#mermaid-svg-xp31RhMLF6R2dNNt .cluster-label span p{background-color:transparent;}#mermaid-svg-xp31RhMLF6R2dNNt .label text,#mermaid-svg-xp31RhMLF6R2dNNt span{fill:#333;color:#333;}#mermaid-svg-xp31RhMLF6R2dNNt .node rect,#mermaid-svg-xp31RhMLF6R2dNNt .node circle,#mermaid-svg-xp31RhMLF6R2dNNt .node ellipse,#mermaid-svg-xp31RhMLF6R2dNNt .node polygon,#mermaid-svg-xp31RhMLF6R2dNNt .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-xp31RhMLF6R2dNNt .rough-node .label text,#mermaid-svg-xp31RhMLF6R2dNNt .node .label text,#mermaid-svg-xp31RhMLF6R2dNNt .image-shape .label,#mermaid-svg-xp31RhMLF6R2dNNt .icon-shape .label{text-anchor:middle;}#mermaid-svg-xp31RhMLF6R2dNNt .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-xp31RhMLF6R2dNNt .rough-node .label,#mermaid-svg-xp31RhMLF6R2dNNt .node .label,#mermaid-svg-xp31RhMLF6R2dNNt .image-shape .label,#mermaid-svg-xp31RhMLF6R2dNNt .icon-shape .label{text-align:center;}#mermaid-svg-xp31RhMLF6R2dNNt .node.clickable{cursor:pointer;}#mermaid-svg-xp31RhMLF6R2dNNt .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-xp31RhMLF6R2dNNt .arrowheadPath{fill:#333333;}#mermaid-svg-xp31RhMLF6R2dNNt .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-xp31RhMLF6R2dNNt .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-xp31RhMLF6R2dNNt .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xp31RhMLF6R2dNNt .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-xp31RhMLF6R2dNNt .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xp31RhMLF6R2dNNt .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-xp31RhMLF6R2dNNt .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-xp31RhMLF6R2dNNt .cluster text{fill:#333;}#mermaid-svg-xp31RhMLF6R2dNNt .cluster span{color:#333;}#mermaid-svg-xp31RhMLF6R2dNNt div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-xp31RhMLF6R2dNNt .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-xp31RhMLF6R2dNNt rect.text{fill:none;stroke-width:0;}#mermaid-svg-xp31RhMLF6R2dNNt .icon-shape,#mermaid-svg-xp31RhMLF6R2dNNt .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xp31RhMLF6R2dNNt .icon-shape p,#mermaid-svg-xp31RhMLF6R2dNNt .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-xp31RhMLF6R2dNNt .icon-shape .label rect,#mermaid-svg-xp31RhMLF6R2dNNt .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xp31RhMLF6R2dNNt .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-xp31RhMLF6R2dNNt .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-xp31RhMLF6R2dNNt :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 通过
不通过
用户问题
小模型改写查询
检索器
候选文档
小模型压缩/重排
大模型生成
小模型/NLI 验证
最终答案
6.4 联邦合作:在保护数据的同时协作
6.4.1 联邦训练
现实中,很多高价值数据属于医院、企业或个人设备,不能直接上传。
联邦学习允许:
- 服务器保留大模型或共享模型;
- 客户端保留私有数据和小模型;
- 交换参数、梯度或知识,而不是交换原始数据。
论文提到:
- 服务器 LLM 的知识可以迁移给客户端 SLM;
- 客户端的领域知识也可以反向丰富服务器模型;
- FedMKT 关注大小模型之间的双向知识迁移;
- OpenFedLLM 提供面向研究的开放框架;
- 可以压缩交换参数,减少通信和下载成本。
6.4.2 联邦提示工程
另一种更轻量的思路是:
- 本地小模型先把带有隐私的信息转成更一般化的指令;
- 云端大模型执行一般化指令;
- 结果再返回本地。
也可以只训练和聚合 prompt,而不是更新整个模型,以降低本地训练和全局聚合成本。
需要警惕:把原始文本改写成一般指令不自动等于安全。改写后的内容仍可能泄露身份、业务特征或敏感事实,因此需要正式的隐私威胁模型和攻击测试。
7. 如何选择:Merge、Ensemble 还是 Cooperate?
可以按下面的顺序判断。
#mermaid-svg-7Ng760s0VBsg8rqo{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-7Ng760s0VBsg8rqo .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-7Ng760s0VBsg8rqo .error-icon{fill:#552222;}#mermaid-svg-7Ng760s0VBsg8rqo .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7Ng760s0VBsg8rqo .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7Ng760s0VBsg8rqo .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7Ng760s0VBsg8rqo .marker.cross{stroke:#333333;}#mermaid-svg-7Ng760s0VBsg8rqo svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7Ng760s0VBsg8rqo p{margin:0;}#mermaid-svg-7Ng760s0VBsg8rqo .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7Ng760s0VBsg8rqo .cluster-label text{fill:#333;}#mermaid-svg-7Ng760s0VBsg8rqo .cluster-label span{color:#333;}#mermaid-svg-7Ng760s0VBsg8rqo .cluster-label span p{background-color:transparent;}#mermaid-svg-7Ng760s0VBsg8rqo .label text,#mermaid-svg-7Ng760s0VBsg8rqo span{fill:#333;color:#333;}#mermaid-svg-7Ng760s0VBsg8rqo .node rect,#mermaid-svg-7Ng760s0VBsg8rqo .node circle,#mermaid-svg-7Ng760s0VBsg8rqo .node ellipse,#mermaid-svg-7Ng760s0VBsg8rqo .node polygon,#mermaid-svg-7Ng760s0VBsg8rqo .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7Ng760s0VBsg8rqo .rough-node .label text,#mermaid-svg-7Ng760s0VBsg8rqo .node .label text,#mermaid-svg-7Ng760s0VBsg8rqo .image-shape .label,#mermaid-svg-7Ng760s0VBsg8rqo .icon-shape .label{text-anchor:middle;}#mermaid-svg-7Ng760s0VBsg8rqo .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-7Ng760s0VBsg8rqo .rough-node .label,#mermaid-svg-7Ng760s0VBsg8rqo .node .label,#mermaid-svg-7Ng760s0VBsg8rqo .image-shape .label,#mermaid-svg-7Ng760s0VBsg8rqo .icon-shape .label{text-align:center;}#mermaid-svg-7Ng760s0VBsg8rqo .node.clickable{cursor:pointer;}#mermaid-svg-7Ng760s0VBsg8rqo .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-7Ng760s0VBsg8rqo .arrowheadPath{fill:#333333;}#mermaid-svg-7Ng760s0VBsg8rqo .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7Ng760s0VBsg8rqo .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7Ng760s0VBsg8rqo .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-7Ng760s0VBsg8rqo .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-7Ng760s0VBsg8rqo .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-7Ng760s0VBsg8rqo .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-7Ng760s0VBsg8rqo .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7Ng760s0VBsg8rqo .cluster text{fill:#333;}#mermaid-svg-7Ng760s0VBsg8rqo .cluster span{color:#333;}#mermaid-svg-7Ng760s0VBsg8rqo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7Ng760s0VBsg8rqo .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-7Ng760s0VBsg8rqo rect.text{fill:none;stroke-width:0;}#mermaid-svg-7Ng760s0VBsg8rqo .icon-shape,#mermaid-svg-7Ng760s0VBsg8rqo .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-7Ng760s0VBsg8rqo .icon-shape p,#mermaid-svg-7Ng760s0VBsg8rqo .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-7Ng760s0VBsg8rqo .icon-shape .label rect,#mermaid-svg-7Ng760s0VBsg8rqo .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-7Ng760s0VBsg8rqo .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-7Ng760s0VBsg8rqo .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-7Ng760s0VBsg8rqo :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是
是
否
否
是
能
不能
否
压缩/起草/检测/检索/隐私
没有
你想把多个能力最终变成一个模型吗?
模型是否同架构、同源且参数兼容?
优先研究 Merge
考虑知识蒸馏、表示对齐或 Cooperation
你只是想组合多个模型的答案吗?
能否接受多个模型同时运行?
Ensemble:推理中或推理后
Ensemble:推理前路由或级联
是否存在明确的角色分工?
Cooperation
先重新定义系统目标和评价指标
快速选型表
| 你的目标 | 更合适的起点 |
|---|---|
| 把多个同源微调模型部署成一个模型 | Merge |
| 让不同专家模型共同提高准确率 | Ensemble |
| 简单问题用小模型、难题用大模型 | 推理前 Router |
| 小模型先回答,不可靠时大模型接管 | 推理后级联 |
| 小模型起草、大模型验证以降低延迟 | Speculative Decoding |
| 长文档太贵,先压缩再生成 | Input Compression |
| 给大模型增加事实依据 | Retriever / RAG |
| 检测幻觉或不忠实回答 | Detector / Verifier |
| 把小模型的微调能力迁移给大模型 | Logit-level Knowledge Transfer |
| 数据不能离开本地 | Federated Cooperation |
8. 论文最值得记住的五个数学直觉
直觉 1:平均参数
θ ∗ = 1 k ∑ i θ i \theta^* = \frac{1}{k}\sum_i \theta_i θ∗=k1i∑θi
含义:多个同源模型如果处于相近的低损失区域,平均可能得到更稳的模型。
直觉 2:加权参数
θ ∗ = ∑ i α i θ i \theta^* = \sum_i \alpha_i\theta_i θ∗=i∑αiθi
含义:不同模型贡献不应默认相等,可以由验证集或参数重要性决定。
直觉 3:任务向量
τ t = θ t f t − θ p r e \tau_t = \theta_t^{ft} - \theta^{pre} τt=θtft−θpre
含义:微调学到的任务能力,可以近似看成从基础参数出发的一段"位移"。
直觉 4:减去弱模型的错误倾向
log p strong − log p amateur \log p_{\text{strong}} - \log p_{\text{amateur}} logpstrong−logpamateur
含义:突出强模型相对弱模型独有的判断,压低弱模型特别偏好的错误模式。
直觉 5:提取小模型的能力增量
log p Small-C − log p Small \log p_{\text{Small-C}}-\log p_{\text{Small}} logpSmall-C−logpSmall
含义:用同一个小模型微调前后的分布差,表示能力 C 对生成行为的影响,再用这份差异引导大模型。
9. 论文提出的三大未来方向
9.1 更灵活的异构模型合并
当前 Merge 通常只能处理同架构、参数兼容的模型。论文认为,异构模型的 embedding 可以借助重叠 token 投影到公共空间,但注意力层和前馈层还存在神经元未对齐、参数分布复杂等问题。
潜在突破口包括:
- 神经元匹配和排列对齐;
- 表示空间对齐;
- 低维共享子空间;
- 只合并高相关模块;
- 对不同规模网络建立跨层映射。
9.2 在 Ensemble 中平衡速度与效果
推理前路由快但粒度粗,推理中集成细但成本高。论文提出的方向是有效结合二者。
一种自然设想是:
- Router 判断样本难度;
- 简单样本只调用小模型;
- 中等样本使用大小模型 token 级协同;
- 高风险样本生成多个答案并复核。
这实际上是一个自适应计算系统。
9.3 扩展 Cooperation 的应用范围
论文已经讨论效率、知识迁移、补偿和联邦合作,但作者认为跨领域协作和以人为中心的协作仍有很大空间。
例如:
- 医学模型、法律模型和通用模型跨领域会诊;
- 人负责价值判断,模型负责检索、分析和复核;
- 端侧小模型理解个人偏好,云端大模型负责通用推理;
- 多模态模型与文本模型协同。
10. 对这篇综述的评价:贡献、边界与不足
本节是基于论文内容做出的延伸评价,不是作者原文结论。
10.1 主要贡献
第一,三分法非常有解释力。
用参数层、输出层和功能层区分 Merge、Ensemble、Cooperate,能把大量看似零散的方法放到同一张地图中。
第二,分类标准兼顾"方法"和"目标"。
Merge 按合并目标分类,Ensemble 按推理阶段分类,Cooperation 按系统目标分类。虽然并不完全统一,但方便读者理解每一类问题的核心矛盾。
第三,大小模型协同不再等同于知识蒸馏。
论文展示了小模型可以当路由器、压缩器、草稿模型、验证器、检测器、检索器和隐私代理,角色远比"学生模型"丰富。
10.2 需要注意的边界
- 这是 2024 年 7 月的 v1 版本。 后续研究进展不在论文覆盖范围内。
- 论文明确不重点覆盖自集成。 例如同一个模型多次采样的 self-consistency 不属于其跨模型集成重点。
- 论文未展开 Agent 和 RLHF 全部内容。 作者认为它们也可视为广义合作,但已有独立综述,因此只做有限讨论。
- 三类边界并非绝对。 例如模型级联既可以被视为推理后 Ensemble,也是一种大小模型分工的 Cooperation。
- 论文是分类型综述,不是统一实验比较。 它没有在相同模型、数据、硬件和预算下公平比较所有方法。
10.3 仍可进一步加强的问题
缺少统一成本度量。
只报告准确率或单次延迟不够。协同系统还应报告:
- 每个请求的平均 FLOPs;
- 首 token 延迟与每 token 延迟;
- 峰值显存;
- 并发吞吐量;
- API 费用;
- Router、检索器和验证器的额外成本。
协同错误可能级联。
压缩器漏掉关键事实、Router 选错模型、Retriever 找错文档、Verifier 又误判,最终错误可能比单模型更难定位。
系统鲁棒性和安全性值得单列。
恶意输入可以攻击路由器、检索器或验证器;协同还扩大了数据流动范围和攻击面。
"平均更好"可能掩盖尾部风险。
在医疗、法律等场景中,最差案例、置信度校准和拒答能力可能比平均准确率更重要。
11. 对大小模型协同初学者的研究建议
11.1 不要一开始就挑战最难的异构参数合并
如果你刚入门,建议按工程和研究难度由低到高:
- 模型路由或级联
- 小模型检测、验证或查询改写
- 输入压缩
- 推测解码
- logit 级知识迁移
- 同源模型 Merge
- 异构、跨规模参数合并
原因是前几类方法接口清晰,容易形成可运行基线,也容易定义效果、成本和失败率;异构参数合并则涉及架构对齐和复杂的参数空间问题。
11.2 一个适合入门的研究问题
在给定质量阈值下,如何让 Router 尽可能多地把问题交给小模型,同时保证困难问题及时升级给大模型?
可做的实验:
- 选择一个小模型和一个大模型;
- 在数学、常识、代码或领域问答数据上收集二者结果;
- 训练一个只看 query 的难度分类器;
- 设置"小模型直接答""大模型直接答""小模型答后验证再升级"三个基线;
- 同时比较准确率、平均延迟和平均 token 成本;
- 分析错误路由:哪些问题看起来简单但小模型答错?
这个课题同时覆盖:
- 大小模型能力差异;
- 路由与级联;
- 质量-成本权衡;
- 校准和不确定性;
- 真实系统指标。
11.3 另一个有潜力的方向:小模型作为 Verifier
研究问题可以是:
小模型是否能以远低于大模型自我复核的成本,判断大模型答案是否有证据支持?
建议区分:
- 事实正确性;
- 对输入材料的忠实性;
- 指令遵循;
- 安全风险;
- 是否需要升级到更强验证器。
关键不只是验证准确率,还要评估:
- 漏检率;
- 误报率;
- 校准误差;
- 对不同领域的迁移能力;
- 验证成本;
- 验证失败后的修正机制。
11.4 实验设计至少要有四组指标
| 指标组 | 建议指标 |
|---|---|
| 任务效果 | Accuracy、Exact Match、F1、Pass@k、人工评价 |
| 效率 | 延迟、吞吐量、生成 token/s、FLOPs、显存、费用 |
| 协同质量 | 路由准确率、草稿接受率、检索 Recall@k、验证器 AUC |
| 可靠性 | 校准误差、幻觉率、拒答率、最差分组表现、鲁棒性 |
只比较最终准确率,很难说明"协同"本身为什么有效。
11.5 做消融实验时要问什么?
- 去掉小模型后,效果和成本怎么变?
- 小模型换成更小或更大的版本会怎样?
- Router 或 Verifier 出错时,系统能否恢复?
- 固定总计算预算后,协同仍比单大模型好吗?
- 提升来自"多算了很多次",还是来自真正的能力互补?
- 不同领域、长度和难度下是否稳定?
- 模型同源与异源时结论是否一致?
12. 推荐的论文阅读顺序
如果你是第一次接触这个方向,不必按引用列表从头读到尾。可以按问题链阅读:
路线 A:想研究模型合并
- Model Soup:理解参数平均;
- Task Arithmetic:理解任务向量;
- TIES-Merging:理解冗余和符号冲突;
- DARE:理解丢弃增量参数为什么可能有效;
- MergeKit:动手跑一个合并实验;
- 再阅读神经元对齐、Re-Basin、OT Fusion 等异构对齐工作。
路线 B:想研究大小模型推理加速
- Router / ZOOTER:理解样本级分流;
- LLM Cascade:理解按质量逐级升级;
- Speculative Decoding:理解草稿-验证;
- Prompt Compression / LLMLingua:理解 prefill 阶段优化;
- 对比端到端延迟,而不只看理论 FLOPs。
路线 C:想研究可靠性与幻觉
- Contrastive Decoding:理解强弱模型分布相减;
- Verifier-guided decoding:理解生成时约束;
- RARR / Factcheck:理解事实验证流水线;
- NLI 与 QA-based faithfulness evaluation;
- RAG 中的检索、重排、压缩和回答验证。
路线 D:想研究知识迁移
- 知识蒸馏基础;
- 多教师蒸馏;
- Proxy/Emulated Tuning;
- Weak-to-Strong Search;
- 联邦双向知识迁移。
13. 常见问题
Q1:Merge 和知识蒸馏有什么区别?
Merge 直接运算已有模型参数,通常不需要重新准备教师输出;知识蒸馏用教师模型的输出监督学生训练。前者强调参数空间兼容,后者可以跨架构,但需要训练数据和额外训练。
Q2:Ensemble 一定比单模型好吗?
不一定。多个模型如果能力高度相关、共同犯错,或者候选池质量差,集成可能没有收益。还要考虑额外延迟和成本。
Q3:小模型真的能帮助大模型吗?
能。小模型不一定要在完整问答能力上超过大模型。它只要在某个窄任务上便宜且可靠,就能担任 Router、草稿生成器、压缩器、Verifier、Detector、Retriever 或隐私代理。
Q4:推测解码会降低答案质量吗?
标准推测解码的目标是在正确验证机制下保持目标大模型的分布,同时减少串行解码轮数。但实际收益取决于草稿接受率、实现方式和硬件环境,不能只凭理论判断。
Q5:RAG 属于 Ensemble 还是 Cooperation?
按本文论文的框架,它更自然地属于补偿式 Cooperation:检索器为生成模型补充外部知识。若系统同时生成多个答案并投票,则那部分又可以属于 Ensemble。
Q6:多智能体系统是否属于 Cooperation?
广义上属于。但这篇综述没有展开 Agent 合作,因为相关内容已有专门综述。阅读本文时不要把"Cooperation"误认为只等于多智能体。
Q7:大小模型协同的核心评价目标是什么?
通常不是单纯追求最高准确率,而是在质量约束下优化成本,或在成本约束下最大化质量。还可能同时包含延迟、隐私、可靠性和可解释性。
14. 最终总结
这篇综述最有价值的地方,是把复杂的 LLM 协同研究压缩成了三个层次:
-
Merge:参数层协同
把多个兼容模型合成一个模型,重点是参数平均、任务向量、冲突消解和合并后修复。
-
Ensemble:输出层协同
在推理前选模型、推理中融合 token 分布,或推理后选择与融合答案,重点是效果与速度的权衡。
-
Cooperate:功能层协同
让模型承担压缩、起草、验证、检测、检索和隐私保护等不同角色,是大小模型协同最丰富的设计空间。
对大小模型协同来说,最重要的观念变化是:
小模型不是只能被大模型蒸馏的"学生",它也可以是大模型系统中的路由员、速记员、质检员、资料员和隐私守门员。
真正好的协同系统,不是简单增加模型数量,而是做到三点:
- 每个模型承担与其能力和成本相匹配的角色;
- 协同带来的收益大于额外计算和流程复杂度;
- 系统知道什么时候相信小模型、什么时候升级到大模型,以及什么时候应该拒绝回答。
这也可以概括为大小模型协同研究的核心问题:
谁来做、何时做、如何交接、怎样验证,以及付出了多少代价?
参考说明
本文的分类、公式和代表方法主要依据原综述的第 2 至第 6 节整理;"对论文的评价""研究建议"和部分系统设计示例属于面向初学者的延伸解读。为保持可读性,正文只列出代表方法名称,完整文献条目请查阅原论文 References。