UNITE:如何用不到0.04%的计算量实现更优的大模型集成

11 阅读9分钟

背景:为什么需要模型集成?

大语言模型(如GPT-4LLaMA等)在各类任务中表现出色,但不同模型各有优劣。例如,某些模型擅长数学推理,另一些则擅长常识问答。通过集成(Ensembling),我们可以结合多个模型的优势,提升整体性能。现有的LLM集成方法可以分为三类:

  1. 输出级集成(Output-level):如LLM-BLENDER,直接对多个模型的完整输出进行聚合
  2. 概率级集成(Probability-level):如DEEPENGAC,在每一生成步骤融合不同模型的概率分布
  3. 训练级集成(Training-level):如FUSELLM,将多个模型的输出概率向量作为训练标签

然而,现有方法有两大问题:

  1. 模型兼容性差:不同模型的分词方式(Tokenization)、词汇表(Vocabulary)差异大,导致概率对齐困难。
  2. 计算开销高:传统方法需要处理整个词汇表(可能包含数十万词),导致推理速度慢。

UNITE的核心思想

UNITE提出了一种高效且兼容性强的集成方法,核心思想是:

只关注每个模型预测的Top-k个最可能的词(Token),而非整个词汇表

这一设计大幅减少了计算量(仅需处理0.04%的词汇量),同时通过合并各模型的Top-k词,保留了关键信息。


UNITE的核心步骤

第一步:选择合适的模型

并不是任意模型都可以用来集成,任意选择模型进行集成反而可能影响最终效果,根据论文分析,集成效果受如下三点影响:

  1. 模型性能差距

对于模型M1和M2,其在任务T上的性能差距Δ(M1,M2,T)显著影响集成效果。实验表明:

当 |Δ(M1,M2,T)|<10% 时,集成可能提升性能,当 |Δ(M1,M2,T)|>15%时,集成往往降低最佳模型性能。

2. 词汇表大小影响

令人意外的是,词汇表大小差异对集成效果影响不显著。对于词汇表V1和V2,即使|V1|≫|V2|(如DeepSeek的102,400 vs Mistral的32,768),模型仍可有效集成。

论文认为约80%的词汇是常见词,不同模型对这些常见词的tokenization没有明显差异,因此词汇表大小差异影响有限。

3. 响应风格差异

即使模型性能和词汇表大小相近,响应风格差异也会影响集成效果。例如,对于问题Q:

  • 模型M1可能直接返回简短答案A
  • 模型M2可能生成详细分析再得出答案A

差异过大的响应风格会导致token分布显著差异:PM1(ti|Q)≠PM2(ti|Q),从而降低融合的效果。

因此,UNITE设计的模型选择策略为

  1. 选择目标任务上性能最佳的模型
  2. 迭代选择下一个性能最好且响应风格相近的模型,论文中通过模型的输出长度来计算响应风格,即将响应风格定义为两个模型输出长度的比值,并认为长度相近则风格相近
  3. 重复直到达到最大模型数量或没有更多兼容模型

第二步:生成Top-k候选词并构建联合词集(Union Set)

  1. 对于每个模型,输入相同提示词(Prompt),生成其预测的Top-k个词及对应概率。例如:
  • 模型A的Top-3词:["apple", "fruit", "red"],概率为[0.6, 0.3, 0.1]
  • 模型B的Top-3词:["fruit", "banana", "apple"],概率为[0.5, 0.4, 0.1]
  1. 合并所有模型的Top-k词,去重后得到联合词集。例如:
  • 联合词集:["apple", "fruit", "red", "banana"]

第三步:计算每一个token的新概率

如上边的例子,每一个模型输出的top-K个词,每个词的概率都不同,而且不同模型会输出不同的词,那么该怎么解决这种输出词汇的差异,并计算出token的新分布呢?

1. 未出现token的处理策略

UNITE的一个创新是处理不在某模型词汇表中的token的概率对齐策略:

  1. 使用分词器Ti将不在词汇表中的token w分解:w1,...,wm←Ti(w)
  2. 使用第一个子token w1的概率作为原token的估计

举个例子:如果某个词在模型B的词汇表中不存在(如模型B无法识别“red”),则用模型B的分词器将其拆解。如上一节的例子:

  • “red”被拆解为["r", "ed"],取第一个子词“r”的概率作为模型B计算的red的概率。

2. 最终概率的计算过程

继续用上一节的例子来展示UNITE的计算过程:

  1. 构建初始Top-k概率矩阵:构建出token的并集之后,可以得到如下的一个概率矩阵:
