24年2月阿里巴巴的论文“Language models are super mario: Absorbing abilities from homologous models as a free lunch“。
语言模型 (LM) 可以通过同类模型中的参数来获取新功能,无需重新训练或 GPU。首先引入
DARE
(
Drop And REscale)
,将大多数 delta 参数(即微调参数和预训练参数之间的差异)设置为零,而不影响监督微调(SFT)LM 的能力,以一定比例 p 随机删除 delta 参数 并将其余的重缩放 1/(1 − p) ,近似原始嵌入。然后,用 DARE 作为一种通用的即插即用技术来稀疏多个 SFT 同源模型的增量参数,减轻参数干扰,并通过参数融合将它们合并为单个模型。作者合并后的 LM 在 Open LLM 排行榜上70 亿参数模型中排名第一。
所使用的资源可如下获取
GitHub - yule-BUAA/MergeLM: Codebase for Merging Language Models
github.com/yule-BUAA/MergeLM
它集成了现有流行的模型合并方法,并支持基于编码器和解码器的 LM。
DARE步骤很简单,就是丢弃和重新缩放。对delta参数以p比例删除,然后对剩余参数以1/(1-p)重新缩放。如图所示:DARE 以及将模型与 DARE 合并的插图。DARE 可以实现与标准 SFT 相当的性能,并删除 90% 甚至 99% 的增量参数。此外,DARE 解决了合并模型时的参数干扰问题,并产生了连贯的改进。顶部一行是表示与数学/代码相关任务图标的能力。
在实践中,发现当丢弃率 p 设置正确时,DARE 是适用的,并且 p 的容错随着 LM 的参数大小而增长。
此外,删除微调参数而不是增量参数会导致性能灾难性下降。
一个有前途的方向是更深入地探索 DARE,例如推断 p 相对于 LM 容量的上限,并搞明白微调参数和 delta 参数之间的内在差异。
DARE 和 丢弃(Dropout)之间(Srivastava et al., 2014)做个比较。这两种方法都涉及随机丢弃和重新缩放操作,但它们在两个关键方面有所不同:(1)DARE 处理 delta 参数,而 Dropout 对模型输出进行操作;(2)DARE的目的是在不训练的情况下减少delta参数冗余,永久消除delta参数,只保留其他参数用于推理。Dropout用于防止模型过拟合,即在训练期间暂时删除部分输出,但保留所有输出用于推理。
由于 DARE 将大部分参数设置为零来有效减少增量参数的冗余,因此假设 DARE 可以帮助解决合并多个模型时参数的干扰(Yadav,2023)。例如在合并数学和代码相关模型时,DARE可以辅助现有的模型合并方法更好地吸收两个模型的能力,而较少或者甚至没有参数干扰。