继续预训练对大语言模型的影响

翻译自文章:Investigating Continual Pretraining in Large Language Models: Insights and Implications

摘要

本文研究了大型语言模型(LLMs)中不断学习(CL)的不断发展领域,重点是制定有效和可持续的训练策略。我们主要关注持续领域自适应预训练,这是一个旨在使LLMs能够整合来自各个领域的新信息,同时保留先前学到的知识并增强跨领域知识转移的能力,而无需依赖于特定领域的识别过程。与以往主要集中于有限的任务或领域并主要旨在解决遗忘问题的研究不同,我们的研究评估了LLMs在实际场景中适应不断变化的数据环境的能力和特点。为此,我们引入了一个旨在衡量LLMs对这些不断演变的数据环境的适应能力的新基准,提供了全面的评估框架。我们检验了模型大小对学习效果和遗忘的影响,以及新兴领域的进展和相似性对模型内知识转移的影响。我们的研究揭示了几个关键见解:(i)当领域序列显示语义相似性时,持续预训练使LLMs能够与基于单一微调相比更好地专注于当前领域,(ii)跨多个领域的训练增强了向后和向前的知识转移,(iii)较小的模型特别敏感于持续预训练,表现出最显著的遗忘和学习速度。我们认为,我们的研究标志着在LLMs中研究CL建立更为现实的评估基准的转变,并有潜力在引导未来研究方向方面发挥关键作用。

Introduction

自然语言处理(NLP)领域的最新进展受到大型语言模型(LLMs)的发展的显着影响 (Devlin et al.,2018; Radford et al., 2019; Brown et al., 2020)。这些模型在来自不同领域的大规模语料库上进行训练,已经成为许多NLP任务的通用工具。然而,LLMs的规模和复杂性的增加引发了人们对训练它们所带来的经济和生态成本的担忧,这一点在最近的研究中得到了强调 (Luccioni et al., 2022)。这种情况迫使我们需要比每次有新数据流进来就重新训练这些模型更有效的方法。在这种情况下,持续学习(CL)成为了一个关键策略 (Sun et al., 2019; Biesialska et al., 2020),可以减少经济和环境成本,同时保持模型的相关性。特别是通过诸如持续微调等策略,这涉及对LLM逐步进行一系列下游任务的微调 (Wu etal., 2021; Ramasesh et al., 2021; Scialom et al., 2022; Mehta et al., 2023)和持续领域自适应预训练等策略,专注于增量更新以使LLM适应新领域 (Xu et al., 2019; Gururangan et al., 2020; Ke et al., 2023b),避免了在有新数据到来时需要进行透彻的重新训练。在本文中,我们深入研究了CL框架中的领域自适应的挑战,重点关注了LLMs的持续领域自适应预训练。这个过程涉及使用大规模、未标记的领域特定语料库进行持续训练 (Xu et al., 2019; Gururanganet al., 2020; Ke et al., 2023b)。鉴于数据的动态性和新领域的出现,持续领域自适应预训练似乎是一个比从头开始训练更计算和环境友好的替代选择,同时也允许利用预训练网络。持续领域自适应的两个愿景是(i)在不发生灾难性遗忘(CF)的情况下实现跨领域的知识转移 (French, 1999),(ii)在不需要为每个任务明确标识领域的情况下有效运行。
最近针对LLMs的CL方面的进展探索了各种方法,包括参数高效自适应 (Gururangan et al., 2021; Khanet al., 2022; Zhang et al., 2022)和指导微调 (Scialom et al., 2022; Razdaibiedina et al., 2023; Luo et al.,2023b)。这些方法的主要目标是减轻在下游任务微调LLMs时的遗忘,i.e.,并没有强调预训练。我们的研究与Gururangan et al. (2020)的工作最相关,他们评估了RoBERTa (Liu et al., 2019)模型在持续预训练跨四个领域时的转移能力。最近,Cossu et al. (2022)展示了在五个下游任务上测试持续预训练的RoBERTa和BERT (Devlin et al., 2018)模型的稳健性。同样,Ke et al. (2023a)介绍了RoBERTa的持续预训练方法,并在六个下游任务上进行了测试。然而,这些研究还不足以得出持续预训练是否减轻遗忘或促进长期训练时的适应的结论,该领域仍然缺乏对各种规模和体系结构的LLMs在大规模和更现实的环境中的全面评估。
我们的工作试图填补这一空白,通过在不同领域上进行预训练LLMs并在整个预训练过程中评估其语言建模性能,使我们的研究脱离了先前狭窄领域关注的研究(Cossu et al., 2022; Wang et al., 2023; Keet al., 2023b)。我们利用了大规模多领域数据集(M2D2) Reid et al. (2022),其中包含来自维基百科和Semantic Scholar等来源的236个层次化组织的领域。该数据集为在各种LLMs上研究CL提供了一个理想的环境,促进了对遗忘和知识传递的深入分析。我们的研究不仅突出了LLMs的适应能力,还为未来的领域自适应和CL方法研究奠定了基础。我们的主要贡献在于评估预训练LLMs在广泛的持续学习环境中的能力,重点关注模型规模和架构(编码器-解码器与仅解码器)对其学习新任务和保留先前学习信息的能力的影响。我们还研究了领域相似性及出现领域顺序对知识转移和整体CL性能的影响。我们的发现揭示了几个关键的见解:(i) 在100个以上语义有序的域上持续预训练模型优于在每个域上单独微调,(ii) 结合多样化的训练领域可以在长期CL视野内实现积极的向和反向转移,(iii) CL的后期阶段更容易遗忘,(iv) 持续预训练增强了下游性能。

Methodology

在本部分中,我们将描述我们的训练过程,概述用于模型持续预训练和评估的任务(领域),并解释评估流程。
在这里插入图片描述
每个M2D2数据集中的领域都被分割成训练、验证和测试集,并且没有数据泄露,正如Reid et al. (2022)所概述的那样。每个验证和测试集都包含超过100万标记,从而可以在特定领域内进行准确的评估。我们通过在L2领域的测试集上测试困惑度来衡量所有方法的有效性。对于持续的领域自适应预训练实验,当在一个领域上完成一轮训练后,我们对模型进行检查点,并计算当前和以前领域的测试困惑度。

Results and Findings

在本节中,我们讨论我们的主要发现。我们首先讨论持续预训练的困惑度,以及最终模型检查点的困惑度。然后我们分析成功的反向和正向转移的动态过程。我们最后报告下游任务的性能,并进行消融研究。
在这里插入图片描述

Analysis of continual pretraining and the final model

最终模型的困惑度优于零-shot 我们的研究表明,在不同域序列和模型大小上,最终模型在困惑度方面始终优于或与零-shot基线相匹配。我们报告了所有领域的平均困惑度,表明跨学习期间积累的知识平均而言并不会对学习领域的预测产生不利影响。值得注意的是,训练序列的随机化结果比相似顺序的域序列具有更有利的平均困惑度。我们在表 4中对维基和S2ORC数据集的困惑度值进行了详细比较,突显了GPT系列在忘记先前部分的同时,在后面部分的困惑度增加。当领域在语义上排序时,CPT相对于标准FT更有利 将FT列与CPT列进行比较,发现在后续训练域具有高相似性的情况下,持续预训练优于标准微调。这一观察结果符合这样一个前提:模型在当前任务上的性能与其初始检查点有内在联系。也就是说,当培训领域基于相似性排序时,最后的检查点Mi自然而然地比原始模型M0更好地转移到下一个域Di+1。另一方面,当训练领域的顺序是随机的,发现从原始模型M0开始更有益。这一观察结果与最近有关连续测试时适应的研究 (Press et al., 2023)和检查点选择策略的研究 (Fisch et al., 2023)一致,突显了训练序列中起始点的战略价值。最终性能与模型大小相关 与关于缩放规律的最新研究一致(Kaplan et al., 2020; Bahri et al., 2021),更大模型的持续学习结果在CPT和LC性能上更好,无论训练顺序如何。然而,这种一致的模式不仅仅可以归因于持续学习,因为模型大小严重影响零-shot性能。以零-shot性能作为基线(请参见表 2中括号内的值),我们观察到GPT2-small在四种评估场景中有三种情况中最大程度地受益于持续预训练。

详细见https://arxiv.org/html/2402.17400v1

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

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

相关文章

【前端素材】推荐优质在线服饰购物电商网页Uthr平台模板(附源码)

一、需求分析 1、系统定义 在线服饰购物商城是指一个通过互联网提供服装和配饰购买服务的电子商务平台。这类商城通常提供一个网站或移动应用程序,让顾客可以浏览、选择和购买各种类型的服装、鞋帽、包包、配饰等时尚商品。 2、功能需求 在线服饰购物商城是指一…

网工内推 | 项目经理,软考证书优先,最高26K,加班补贴

01 龙盈智达 招聘岗位:项目经理 职责描述: 1 根据业务员需求,完成生态圈下账簿中心系统的开发管理工作。 2 负责账簿中心实施过程中的需求调研分析、方案设计、开发测试、系统上线等工作的计划、组织协调、沟通等方面管理工作。 3 完成系统核…

计算机网络-网络互连和互联网(四)

1.TCP协议: 传输控制协议,面向字节流按顺序连接,可靠,全双工,可变滑动窗口,缓冲累积传送。协议号为6。下面是TCP段(段头),TCP头(传输头)&#xf…

【科研基础】小波变换

[1].参考开源库1:https://github.com/fbcotter/pytorch_wavelets Cotter, Fergal. Uses of complex wavelets in deep convolutional neural networks. Diss. 2020. [2].参考开源库2:https://github.com/brunobelloni/wran-sr-pytorch [3] F:\A\1.Code\3…

【GameFramework框架内置模块】7、事件(Event)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q7…

java工具类之解析地址

输出 代码实现 import java.util.regex.Matcher; import java.util.regex.Pattern;public class AddressResolutionUtil {/*** 解析地址* author ys* param address* return*/public static String addressResolution(String address){String regex"(?<province>…

Keepalived 双机热备基础知识

7.1 Keepalived 双机热备基础知识 Keepalived起初是专门针对LVS设计的一款强大的辅助工具&#xff0c;主要用来提供故障切换(Failover) 和健康检查査(Health Checking)功能一一判断LVS 负载调度器、节点服务器的可用性&#xff0c;及时隔离并替 换为新的服务器&#xff0c;当故…

从零开始学习Netty - 学习笔记 -Netty入门【ByteBuf】

5.2.4.ByteBuf ByteBuf 是 Netty 框架中用于处理字节数据的一个核心类。它提供了一个灵活而高效的方式来处理字节数据&#xff0c;适用于网络编程和其他需要处理字节数据的场景。 ByteBuf的特点 可扩展性&#xff1a; ByteBuf 支持动态扩容&#xff0c;可以根据需要自动增长容…

1978-2022年各省农业总产值数据(无缺失)

1978-2022年各省农业总产值数据(无缺失) 1、时间&#xff1a;1978-2022年 2、范围&#xff1a;包括全国31省 3、来源&#xff1a;国家统计J、统计NJ、各省NJ 4、指标解释&#xff1a;农业总产值是一定时期&#xff08;通常为一年&#xff09;内以货币形式表现的农、林、牧、…

【C#】忽略大小的替换字符串

结果 代码 string a"aAAAAAAaBBaaCC"; string b Strings.Replace(a, "a", "D", 1, -1, CompareMethod.Text);

学习大语言模型(LLM),从这里开始

在见识了ChatGPT的各种强大能力后&#xff0c;不少 NLP一线从业人员很自然地想到&#xff0c;以后开发者只要借助 ChatGPT&#xff0c;就可以做到现在大部分NLP工程师在做的事&#xff0c;比如文本分类、实体抽取、文本推理等。甚至随着大语言模型&#xff08;largelanguagemod…

面试数据库篇(mysql)- 07索引创建原则与失效及优化

索引创建原则 1). 针对于数据量较大,且查询比较频繁的表建立索引。 2). 针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。 3). 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。 4). 如果是字符…

算法基础(三)(模拟)

1.模拟算法介绍&#xff1a; 模拟算法通过模拟实际情况来解决问题&#xff0c;一般容易理解但是实现起来比较复杂&#xff0c;有很多需要注意的细节&#xff0c;或者是一些所谓很“麻烦”的东西。模拟题一般不涉及太难的算法&#xff0c;一般就是由较多的简单但是不好处理的部…

buuctf_web_knife

题目&#xff1a; 哥们&#xff0c;名字叫白给的shell&#xff0c;嘻嘻。本题主要练习一下蚁剑工具 激动的心&#xff0c;颤抖的手&#xff0c;我打开了蚁剑。在空白处右击 然后&#xff0c;输入URL&#xff0c;密码&#xff08;所以上面说白给&#xff09;是Syc 添加后点进…

【Java程序设计】【C00322】基于Springboot的高校竞赛管理系统(有论文)

基于Springboot的高校竞赛管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的高校竞赛管理系统&#xff0c;本系统有管理员、老师、专家以及用户四种角色&#xff1b; 管理员&#xff1a;首页、个人中心、管…

1 数据分析概述与职业操守

1、 EDIT数字化模型 E——exploration探索 &#xff08;是什么&#xff09; 业务运行探索&#xff1a;探索关注企业各项业务的运行状态、各项指标是否合规以及各项业务的具体数据情况等。 指标体系——目标&#xff08;O&#xff09;、策略&#xff08;S&#xff09;、指标&a…

jenkins插件下载失败bug

如果遇到安装jenkins插件经常失败并报以下类似错误&#xff0c;很可能是因为jenkins国外官方插件地址下载速度非常慢&#xff0c;我们可以修改为国内插件地址。 java.io.IOException: Failed to load: SCM API Plugin (scm-api 676.v886669a_199a_a_) - Jenkins (2.361.4) or h…

cmake如何将源文件按照指定的组织方式进行分组,在IDE例如vistual stdio或者xcode项目工程文件中展示和管理这些源文件

1、我们先来看下面的一个项目的结构 TestGroup工程下面的main.cpp同级的有两个文件夹&#xff0c;到时候我们想在IDE比如xcode或者visual stdio2019中也显示这样的结构怎么弄呢(答案是用cmake中的source_group函数) 2、假如没有用source_group生成的xcode工程是怎么样的&#…

map和set的简单介绍

由于博主的能力有限&#xff0c;所以为了方便大家对于map和set的学习&#xff0c;我放一个官方的map和set的链接供大家参考&#xff1a; https://cplusplus.com/ 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque&#x…

2.29作业

1.编写链表&#xff0c;链表里面随便搞点数据 使用 fprintf 将链表中所有的数据&#xff0c;保存到文件中 使用 fscanf 读取文件中的数据&#xff0c;写入链表中 //main.c#include "link_list.h" int main() {link_p Lcreate_head();insert_tail(L,12);insert_tai…