LLM-Blender:大语言模型排序融合框架
随着Alpaca, Vicuna, Baize, Koala等诸多大型语言模型的问世,研究人员发现虽然一些模型比如Vicuna的整体的平均表现最优,但是针对每个单独的输入,其最优模型的分布实际上是非常分散的,比如最好的Vicuna也只在20%的任务里比其他模型有优势。
有没有可能通过集成学习来综合诸多开源的「弱」LLM的能力,来使得他们整体成为一个「强」LLM呢?
AI2,USC,和浙大的研究员由此提出了一个集成学习框架,LLM-Blender,它通过排序和融合来对各个LLM的输出进行集成,从而达到了较为稳定的提升。
论文链接:https://arxiv.org/abs/2306.02561
代码链接:https://github.com/yuchenlin/LLM-Blender
对于同一条指令来自不同LLMs的回答,LLM-Blender框架可以有效选择出其中质量更高的回答,再基于这些回答融合生成一个新的质量更高的回答。
为了促进集成学习在LLM社区的发展和测试LLM-Blender的能力,论文作者们构建了一个新的指令数据集MixInstrcut。
数据采样于Aplapa-GPT-4, Laion, ShareGPT等流行的指令数据集。对于每个指令,MixInstruct还包括了11个包括Vicuna, Baize, Open Asssistant等当前流行的开源大型语言模型的回答。
论文的进行了一系列实验评估了不同LLMs在MixInstruct数据集上的差异性,并测试了LLM-Blender在集成多个LLMs回答的能力。
实验证明了LLM-Blender集成得到的回答在所有LLM回答中平均排名为3.01,其中68.59%都排名在前三,这远超平均排名最好为3.90的单个模型Open Assistant,以及Vicuna(只有有52.88%的回答被排到前三)。
主要贡献
1. 提出了一个新的针对大型语言模型的集成学习框架LLM-Blender,用于对多个LLMs的回答进行排序与融合。LLM-Blender由两个简单有效的模块PairRanker与GenFuser组成。
2. 一个新的指令数据集MixInstruct。其中的每一条指令都包含了来自Vicuna等数十个当前流行的开源LLMs的回答,用来训练与评估集成学习框架LLM-Blender。
3. 首次证明了集成学习在LLM社区的显著效果与其应用价值。
4. 开源LLM-Blender工具包,方便LLM社区研究人员使用与进一步研究。
大型语言模型的集成学习
LLM-Blender: 排序+融合
LLM-Blender主要包含两个模块,PairRanker和GenFuser,分别对应框架运行的两个阶段:排序(Rank)与融合(Fuse)。
在排序阶段,论文首先通过PairRanker对不同的LLMs回答进行成对比较,得到这些回答的排名。
在融合阶段,论文选择其中的排名中的前k(如k=3)个回答,将其于原指令一起打包送到GenFuser模块作为输入,再重新生成一个融合回答。
对于第一个模块PairRanker,论文认为基于双向注意力的成对比较在候选回答较为相似的情况下十分重要。
以往的排序模型均采用将源文本和单个候选序列连接编码,并在推导时直接输出一个绝对分数作为对候选序列排序的依据。
而LLM-Blender的第一个模块PairRanker将源文本与一组(两个)候选序列同时连接进行编码,利用双向注意力来提高排序模型的表现,作者认为这种方法可以更好的捕捉不同候选回答之间的微小差异,从而提高比较的正确率。
此外,与传统的成对排序方法仅仅在训练过程中采用成对比较的损失函数不同的是,PairRanker在推导过程中同样采用成对比较。
论文提出了三种简单的聚合方法,MaxLogits, MaxWins, 与Bubble Sort来完成从比较矩阵到单个候选序列分数的计算,这三种方法在后续实验中均被证明有效。其中MaxLogits效果最好。
与现有的部分文本融合方法不同,GenFuser并未直接将所有候选序列(即数十个LLMs的回答)作为一起送入这一模块,而是在PairRanker的排序结果上选择最好的前k个,与源文本一起送入GenFuser进行融合。
这是因为论文认为部分未经筛选的低质量的候选序列可能会影响GenFuser模块的融合质量。
MixInstruct: 新的LLMs集成学习基准
为了更好地评估LLM-Blender地能力,论文构建了MixInstruct数据集。指令来源包括Alpaca-GPT4 等四种流行的大型指令数据集,标准回答来源于GPT-4, ChatGPT和人类标注。
其中每一条指令都包含Vicuna等数十个当前流行的大型语言模型的回答。
论文还使用ChatGPT对在测试集(5K)这些回答进行成对比较,并统计每个回答在比较中获胜的次数,将不同LLMs获胜次数排名第一的比例在图中进行了总结。可以明显看到不同LLM回答的质量各有千秋,并非一家独大。
此结果证明了不同LLMs之间能力的多样性,而这也正是集成学习框架LLM-Blender能够成功的原因之一。
实验
实验设置
论文实验中,LLM-Blender的两个模块PairRanker与GenFuser分别采用Deberta-v3-Large(400m)和Flan-T5-XL(3b)作为各自的骨架模型(backbone)。两个模型均在MixInstruct大小为100k的训练集上进行训练(更多细节见论文)。
为了更好地评估不同各种生成模型在MixInstruct上的能力,论文不仅采用了一些传统自动度量指标BERTScore, BLEURT和BARTScore, 并将ChatGPT的比较结果按照比较中获胜的次数归并为整体排名值(GPT-Rank)。
由于Vicuna与Open Assistant在LLM社区的显著表现,论文还特别将所有模型的结果与这两个模型进行了比较,给出了对应的获胜比例。此外,实验还统计了不同模型在与其他所有模型比较的过程中被排名为前3的比例(Top-3)。
LLMs:各有千秋
在这些模型中,Open Assistant、Vicuna和Alpaca是表现最好的三个模型,继它们之后,Baize、Moss和ChatGLM也在MixInstruction上表现出色。
而Mosaic MPT、StableLM和Flan-T5在评估中排名较为靠后。尽管如此,他们的GPT-Rank也并非一个接近最低排名(11)的数字,再次说明每个LLM的回答都有他们自己的优势。
此外,同样可以注意的是,尽管Open Assistant和Vicuna综合表现最为出色,在其他模型与这两个模型的比较中,仍旧有部分比例的回答被认为要优于他们。
Rankers:PairRanker优势明显
而在诸多排序模型的比较中,PairRanker作为成对比较的排序模型,表现明显要优于SummaReranker和SimCLS等非成对比较的模型。
尤其在GPT-Rank,BARTScore,BLEURT和Top-3的比例上,PairRanker取得了所有排序模型中最好的效果,并且要优于任意一个LLM。
除了对排序模型得到的Top-1选择进行分析外,论文还对排序模型的整体排序质量通过Pearson相关系数,Spearman相关系数和Searman’s Footrule距离进行了评估。
正如表中所示,在所有的自动度量指标的排序中,BartScore的排序结果与GPT-Rank相关性最高。而PairRanker的排序结果在所有排序模型中取得的相关性最高,甚至超过BARTScore。
GenFuser进一步提高PairRanker效果
论文最后比较了整个LLM-Blender框架生成的回答的质量。LLM-Blender将PairRanker排序得到的前3个回答送入到GenFuser中进行融合生成。
最终发现,融合生成的回答不仅在三个自动度量指标BARTScore等上取得了巨大的提升,还在GPT-Rank和Top-3比例上取得了最佳的结果,LLM-Blender在实验的评估中展现了预期中的卓越性能。
结语
LLM-Blender是一个简单的集成学习框架,适用于任何LLMs和任务。它通过学习通过成对比较的方式来排序每个回答的质量,再通过融合生成的方式来决定最后的输出。在MixInstruct的测试集上取得了最优的效果。