大语言模型(LLM)如何更好地继续预训练(Continue PreTraining)

news2024/9/25 9:28:44

预训练(Pretraining)是一个非常消耗资源的工作,尤其在 LLM 时代。随着LLama2的开源,越来越多人都开始尝试在这个强大的英文基座模型上进行中文增强。但,我们如何才能保证模型在既学到「中文知识」的情况下,又不丢掉原有的「英文知识」

写在前面

预训练(Pretraining)是一个非常消耗资源的工作,尤其在 LLM 时代。随着LLama2的开源,越来越多人都开始尝试在这个强大的英文基座模型上进行中文增强。但,我们如何才能保证模型在既学到「中文知识」的情况下,又不丢掉原有的「英文知识」呢?

今天给大家带来一篇 Continue Pretraining 的论文(来自何枝大佬,知乎@何枝),Continual Pre-Training of Large Language Models: How to (re)warm your model?

知乎:https://zhuanlan.zhihu.com/p/654463331paper:https://arxiv.org/pdf/2308.04014.pdf

1.实验设定

作者使用一个 410M 大小的模型 Pythia,已经在 Pile数据上进行过预训练,然后在下游数据集 SlimPajama 上进行微调。

论文中直接使用 Loss 作为评估指标,即 Loss 越小,说明在上游(或下游)任务中的效果越强。

Pythia: https://huggingface.co/EleutherAI/pythia-410m-v0
Pile: https://huggingface.co/datasets/EleutherAI/pile
SlimPajama: https://www.cerebras.net/blog/slimpajama-a-627b-token-cleaned-and-deduplicated-version-of-redpajama

2. 关键结论

2.1 warmup 的步数不会影响最终性能

warmup 是一种 finetune 中常用的策略,指学习率从一个很小的值慢慢上升到最大值。那么,这个「慢慢上升」的阶段持续多久是最好的呢?

作者分别使用训练步数的:0%, 0.5%, 1%, 2% 这 4 种不同预热步数来进行实验:图片

从上图中可以看到:当模型经过「充分」训练后,不管多长的预热步数最后的性能都差不多。

但,这种前提是「充分训练」,如果只看训练前期的话,使用更长的预热步数(黄色的线)。无论是「上游任务」还是「下游任务」,模型的 Loss 都要比其他预热步数要低(下游学的快,上游忘的慢)。

2.2 学习率越大,下游任务越好,上游任务越差

为了探究学习率对学习效果的影响,作者使用了 4 种不同的最大学习率进行对比实验,

此外,还比对了和从头训练(from scratch)模型的效果:图片

图片

从图中可以看到:经过充分训练后,学习率越大(紫色),下游性能最好,上游性能最差(忘得最多)。同样,我们看前期训练,尽管紫色线条在最后的 loss 是最低的,但在前期 loss 会增加的非常大,随后下降。

PS:解释一下这里为什么这么关注训练前期,是因为在真实训练中,我们可能不一定会增强图中所示的 250B 这么多的 tokens,尤其是在模型参数很大的情况中。所以,当资源不允许充分训练的情况下,较小的学习率和较长的 warmup 步数可能是一个不错的选择。

此外,图中还能看出:未经过预训练的模型(蓝色)无论是上游任务还是下游任务,都不如预训练过的模型效果。

这鼓励我们今天在进行训练任务时,最好选择一个已经过预训练的模型上继续训练(以利用其中的先验知识)。

2.3 在初始预训练中使用 Rewarmup 会损伤性能

尽管 warmup 策略在 Finetune 和 Continue Pretraining 中都起到了更好的效果(相较于常量学习率),但是,这建立在「切换了训练数据集(数据分布)」的前提下。

作者做了一个实验,不切换数据集,而是继续在之前的「预训练数据集(The Pile)」上继续训练:图片

从图中结果可以发现:无论使用多大学习率的 warmup 策略,效果都不如使用常量学习率。

这进一步证明,在原数据集上使用 warmup 接着训练会造成性能损伤,学习率越大则损伤越大,且这种损伤是无法在后续的训练中被找回的。

PS:这里提示我们,当预训练中遇到了训练中断需要继续训练时,我们应该在重新开始训练时将学习率恢复到中断之前的状态(无论是数值还是衰减率)。

3. 实验限制

作者在论文的最后贴出了得出上述结论的一些局限性。

3.1 上下游数据分布类似

因为实验中选用的上游数据集 [Pile] 和下游数据集 [SlimPajama] 中存在一部分的数据重叠,

所以导致上下游数据的分布是比较相似的,但在我们真实的训练任务中,上下游数据的差异可能会比这大的多。

3.2 模型规模较小

论文中所使用的模型规模为 410M,这和今天人们 7B 起步的 LLM 规模相差甚远。

不过该团队打算在接下来的工作中继续在 3B 和 7B 的规模下进行尝试,期待他们最后的实验结论。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这本PyTorch官方出品的《Deep Learning With PyTorch》终于有了中文版!

导读: 一些线上或线下的关于PyTorch的课程和大学里的计划课程,以及大量的线上博客和教程,使得PyTorch学习起来更容易。然而,关于PyTorch的图书很少。随着本书的出版,我们最终有了一本关于PyTorch的官方权威著作。 它非…

下载适用于 Linux 的 MongoDB Shell教程

下载适用于 Linux 的 MongoDB Shell教程 下载地址 MongoDB Shell Download | MongoDB 2、往下拉,选择Linux对应的版本下载

