存在如此多领域特定的模型自然引发一个问题:我们是否能够将一个固定模型与一个特定领域的增强模型组合,以实现新的能力?例如,我们是否可以将增强模型的代码理解能力与固定LLM的语言生成能力组合,以实现代码到文本的生成能力?
微调为什么不可行,组合为什么可行?
答:因为训练大型模型在计算上是昂贵的,尤其是增强模型本身可能是在大规模数据集上训练的LLM。此外,由于隐私和组织边界的原因,处理来自多个来源的数据可能是不可行的。使用多个不同的模型也是可取的,因为它允许重用具有已建立能力的现有模型,提供更好的控制,并避免在传统方法中普遍存在的灾难性遗忘。
提出了CALM——增强语言模型的组合,引入了模型之间的交叉注意力,以组合它们的表示并启用新的功能。CALM的显著特点包括:(i) 通过“重用”现有LLM以及一些额外的参数和数据,扩大了LLM在新任务上的规模,(ii) 保持现有模型权重不变,因此保留了现有的能力,(iii) 适用于不同的领域和设置。
1)允许使用一个组合模型和至少一个增强模型进行组合。
2)不允许修改原模型和增强模型的权重。
3)允许使用少量数据训练组合模型拥有的新功能。
给定一个锚定模型 mB 和一个增强模型 mA,CALM的目标是将这两个模型(mA⊕B)组合起来,以实现作为两个单独模型能力的组合的新能力。具有以下假设:i)我们可以访问 mB 和 mA 的权重,运行前向和反向传播,并访问它们的中间表示;ii)不允许更改两个模型的权重;iii)我们无法访问基础模型的训练数据、超参数和训练状态;iv)我们提供了一些来自目标组合领域的示例。
CALM在mA和mB的中间层表示上学习两组额外的参数:
1)对于LA中的每一层,学习一个投影函数,将这些层的表示投影到mB所需的表示大小:
2)在固定模型和增强模型的表示之间引入交叉注意。具体来说,使用来自增强模型的fproj(HAi)作为每个头中的键和值向量,使用来自固定模型的向量HBj作为查询向量:
3)最后,交叉注意的输出作为残差连接添加到mB的层表示中。得到的输出向量,反过来,是组合模型的第(j + 1)层的输入:
在所有实验中,从一个PaLM2-XXS模型开始,并在领域特定的数据上进一步训练它,得到一个增强模型(mA),然后在组合过程中将其保持冻结。请注意,没有使用任务特定的训练数据来训练CALM。我们使用PaLM2-XS或PaLM2-S模型作为固定LLM(mB),在组合训练期间也将其保持冻结。对于所有的实验,设置NA/n = 4,即使用mA的每第4层输出进行组合。相应地,从mA(LB)选择层,使得nB = nA = n,因此nB = NA/4。
研究一个小的增强语言模型,它已经被训练用于记忆字符串到整数键-值(KV)映射,以及一个大的固定语言模型,它能够在整数上执行算术运算。
数据集:
(i)KV-替换(DKV-SUBS):该数据集将DKV-EXP中的每个表达式映射到一个表达式,其中键被其相应的值替换。
(ii)KV-算术(DKV-MATH):该数据集将DKV-EXP中的每个表达式映射到通过解算术表达式得到的数值,当键被相应的值替换时。例如,该数据集中的示例看起来像(<K1> + <K2> - <K3>,8)。
(iii)数字-算术(DNUM-MATH):该数据集将DKV-EXP中每个表达式的值替代版本映射到通过解算术表达式得到的数值。例如,该数据集中的示例看起来像(10 + 22 - 24,8)。
模型:
通过进一步在预训练的PaLM2-XXS模型上训练DKV-SUBS来获得增强模型mA,以使其记忆DKV中的KV对。接下来,使用预训练的PaLM2-XS模型作为锚定模型mB。该模型能够以相当好的性能解决数字表达式。从KV-替代数据集DKV-SUBS中取出仅跨越DKV中20%的键的示例,以形成组合训练数据(DC)。我们使用DC来组合具有DKV知识的增强模型(mA)和预训练的锚定模型mB,训练组合参数(ΘC)。mA和mB保持不变。
实验结果:
研究是否可以将这样一个大型固定语言模型mB与一个较小的增强语言模型mA进行组合,后者已经在低资源语言上进行了预训练,以执行这些低资源语言中提出的翻译和数学问题解决任务。
数据集:
使用来自Next Thousand Languages(NTL)项目的长尾语言集合和相关语料库作为领域数据DNTL。这个大规模语料库包含约1000种语言的网络爬取的单语句和翻译对。
模型:在DNTL上训练PaLM2-XXS模型来获得增强模型mA,以将关于这些低资源语言的知识传授给模型。对于mB,使用预训练的PaLM2-S模型。使用相同的低资源语言语料库DNTL的约5%作为训练数据DC,通过CALM组合mA和mB。
实验结果:
虽然大型语言模型(LLMs)拥有丰富的世界知识,但由于其预训练语料库中代码数据的偏斜表示,它们往往可能缺乏对代码语法的具体知识。相反,专门在代码数据上训练的小型模型可能对代码语法有很好的理解,但它们可能缺乏广泛的世界知识和推理能力。CALM可以实现两者的最佳结合。
数据集:
Dcode
模型:
用了在DCode上进一步预训练的PaLM2-XXS模型作为mA,而基础预训练的PaLM2-S模型则充当mB。通过使用与mA相同的代码数据的仅占7%的数据来训练CALM,以实现数据的平等。
评估任务:
代码补全(HumanEval基准数据集)、文本到代码(MBPP数据集)、代码到文本(CodeXGlue基准数据集)
实验结果: