近年来,关于模型融合的研究逐渐火热,出现了很多效果出众的成果。模型融合(Model Merging)技术,即利用现有模型的参数、架构和特性,巧妙结合成一个新的、功能更强大的模型,这不仅减少了从头训练大型模型所需的计算资源和时间,还能帮我们在模型研究大爆发的情况下抓住机会,实现快速创新。
随着大模型的不断更新与发展,简单的集成学习开始受到限制,因此针对大模型的集成学习需要仔细考量。
小编整理了五种基本的集成方法来帮助同学们有效融合模型,分别是模型整合、概率集成、嫁接学习、众包投票、MOE,并精心整理了模型融合系列论文供大家学习。
需要的同学添加公众号【人工智能爱好者Hunt】 回复 模型融合 即可全部领取
模型整合
模型整合较为简单,即大模型在输出的文字层次进行融合,如简单的使用3个不同的LLama模型的输出结果,作为prompt输入到第四个模型中进行参考。
信息通过文字传递可以作为一种通信方法,其代表性的方法为EoT。
EoT提出了一个新的思想交流框架,即“交换思想”(Exchange-of-Thought),旨在促进模型之间的交叉通信,以提升问题解决过程中的集体理解。通过这一框架,模型可以吸收其他模型的推理,从而更好地协调和改进自身的解决方案。
文章:
《Exchange-of-Thought: Enhancing Large Language Model Capabilities through Cross-Model Communication》
概率集成
概率集成与传统的机器学习融合相似,比如将模型预测的logit结果进行平均,形式化的可以表示为:
类似地,大模型的概率集成可以在transformer的词表输出概率层次进行融合。要注意的是,这样的操作需要其融合的多个原始模型的词表保持一致。
一个简单伪代码:
kv_cache = None
While True:
input_ids = torch.tensor([[new_token]], dtype=torch.long, device='cuda')
kv_cache1, kv_cache2 = kv_cache
output1 = models[0](input_ids=input_ids, past_key_values=kv_cache1, use_cache=True)
output2 = models[1](input_ids=input_ids, past_key_values=kv_cache2, use_cache=True)
kv_cache = [output1.past_key_values, output2.past_key_values]
prob = (output1.logits + output2.logits)
new_token = torch.argmax(prob, 0).item()
需要的同学添加公众号【人工智能爱好者Hunt】 回复 模型融合 即可全部领取
嫁接学习
其本质上是一种迁移学习,一开始是用来描述将一个树模型的输出作为另一个树模型的输入的方法。此种方法与树的繁殖中的嫁接类似,故而得名。在大模型中,也有嫁接学习的应用,其模型名字为SOLAR。
与机器学习中的嫁接学习不同的是,大模型并不直接融合另外一个模型的概率结果,而是将其中的部分结构和权重嫁接到融合模型上,并经过一定的继续预训练过程,使其模型参数能够适应新的模型。
具体的操作为,复制包含n层的基础模型,以便后续修改。然后,从原始模型中移除最后的m层,并从其副本中移除最初的m层,从而形成两个不同的n-m层模型。最后将这两个模型连接起来,形成一个具有2*(n-m)层的缩放模型。
如图所示,需要构建一个48等的目标模型时候,可以分别从两个32层的模型取前24层和后24层连接到一起,组成一个全新的48层的模型,将组合后的模型进行继续预训练即可,通常继续预训练耗费的的数据量和计算资源要小于完全从头开始训练的消耗。
在继续预训练之后,还需要进行对齐操作,包含两个过程,分别是指令微调和DPO。指令微调采用开源instruct数据并改造出一个数学专用instruct数据,以增强模型的数学能力。DPO是传统的RLHF的替代,最终形成了SOLAR-chat版本。
文章:
《SOLAR 10.7B: Scaling Large Language Models with Simple yet Effective Depth Up-Scaling》
众包投票
其核心思想是:如果一个模型生成的句子,与所有模型的结果最像,那这个句子可以认为是所有模型的平均。这样就把概率意义上的平均,变成了生成token结果的上的平均。
众包投票在过往的国内生成比赛中也实践过,更是在WSDM CUP第一名方案里上有所应用。
2024年WSDM杯“对话式多文档QA”挑战赛中获胜的方法即利用大型语言模型(LLMs)的能力,通过任务适应、混合训练策略利用未标记数据、文本嵌入过滤不相关文档及模型集成,最终排名第一,远超竞争对手。
文章:
《The First Place Solution of WSDM Cup 2024: Leveraging Large Language Models for Conversational Multi-Doc QA》
需要的同学添加公众号【人工智能爱好者Hunt】 回复 模型融合 即可全部领取
MoE
最重要的大模型混合专家模型(Mixture of Experts,简称MoE),这是一种结合多个子模型(即“专家”)的模型架构方法,旨在通过多个专家的协同工作来提升整体的预测效果。
MoE结构能够显著增强模型的处理能力和运行效率。典型的大模型MoE体系结构包含了一个门控机制(Gating Mechanism)和一系列专家网络。门控机制负责依据输入数据动态调配各个专家的权重,以此来决定每个专家对最终输出的贡献程度;同时,专家选择机制会根据门控信号的指示,挑选出一部分专家来参与实际的预测计算。这种设计不仅降低了整体的运算需求,还使得模型能够根据不同的输入选择最适用的专家。
这种方法与集成学习有着相似之处,其核心是为由众多独立专家网络构成的集合体创立一个协调融合机制。在这样的架构下,每个独立的网络(即“专家”)负责处理数据集中的特定子集,并且专注于特定的输入数据区域。这个子集可能是偏向于某种话题,某种领域,某种问题分类等,并不是一个显示的概念。
面对不同的输入数据,一个关键的问题是系统如何决定由哪个专家来处理。门控网络(Gating Network)就是来解决这个问题的,它通过分配权重来确定各个专家的工作职责。在整个训练过程中,这些专家网络和门控网络会被同时训练,并不需要显示的手动操控。
2017年这一理念应用于一个137亿参数的LSTM模型。解决了条件计算中的挑战,实现了模型容量的大幅提升。通过引入稀疏门控混合专家层(MoE),利用数千个子网络组合,有效增加模型容量。设计的MoE架构,参数高达1370亿,展示了在不显著增加计算负担下,大幅提升模型能力的潜力。
文章:
《Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer》
需要的同学添加公众号【人工智能爱好者Hunt】 回复 模型融合 即可全部领取