(Tokenapplefruitredbanana模型A0.60.30.1?模型B0.10.5?0.4)\begin{pmatrix} \text{Token} & \text{apple} & \text{fruit} & \text{red} & \text{banana} \\ \text{模型A} & 0.6 & 0.3 & 0.1 & ? \\ \text{模型B} & 0.1 & 0.5 & ? & 0.4 \end{pmatrix} \\

其中第一行是模型A的概率,第二行是模型B的概率,?表示未知值。列按照{apple, fruit, red, banana}排列。

2. 拓展概率矩阵:接下来需要计算未知值,这里可以分为两种情况:

1. 已经存在于词表的词:假设banana是一个存在于模型A的词表的词,就直接获取模型A对于"banana"这个token的概率,放入矩阵中

2. 未出现token的处理策略:假设模型B的词表中没有"red",就将“red”利用模型B的分词器被拆解为["r", "ed"],取第一个子词“r”的概率作为模型B计算的red的概率。

这里假设拓展后的概率矩阵为:

(Tokenapplefruitredbanana模型A0.60.30.10.001模型B0.10.50.0020.4)\begin{pmatrix} \text{Token} & \text{apple} & \text{fruit} & \text{red} & \text{banana} \\ \text{模型A} & 0.6 & 0.3 & 0.1 & 0.001 \\ \text{模型B} & 0.1 & 0.5 & 0.002 & 0.4 \end{pmatrix} \\

3. 计算归一化后的概率矩阵:可以看到,矩阵中的每一行,即模型计算出的对top-k token的概率值,其总和不为1,因此,使用softmax函数对每个模型的概率进行归一化

(Tokenapplefruitredbanana模型A0.34520.25570.20930.1897模型B0.21060.31420.19090.2843)\begin{pmatrix} \text{Token} & \text{apple} & \text{fruit} & \text{red} & \text{banana} \\ \text{模型A} & 0.3452 & 0.2557 & 0.2093 & 0.1897 \\ \text{模型B} & 0.2106 & 0.3142 & 0.1909 & 0.2843 \end{pmatrix} \\

4. 计算token的平均概率:每一个token的概率值为所有模型对该token的概率值的均值,即:

Pavg=12×(PnormA+PnormB)P_{avg} = \frac{1}{2} \times (P^A_{norm} + P^B_{norm}) \\

最终计算出的token的概率矩阵为:

(TokenapplefruitredbananaPavg0.27790.28500.20010.2370)\begin{pmatrix} \text{Token} & \text{apple} & \text{fruit} & \text{red} & \text{banana} \\ P_{avg} & 0.2779 & 0.2850 & 0.2001 & 0.2370 \end{pmatrix}\\

5. 选择概率最高的token

因此,UNITE算法选择"fruit"作为下一个token,其平均概率为0.2850。


为什么UNITE更高效?

传统方法需要对齐整个词汇表(例如处理30,000个词),而UNITE只需处理各模型的Top-k词(例如k=10时,仅需处理10~20个词)。

  • 延迟(Latency) :UNITE仅比单个模型慢10毫秒/词,而传统方法(如Deepen、GAC)需要数百毫秒。
  • 内存占用:UNITE处理的Token数仅为传统方法的千分之一。

关键实验结果

1.评估指标说明

实验使用了六个广泛认可的基准测试,评估不同能力维度:

  • GSM8K:评估数学推理能力的基准,包含高质量的小学数学应用题
  • PIQA:物理常识推理基准,测试模型对日常物理概念的理解
  • MMLU:多任务语言理解基准,涵盖57个学科,全面评估模型知识广度
  • ARC-C:挑战性科学推理基准,源自标准化科学测试
  • TriviaQA:事实知识检索基准,评估模型的知识库容量
  • NQ (Natural Questions) :开放领域问答基准,基于真实Google搜索查询

2. 不同模型组合的实验结果

表1:Mistral、DeepSeek和OpenChat模型集成结果(%)

