大模型增强大模型:通过融合扩展能力(Google DeepMind2024)

1、写作动机:

存在如此多领域特定的模型自然引发一个问题:我们是否能够将一个固定模型与一个特定领域的增强模型组合,以实现新的能力?例如,我们是否可以将增强模型的代码理解能力与固定LLM的语言生成能力组合,以实现代码到文本的生成能力?

微调为什么不可行,组合为什么可行?

答:因为训练大型模型在计算上是昂贵的,尤其是增强模型本身可能是在大规模数据集上训练的LLM。此外,由于隐私和组织边界的原因,处理来自多个来源的数据可能是不可行的。使用多个不同的模型也是可取的,因为它允许重用具有已建立能力的现有模型,提供更好的控制,并避免在传统方法中普遍存在的灾难性遗忘。

2、主要贡献:

提出了CALM——增强语言模型的组合,引入了模型之间的交叉注意力,以组合它们的表示并启用新的功能。CALM的显著特点包括:(i) 通过“重用”现有LLM以及一些额外的参数和数据,扩大了LLM在新任务上的规模,(ii) 保持现有模型权重不变,因此保留了现有的能力,(iii) 适用于不同的领域和设置。

3、组合原则:

1)允许使用一个组合模型和至少一个增强模型进行组合。

2)不允许修改原模型和增强模型的权重。

3)允许使用少量数据训练组合模型拥有的新功能。

4、CALM框架:

4.1概述:

给定一个锚定模型 mB 和一个增强模型 mA,CALM的目标是将这两个模型(mA⊕B)组合起来,以实现作为两个单独模型能力的组合的新能力。具有以下假设:i)我们可以访问 mB 和 mA 的权重,运行前向和反向传播,并访问它们的中间表示;ii)不允许更改两个模型的权重;iii)我们无法访问基础模型的训练数据、超参数和训练状态;iv)我们提供了一些来自目标组合领域的示例。

4.2学习组合:

CALM在mA和mB的中间层表示上学习两组额外的参数:

1)对于LA中的每一层,学习一个投影函数,将这些层的表示投影到mB所需的表示大小:

2)在固定模型和增强模型的表示之间引入交叉注意。具体来说,使用来自增强模型的fproj(HAi)作为每个头中的键和值向量,使用来自固定模型的向量HBj作为查询向量:

3)最后,交叉注意的输出作为残差连接添加到mB的层表示中。得到的输出向量,反过来,是组合模型的第(j + 1)层的输入:

5、实验:

5.1实验设置:

在所有实验中,从一个PaLM2-XXS模型开始,并在领域特定的数据上进一步训练它,得到一个增强模型(mA),然后在组合过程中将其保持冻结。请注意,没有使用任务特定的训练数据来训练CALM。我们使用PaLM2-XS或PaLM2-S模型作为固定LLM(mB),在组合训练期间也将其保持冻结。对于所有的实验,设置NA/n = 4,即使用mA的每第4层输出进行组合。相应地,从mA(LB)选择层,使得nB = nA = n,因此nB = NA/4。

5.2实验一——键值算术:

研究一个小的增强语言模型,它已经被训练用于记忆字符串到整数键-值(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保持不变。

实验结果:

5.3实验二——低资源语言包容性:

研究是否可以将这样一个大型固定语言模型mB与一个较小的增强语言模型mA进行组合,后者已经在低资源语言上进行了预训练,以执行这些低资源语言中提出的翻译和数学问题解决任务。

数据集:

使用来自Next Thousand Languages(NTL)项目的长尾语言集合和相关语料库作为领域数据DNTL。这个大规模语料库包含约1000种语言的网络爬取的单语句和翻译对。

模型:在DNTL上训练PaLM2-XXS模型来获得增强模型mA,以将关于这些低资源语言的知识传授给模型。对于mB,使用预训练的PaLM2-S模型。使用相同的低资源语言语料库DNTL的约5%作为训练数据DC,通过CALM组合mA和mB。

实验结果:

5.4实验三——代码理解与生成

虽然大型语言模型(LLMs)拥有丰富的世界知识,但由于其预训练语料库中代码数据的偏斜表示,它们往往可能缺乏对代码语法的具体知识。相反,专门在代码数据上训练的小型模型可能对代码语法有很好的理解,但它们可能缺乏广泛的世界知识和推理能力。CALM可以实现两者的最佳结合。

数据集:

Dcode

模型:

用了在DCode上进一步预训练的PaLM2-XXS模型作为mA,而基础预训练的PaLM2-S模型则充当mB。通过使用与mA相同的代码数据的仅占7%的数据来训练CALM,以实现数据的平等。

评估任务:

代码补全(HumanEval基准数据集)、文本到代码(MBPP数据集)、代码到文本(CodeXGlue基准数据集)

实验结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/415246.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【单片机】STM32 ARM Cortex-M0 微控制器特性概述 双排 TSSOP封装好手工焊接的STM32芯片,双排

STM32F070CB STM32F070RB STM32F070C6 STM32F070F6 在嵌入式系统和物联网应用中&#xff0c;ARM Cortex-M0 微控制器以其强大的性能和丰富的功能而备受瞩目。本文将介绍该微控制器的主要特性&#xff0c;使读者更好地了解其适用范围和潜在应用。 核心特性 ARM 32位 Cortex…

Python爬虫---scrapy框架---当当网管道封装

项目结构&#xff1a; dang.py文件&#xff1a;自己创建&#xff0c;实现爬虫核心功能的文件 import scrapy from scrapy_dangdang_20240113.items import ScrapyDangdang20240113Itemclass DangSpider(scrapy.Spider):name "dang" # 名字# 如果是多页下载的话, …

C/C++ BM6判断链表中是否有环

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 做了一堆单链表单指针的题目&#xff0c;这次是个双指针题&#xff0c;这里双指针的作用非常明显。 题目 判断给定的链表中是否有环。如果有环则返回true&#xff0c;否则返回fal…

kylin集群负载均衡(kylin3,hbaseRIF问题)

hbase历险记 目录 hbase历险记 寻找问题 分析原因 解决方案 方案1&#xff08;资源问题、失败&#xff09; 方案2&#xff08;成功&#xff09; 寻找问题 不知道你是不是有这样的疑惑。我kylin是个单机&#xff0c;我使用的hbase是个集群&#xff0c;但内存全在某一台机…

【b站咸虾米】chapter4_vue组件_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

课程地址&#xff1a;【新课uniapp零基础入门到项目打包&#xff08;微信小程序/H5/vue/安卓apk&#xff09;全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p12&share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 四、vue组件 uni-app官网 …

小蓝和小桥的挑战*

题目 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int t sc.nextInt();sc.nextLine();while(t-- > 0) {int n sc.nextInt();sc.nextLine();int[] a new int[n];for(int i0;i<n;i)a[i…

Python 保持登录状态进行接口测试的方法示例

记录三种添加cookie保持接口登录状态的方法&#xff0c;方便自己回顾。 1.简单粗暴式。 此方法比较小白&#xff0c;前提是已经通过fiddler抓包等方式拿到了cookie&#xff0c;然后直接塞进去。 import requeststrainsUrl http://XXX.com/trainsheaders {"Content-Typ…

解决kali beef启动失败解问题

只限于出现这个提示的时候使用 卸载 ruby apt remove ruby 卸载 beef apt remove beef-xss 重新安装ruby apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine 重新安装beef apt-get install beef-xss 弄完以上步骤如果还是不行就重启kali再试…

GaussDB与openGauss有什么相同和不同?

众所周知&#xff0c;GaussDB是华为自主创新研发的分布式关系型数据库&#xff0c;为企业提供功能全面、稳定可靠、扩展性强、性能优越的企业级数据库服务&#xff0c;openGauss是开源数据库&#xff0c;两者之间又是什么样的关系&#xff0c;有什么相同和不同&#xff0c;让我…

各种版本对应关系:SpringCloudAlibaba——SpringCloud——SpringBoot——SpringFramework——JDK

SpringCloudAlibaba——SpringCloud——SpringBoot——SpringFramework——JDK 一般情况&#xff0c;在https://github.com/项目/wiki目录下有发布信息及对应的要求其他依赖的版本信息SpringCloudAlibaba——SpringCloud——SpringBootSpringBoot和SpringFramework的版本对应关…

T细胞耗竭如何研究,看看这篇靶向甲基转移酶的癌症顶刊思路 | 国自然热点

T 细胞耗竭&#xff08;T Cell Exhaustion, Tex&#xff09;是指因长期慢性感染或癌症&#xff0c;导致患者体内T细胞功能丧失的情况。由于长期暴露于持续性抗原或慢性炎症&#xff0c;T细胞逐渐失去效应功能&#xff0c;记忆T细胞特征也开始缺失。T细胞耗竭通常与对持续感染和…

Docker(一)简介和基本概念:什么是 Docker?用它会带来什么样的好处?

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 一、简介 本章将带领你进入 Docker 的世界。 什么是 Docker&#xff1f; 用它会带来什么样的好处&#xff1f; 好吧&#xff0c;让我们带…