查看原文
其他

LM-Cocktail模型治理策略,像调鸡尾酒一样调制“多技能”语言大模型

智源研究院 智源研究院 2023-12-25
近日,智源研究院信息检索与知识计算组发布LM-Cocktail模型治理策略,旨在为大模型开发者提供一个低成本持续提升模型性能的方式:通过少量样例计算融合权重,借助模型融合技术融合微调模型和原模型的优势,实现“模型资源”的高效利用。
  • 融合多个LLM:既能提升目标任务性能,又能保持通用能力
    收集和构建目标任务数据集并对大语言模型(LLM)进行微调,可以提高其在目标任务的性能表现。然而,这种方式通常会导致除目标任务以外的一般任务的性能明显下降,损害LLM原本具备的通用能力。
    模型融合技术可以通过融合多个模型提高单模型的性能。受此启发,LM-Cocktail策略进一步通过对目标任务计算不同模型的重要性,赋予不同模型不同的权重,在此基础上进行模型融合,在提升目标任务上性能的同时,保持在通用任务上的强大能力。
  • 模型治理新策略:博采众长,持续为大模型增添新技能

    开源社区的模型逐渐增多,大模型开发者也可能在多次训练中累计了越来越多的模型,每个模型都具有各自的优势,如何选择合适的模型执行任务或进一步微调反而成为一个问题。

    LM-Cocktail 策略可以帮助汇总各模型的优势能力,就像制作鸡尾酒那样,通过加入不同的模型进行调制,得到一个具备多种特长的“多技能”模型。

    具体而言,LM-Cocktail 可以通过手动选择模型配比,或者输入少量样例自动计算加权权重,来融合现有模型生成一个新模型,该过程不需要对模型进行重新训练并且具备适配多种结构的模型,如大语言模型 Llama,语义向量模型 BGE等。

    此外,如果开发者缺乏某些目标任务的标签数据,或者缺少计算资源进行模型微调,那么采用 LM-Cocktail 策略可以省去模型微调步骤,通过构造非常少量的数据样例,融合开源社区中已有的大语言模型来调制自己的“LM鸡尾酒”。


研究详情
  • 论文 https://arxiv.org/abs/2311.13534
  • 代码 https://github.com/FlagOpen/FlagEmbedding/tree/master/LM_Cocktail
坚持开源开放,促进协同创新,智源大模型技术开放体系FlagOpen的FlagEmbedding版块,专注于检索增强LLM领域,目前包括以下项目:
  • Fine-tuning of LM: LM-Cocktail
  • Dense Retrieval: LLM Embedder、BGE Embedding、C-MTEB
  • Reranker Model: BGE Reranker

如下图所示,在特定目标任务上微调Llama,可以显著提高目标任务上的准确度,但损害了在其他任务上的通用能力。采用LM-Cocktail可以解决这个问题。
LM-Cocktail的核心是将微调后的模型与多个其他模型的参数进行融合,整合多个模型的优点,在提高目标任务上准确度的同时,保持在其他任务上的通用能力。具体形式为,给定目标任务、基础模型,以及一个在该任务上微调基础模型后得到的模型,同时收集开源社区或以往训练过的模型组成集合。通过目标任务上少量的样例计算每个模型的融合加权权重,对这些模型的参数进行加权求和,得到新的模型(具体的过程请参考论文或开源代码)。如果开源社区不存在其他模型,也可以直接融合基础模型和微调模型,在不降低通用能力的基础上提升下游任务表现。
用户在实际应用场景中,由于数据和资源的限制,可能无法进行下游任务的微调,即没有在目标任务微调过后的模型。这种情况下,用户可以通过构造非常少量的数据样例融合社区中已有的大语言模型,生成一个面向新任务的模型,提高目标任务的准确度,而无需对模型进行训练。
下面是不同场景下的实验结果:
弹性微调保持通用能力
从上图中可以看到,在某个目标任务上进行微调之后,微调后的模型大幅提高了在该任务上的准确度,但其他通用任务上的准确度都有所下降。例如,在AG News到训练集上进行微调,Llama在AG News测试集上准确度从40.80%涨到94.42%,但在其他任务上准确度从46.80%下降到了38.58%。
然而,通过简单的融合微调后模型和原模型的参数,在目标任务上实现了具有竞争力的性能94.46%,与微调模型相当,同时在其他任务上准确度为47.73%, 甚至稍强于原模型的性能。在某些任务下,如Helleswag, 融合后的模型甚至可以在该微调任务上超过微调后的模型,并在其他任务上超过原通用模型,即在继承微调模型和原模型的优点的同时,超过了他们。另外, 比较LM-Cocktail_2和LM-Cocktail_10,可以看出:进一步融合其他微调模型,其他任务上的通用性能可以进一步提升。
混合已有模型处理新任务
语言模型目标任务MMLU
向量模型目标任务Retrieval(信息检索)
微调模型需要大量的数据,同时需要大量的计算资源,尤其是微调大语言模型,这些在实际情况中不一定可以实现。在无法对目标任务进行微调的情况下,LM- Cocktail 可以通过混合已有的模型(来自开源社区或者自己历史训练积累)来实现新的能力。
通过只给定5条样例数据,LM-Cocktail自动计算融合加权权重,从已有的模型进行筛选然后融合得到新的模型,而无需使用大量数据进行训练。实验发现,生成的新模型可以在新的任务上得到更高的准确度。例如,对于Llama,通过LM- Cocktail融合现有10个模型(其训练任务都与MMLU榜单无关),可以取得明显的提升,并且要高于使用5条样例数据进行上下文学习的Llama模型。
欢迎大家体验LM-Cocktail,并通过GitHub issue反馈建议
https://github.com/FlagOpen/FlagEmbedding/tree/master/LM_Cocktail
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存