怎么快速入门大模型技术——AI大模型学习方法

“ 师父领进门,修行在个人 ” 有两个成语,一个是事半功倍,一个是事倍功半;为什么会有这种情况?‍‍‍‍‍‍‍ 原因就是方式方法的问题,有些人掌握了正确的方法就会觉得做什么事都顺风顺水,事…

电脑黑屏开不了机怎么办?教你4招轻松解决

在使用电脑的过程中,有时候会遇到电脑黑屏开不了机的情况。这种问题确实让人感到困惑和焦虑,因为它意味着硬件故障或者系统问题。本文将针对电脑黑屏开不了机的原因进行分析,并提供相应的解决方法,帮助大家快速解决这一问题。 操作…

孙宇晨:区块链领域的时代先锋,每一步引领未来趋势

​孙宇晨,这位在区块链领域崭露头角的青年企业家,凭借着敏锐的洞察力和坚定的决心,成为了数字经济时代的领航者。他的每一步,都走在技术创新的最前沿,推动着区块链技术的发展与应用,给全球经济带来了深远的…

智慧水务:“六变形战士”,这很全面!

在当今快速发展的智慧城市建设中,‌水务管理作为城市运行的重要一环,‌其智能化、‌高效化的需求日益凸显。‌为了满足这一需求,‌一款全新的智慧水务平台——“六边形战士”应运而生,‌它以“生产管网营销运营调度APP”六大核心功…

测试CUDA __threadfence的行为

CUDA __threadfence测试 一.测试小结二.复现过程三.截图 测试CUDA __threadfence的行为 一.测试小结 测例0:没有任何同步,执行到leftt0时,left的数据未加载完成,出现long soreboard的stall 405次测例1:__threadfence会等待memory数据加载完成,leftt0没有出现long scoreboard的…

基于golang实现简单的文件监控

基于golang实现简单的文件监控 package mainimport ("log""syscall""unsafe" )type FileNotifyInformation struct {Action uint32Name string }func Fswatch(path string) (chan FileNotifyInformation, error) {handle, err : syscall.Crea…

vscode中暂存块功能不能用了

vscode中暂存文件修改可以按每一处暂存,而不用一次暂存整个文件的修改,今天发现这个功能不能用了,不知道啥原因,记录一下。

华晨宇火星演唱会三登鸟巢 升级国风四面台引期待

2024华晨宇火星演唱会北京站即将于9月7日、9月8日在鸟巢举办,今年华晨宇将再度带着四面台回归鸟巢,升级后的舞台将融入国风元素,为歌迷带来一场前所未有的视听盛宴。这将是他第三次踏足鸟巢的舞台,更是他音乐旅程的里程碑。 2018年…

性能测试经典案例解析——政务查询系统

各位好,我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛,建议先赞再收藏慢慢学习,有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

【最新综述】基于机器学习的超声焊接缺陷无损检测

Machine learning for ultrasonic nondestructive examination of welding defects: A systematic review ABSTRACT 近年来,机器学习(ML)在无损检测(NDE)数据自动分析中的应用大幅增加。其中一个值得关注的应用是使用…

JS_阿里云oss视频上传后,如何获取视频封面

当您需要获取视频封面、提取视频关键帧图像进行视频编辑,或者提取视频中特定场景帧图像用于视频监控等时,可以将视频上传至OSS存储空间,然后通过本文所示方法进行视频截帧。 使用示例 本文示例使用的Bucket为杭州地域名为oss-console-img-de…

基于WhatsApp打造高效的CRM系统

背景 在 2023 年的统计数据中,WhatsApp 成为了印尼最常用的社交媒体,拥有高达 2.2 亿的用户量,占据印尼互联网人群的 90%之多。 WhatsApp 开发的 WhatsApp Business API 为企业开辟了一条与客户进行大规模、高效且合规沟通的崭新途径。它使…

美联储降息在即:加密市场风云再起,机遇与挑战并存

随着全球金融市场日益与加密货币市场的波动紧密相连,美联储的货币政策调整正成为加密市场的重要风向标。今年以来,比特币等主流加密货币反复跟随全球市场震荡,宏观经济指标对加密市场的影响愈加显著。尤其是美国联邦基金利率的变动&#xff0…

【QA】软件产品在确定使用期限时应关注哪些问题?

版权说明:本文来源【国家药品监督管理局】,如果您认为我们的文中描述与事实不符或有侵权行为,请及时联系我们。感谢您的关注。

2025届必备:如何打造Java SpringBoot大型超市数据处理系统,提升管理效率,最新攻略!

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

生信软件33 - Wgsim生成双端(PE) fastq模拟数据

1. Wgsim(Whole genome simulation)简介 wgsim是可用于高通量数据模拟的软件,可以模拟出illumina测序数据,并且可以自由调整测序reads的读长,插入片段大小以及错误率等, 是开发BWA等大牛Li heng编写的基因…

Windows bat脚本学习九(srec_cat)

一、简介 srec_cat是一个在嵌入式开发中,使用非常频繁的软件,这里做个常用功能的介绍。 二、常用参数 文件类型 在使用srec_cat指令时,在输入文件和输出文件时,要指明文件的类型,如: input.hex -intel …

木舟0基础学习Java的第二十六天(JavaWeb)

设置响应头 resp.setHeader("key","nihao");//推荐使用英文 中文会乱码 案例:模拟登录 jdbc.properties driverClasscom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/test?verifyServerCertificatefalse&useSSLfalse nameroot p…