方法GSM8KPIQAMMLUARC-CTriviaQANQ平均
Mistral-7B56.4880.6359.2874.4964.3024.2559.91
DeepSeek-7B59.6772.6646.9758.7347.6311.3749.51
OpenChat-3.573.4687.1060.8078.0561.7731.0865.38
LLM-BLENDER70.79 (-2.67)83.28 (-3.82)60.10 (-0.70)76.29 (-1.76)56.35 (-5.42)25.57 (-5.51)62.06 (-3.32)
DEEPEN73.06 (-0.40)76.04 (-11.06)61.91 (+1.11)72.14 (-5.91)67.24 (+5.47)28.26 (-2.82)63.11 (-2.27)
GAC62.85 (-10.61)67.85 (-19.25)55.15 (-5.65)73.04 (-5.01)62.22 (+0.45)20.72 (-10.36)56.97 (-8.41)
UNITE73.31 (-0.15)87.50 (+0.40)62.13 (+1.33)78.70 (+0.65)65.80 (+4.03)31.78 (+0.70)66.54 (+1.16)

注:OpenChat作为主模型;括号内为相对于OpenChat的增益/减损

表2:LLaMA3系列与Qwen2模型集成结果(%)

方法GSM8KPIQAARC-CMMLU平均
LLaMA3-8B78.7779.0879.0164.5875.36
LLaMA3.1-8B80.8382.8679.4966.6977.47
Qwen2-7B80.7884.5784.9264.9678.81
两模型集成 (LLaMA3+Qwen2)
LLM-BLENDER82.69 (+1.91)82.53 (-2.04)82.98 (-1.94)62.07 (-2.89)77.57 (-1.24)
DEEPENOOM*OOM*OOM*OOM*-
GAC80.67 (-0.11)80.96 (-3.61)84.93 (+0.01)67.05 (+2.09)78.40 (-0.41)
UNITE84.17 (+3.39)85.53 (+0.96)85.07 (+0.15)69.78 (+4.82)81.14 (+2.33)
三模型集成
LLM-BLENDER83.30 (+2.52)83.47 (-1.10)83.48 (-1.44)62.55 (-2.41)78.20 (-0.61)
DEEPENOOM*OOM*OOM*OOM*-
UNITE84.99 (+4.21)84.98 (+0.41)85.39 (+0.47)69.12 (+4.16)81.12 (+2.31)

注:Qwen2作为主模型;OOM表示"内存不足";括号内为相对于Qwen2的增益/减损

表3:密集模型与MoE模型集成结果(%)

模型ARC-CPIQA
Qwen1.5-72B (密集)69.0373.83
Mixtral-8×7B (稀疏MoE)73.9874.59
UNITE78.84 (+4.86)81.88 (+7.29)

注:括号内为相对于较好单一模型的增益

3. 计算效率分析

表4:每步操作处理的token数量

基础模型方法每步处理token数量
Mistral (32K) + OpenChat (32K)DEEPEN32,000
GAC32,770
UNITE14.46
LLaMA3 (128K) + Qwen2 (152K)DEEPEN109,566 (OOM)
GAC170,336
UNITE14.43

注:UNITE处理的token数量仅为其他方法的0.04%以下

表5:延迟对比(ms/token)

方法延迟 (ms/token)相对单模型增加
单个模型 (Mistral)~76-
单个模型 (OpenChat)~77-
UNITE~88+12
GAC~123+47
DEEPEN~155+79

注:UNITE仅比单个模型增加约10ms延迟,远低于其他集成方法

4. 超参数敏感性分析

表6:超参数k对UNITE性能的影响(TriviaQA准确率%)

设置准确率
Mistral-7B (基线)64.30
OpenChat-3.5 (基线)61.77
k = 564.52
k = 1065.80
k = 2065.77
k = 10065.65
k = 100065.74
k = 1000065.72

注:k=10达到最佳效果,进一步增加k值对性能提升有限

5. 结果分析与讨论

  1. 整体性能:UNITE在所有评估基准上均优于现有集成方法,平均提升1.16%~2.33%
  2. 一致性与稳定性
  • 当集成性能相近的模型时,UNITE表现出色(如Qwen2+LLaMA3)
  • 与LLM-BLENDER和GAC不同,UNITE很少出现性能下降的情况
  • 即使集成架构差异很大的模型(密集模型与MoE模型),UNITE仍能实现显著提升

3. 计算效率优势

  • 相比于处理整个词汇表,UNITE每步仅处理~14个token
  • 延迟增加最小(+12ms),仅为DEEPEN的1/6.5、GAC的1/4
  • 对于大词汇表模型(如LLaMA3和Qwen2),DEEPEN因内存限制无法运行,而UNITE无此问题

4. 超参数稳健性

  • k=10是一个效果最佳的平衡点
  • 即使将k增加到10000,性能也没有明显提升,证明了UNITE方法的有效性
  • 这一发现支持了论文的核心假设:下一个token通常在top-k候选中,处理整个词汇表是不必要的