大模型增强大模型:通过融合扩展能力(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基准数据集)

实验结果:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

非科班转码的秋招复盘:地理信息科学GIS专业到后端研发、软件开发

本文介绍地理信息科学&#xff08;GIS&#xff09;专业的2024届应届生&#xff0c;在研三上学期期间&#xff0c;寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。 首先&#xff0c;这篇文章一开始写于2023年年底&#xff0c;当时为了参加一个征文活动&#xff0c;所…

Spring Boot程序的打包与运行:构建高效部署流程

引言 在现代应用开发中&#xff0c;高效的打包和部署流程对于项目的开发、测试和上线至关重要。Spring Boot作为一种快速开发框架&#xff0c;提供了方便的打包工具和内嵌式的Web服务器&#xff0c;使得打包和运行变得更加简单。本文将研究在Spring Boot应用中如何进行打包&am…

ctfshow php特性(web89-web101)

目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 php特性(php基础知识) web89 <?php include("flag.php"); highlight_file(_FILE_);if(isset($_GET[num])){$num$_GET[num];if(preg_match("/[0-9]/&…

WINCC读写EXCEL-VBS

原创 RENHQ WINCC 关于VBS操作EXCEL的文档不管在论坛上还是在网上&#xff0c;相关的脚本已经很多&#xff0c;但是依然有很多人在问这个问题&#xff0c;于是把我以前在论坛上发的一个集合帖子的脚本拿来&#xff0c;重新开个帖子&#xff0c;如果再有人问的话&#xff0c;可…

MySQL进阶篇:索引(概述,结构,分类,语法,SQL性能分析,索引使用,设计原则)

目录 1.索引概述2.索引结构1.B树&#xff08;多路平衡查找树&#xff09;2.B树3.Hash1.特点2.存储引擎支持 4.选择B树作为InnoDB存储引擎索引结构的原因 3.索引分类1.聚集索引选取规则2.回表查询 4.索引语法1.创建索引2.查看索引3.删除索引 5.SQL性能分析1.SQL执行频率2.慢查询…

Spark流式读取文件数据

流式读取文件数据 from pyspark.sql import SparkSession ss SparkSession.builder.getOrCreate() # todo 注意1&#xff1a;流式读取目录下的文件 --》一定一定要是目录&#xff0c;不是具体的文件&#xff0c;# 目录下产生新文件会进行读取# todo 注意点2&#xff1…

启动低轨道卫星LEO通讯产业与6G 3GPP NTN标准

通讯技术10年一个大跃进&#xff0c;从1990年的2G至2000年的3G网路&#xff0c;2010年的4G到近期2020年蓬勃发展的5G&#xff0c;当通讯技术迈入融合网路&#xff0c;当前的 5G 技术不仅可提供高频宽、低延迟&#xff0c;同时可针对企业与特殊需求以 5G 专网的模式提供各式服务…

面试之Glide如何绑定Activity的生命周期

Glide绑定Activity生命周期 Glide.with() 下面都是它的重载方法&#xff0c;Context&#xff0c;Activity&#xff0c;FragmentActivity, Fragment, android.app.Fragment fragment,View都可以作为他的参数&#xff0c;内容大同小异&#xff0c;都是先getRetriever&#xff0…

简单实用的恒温控制器

工作原理如下&#xff1a;ST是WTQ-288型电接点压力式温度计&#xff0c;当恒温箱内的温度降低到下限时&#xff0c;ST的指针与下限接点接触&#xff0c;双向可控硅通过R被强制触发导通&#xff0c;接通加热器RL的电源&#xff0c;于是恒温箱内温度上升。ST的指针转动&#xff0…

java结合百度ocr实现图片文字提取功能

1.进入百度云控制台&#xff0c;找到文字识别服务&#xff0c;创建一个应用 2.引入ocr需要的maven依赖包 <dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.16.11</version> </depend…

深入Android S (12.0) 探索Framework之输入子系统InputReader的流程

Framework层之输入系统 第一篇 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动 第二篇 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程 文章目录 Framework层之输入系统前言一、基础知识1、输入子系统2、INotify 与 Epoll2.1、INotify 机制…

yolov8的目标检测、实例分割、关节点估计的原理解析

1 YOLO时间线 这里简单列下yolo的发展时间线&#xff0c;对每个版本的提出有个时间概念。 2 yolov8 的简介 工程链接&#xff1a;https://github.com/ultralytics/ultralytics 2.1 yolov8的特点 采用了anchor free方式&#xff0c;去除了先验设置可能不佳带来的影响借鉴General…

ETL概念

ETL ETLELT 技术原理ETL 模式应用场景常见工具ETL未来发展方向 ETL 在BI项目中ETL会花掉整个项目至少1/3的时间&#xff0c; ETL设计的好坏直接关接到BI项目的成败。ETL(Extract-Transform-Load) : 用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&…

全面了解网络性能监测:从哪些方面进行监测?

目录 摘要 引言 CPU内存监控 磁盘监控 网络监控 GPU监控 帧率监控 总结 摘要 本文介绍了网络性能监测的重要性&#xff0c;并详细介绍了一款名为克魔助手的应用开发工具&#xff0c;该工具提供了丰富的性能监控功能&#xff0c;包括CPU、内存、磁盘、网络等指标的实时…

GET气象台最新发布的气象预警数据

1. 项目需求&#xff1a; 获取济南地区或整个山东地区的所有城市气象灾害预警信息 2. 对接流程 请求接口请求参数返回内容对接数据 1. 请求接口 请将线路地址设置在服务端, 接口线路有多条, 其中一条出问题, 可以及时切换到另外一条线路 线路1&#xff1a;http://v1.yiket…

电池容量常见测试方法分享 -纳米软件

电池容量是衡量电池性能的重要指标之一&#xff0c;它是指电池在一定条件下放出的电量&#xff0c;可以用于帮助评估电池的性能和寿命。那么如何快速测试电池容量呢? 一、用万用表测试 用万用表测试电池容量&#xff0c;需要将万用表调整到电容模式&#xff0c;然后连接电池到…

火速收藏!2024 新年微信红包封面领取全攻略

2024“龙”重登场&#xff01;今年有哪些令人期待的红包封面&#xff1f; 前方大批精美红包封面来袭&#xff0c;全新品牌氛围红包封面上线&#xff0c;支持品牌定制特色氛围元素&#xff0c;沉浸感受浓浓年味儿&#xff0c;收获满满惊喜&#xff01; 新年开好运&#xff0c;微…

iphone5s基带部分电源部分主主电源供电及

时序: 1.,基带电源的供电&#xff0c;基带电源也叫pmu。 首先时序图说电池提供供电&#xff0c;电池是J6接口&#xff0c;视频习惯把接口称之为座子。查U2_RF芯片&#xff0c;发现供电信号为PP_BATT_VCC_CONN&#xff0c;但是没查到跟电池座子有关系&#xff0c;电池座子写的是…

vectorCast——Probe point 功能实现故障注入,局部变量打印,断点调试。

选择一个测试用例,选择coverage窗口进行查看。点击edit probe point,如图所示绿色的小圆圈。选代码中选择需要打断点的地方进行点击。黑色的小圆点都可以选。点击黑色小圆点,小圆点变绿,表示打断点成功。此时就可以根据自己的需求在打断点的位置编写一些C语言的命令语句。点…

C#,因数分解(质因子分解)Pollard‘s Rho算法的源代码

因数分解&#xff08;也称为质因子分解&#xff09;&#xff1a;将一个大整数分解它的质因子之乘积的算法。 Pollard Rho算法的基本思路&#xff1a;先判断当前数是否是素数&#xff08;质数&#xff09;&#xff0c;如果是&#xff0c;则直接返回。如果不是&#xff0c;继续找…