论文解读 | EMNLP2024 一种用于大语言模型版本更新的学习率路径切换训练范式

点击蓝字

ae148d5f2c93be30b5254b52294cc51f.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

ea0f44fcf04d08bb15a80ac3a5818a28.png

点击 阅读原文 观看作者讲解回放!

作者简介

王志豪,厦门大学博士生

刘诗雨,厦门大学硕士生

内容简介

新数据的不断涌现使版本更新成为大型语言模型(LLMs)不可或缺的需求。LLMs的版本更新训练范式包括从头预训练(PTFS)和继续预训练(CPT)。初步实验表明,PTFS在预训练性能上表现更好,而CPT的训练成本较低。此外,随着版本更新的进行,两种范式的性能和训练成本差距逐渐扩大。为探究这一现象的根本原因,作者分析了学习率对CPT的两个阶段的影响:准备初始化参数(checkpoint)和基于该checkpoint的继续预训练。研究表明,在第一阶段中使用较大学习率以及在第二阶段中使用具有完整率衰减过程的学习率对于LLMs的版本更新至关重要。因此,作者提出了一种基于学习率路径切换的训练范式。该范式包括一条主路径和多条分支路径。LLMs在主路径上以最大学习率进行预训练,而分支路径则基于LLMs在主路径上的checkpoints使用新增数据进行版本更新。广泛的实验表明该范式的有效性和泛化性。特别是在训练4个版本的LLMs时,该范式在保持与PTFS相当的预训练性能同时,将总训练成本减至58%。

论文地址:https://arxiv.org/abs/2410.04103

研究动机

这篇论文的研究动机在于,随着新的预训练数据不断涌现,大型语言模型(LLMs)面临着版本更新的需求,以确保模型能力的持续提升。现有的版本更新范式包括从头预训练(Pre-Training From Scratch,简称PTFS)和继续预训练(Continue Pre-Training,简称CPT)。图中列出了这两种范式在使用cosine学习率调度策略时的学习曲线。可以明显看到,两种范式之间的主要区别在于更新过程中的学习率变化。这启发了作者从学习率角度出发,研究新的预训练范式。

46837a1f390baa4e6ac677414ad14776.png

先导实验

为了比较这两种范式在性能和成本上的差异,作者进行了一个先导实验。实验选择了训练LLMs时最常见的3种学习率调度策略,测试在更新4个版本LLMs情况下的性能和成本差距。需要注意的是,这里的性能用困惑度(Perplexity,PPL)来表示,数值越低代表LLMs性能越好。

从实验结果可以观察到,尽管CPT的版本更新成本远低于PTFS,但PTFS的性能优于CPT,而且这种性能差距随着版本数的增加而增大。

27a38635883de3f9743e441f9313af57.png

性能差距增大的原因

为了研究这种性能差距产生的原因,作者将CPT拆分成两个阶段。第一个阶段是为CPT准备初始参数(checkpoint),第二个阶段是基于初始checkpoint进行继续训练。紧接着,作者基于这两个阶段,分别设计两组实验来探索学习率对CPT两个阶段的影响。

在第一组实验中,作者采用具有不同衰减速度的学习率作为第一阶段的学习率曲线,并固定了第二阶段的学习率曲线。结果表明,当第一阶段的学习率固定为最大值时,初始checkpoint的模型性能最低,但最终性能却是最好的。

在第二组实验中,作者固定了第一阶段的学习率曲线,采用具有不同衰减速度的学习率作为第二阶段的学习率曲线。结果显示,当第二阶段学习率快速衰减到最小值时,对应的LLMs性能最佳。

基于上述两组实验我们可以得出如下结论:1.第一阶段的大学习率和第二阶段完整的学习率衰减过程对CPT的性能尤为重要。2. CPT无法兼顾不同版本LLMs的性能。完整的学习率衰减过程能确保当前版本的LLMs的最优性能,但后续版本的LLMs则需要以大学习率训练提供的初始化checkpoint,这是CPT无法同时满足的。

1b68def433351995a81ff4bf1442a9c3.png

训练范式

为了解决CPT两阶段对不同学习率要求的冲突,作者提出了一种基于学习率路径切换的训练范式。该范式包括一条主路径和多条分支路径。在主路径上,LLMs以最大学习率从头开始预训练,为后续版本更新提供初始化checkpoint。当我们想获得新版的LLMs时,可以直接基于主路径的当前checkpoint继续预训练。在这个过程中,学习率会经历一个完整且快速的衰减过程,从而以较低的成本来保证新版LLMs的性能。同时,在主路径上LLMs仍然使用新增数据对当前checkpoint以最大学习率进行预训练,以便于后续的版本更新。

不同于PTFS和CPT,该范式还包含关键超参数α用于控制分支路径在训练步长中所占的比例。根据版本更新的总时间复杂度计算,该范式与CPT一样,确保了线性的复杂度。

2b49d82e98fe17d50d480c4e1c86caf9.png

关键参数实验

对于本文提出的范式,参数α是一个关键参数。α值越高,模型的性能相对越好,但总的训练成本也会相应增加。根据对不同α值的实验结果,作者选择了α等于0.6作为最终参数。

2f8eab31125e29eb53c116e9da4c3930.png

预训练性能

基于三种学习率调度策略下,作者测试了所提出的预训练范式、PTFS及CPT各自的性能和成本。结果显示,所提出的范式在性能和训练成本上取得了更佳的平衡。在实现与PTFS相当性能的同时,仅需要58%的训练成本。

63064ab2a5a841b32e475f46b5997bbc.png

下游任务性能

在9个常见的下游任务中,经过微调训练后,作者的范式取得了最优的平均性能。

daf35d429da5319c9de64bedc768506e.png

泛化性

模型结构和参数规模

为了验证本文范式在模型结构和参数规模上的泛化性,作者不仅在LLaMA结构上进行了实验,还在Qwen模型结构上进行了实验。此外,作者还在不同参数规模下进行了测试。结果证明,该范式具有良好的泛化性能。

3f894c09340b089dd253c45a0131693a.png

数据规模和最大学习率

并且,作者还测试了在不同数据规模和不同最大学习率设置下所提出范式的性能。结果表明,该范式在不同数据规模和学习率设置下表现出良好的性能,进一步验证了其适用性和泛化性。

6de189738fe48367e02da9a73f10b95a.png

实际应用与未来工作

最后,目前该范式已经实际应用于vivo蓝心基础大模型的研发中。对于未来的工作,作者计划将视角聚焦于大模型版本更新过程中可能存在的更多待解决场景。例如,在更新过程中,同时伴随模型参数规模的扩展、模型结构的调整,以及版本更新在监督微调(SFT)或对齐(alignment)阶段中的应用。

2ad888782114d8fa25cbf6abd6ce91c7.png

本期文章由陈研整理

往期精彩文章推荐

446094ce859ca62d307e584062d284d6.jpeg

迈向AGI——大模型创新体验嘉年华邀请函

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了2000多位海内外讲者,举办了逾700场活动,超800万人次观看。

 41d666e1361251598d880c7ab65fa5f3.png

我知道你 

在看

提出观点,表达想法,欢迎 

留言

b2e11938e64126deb46fb83a46b44eb6.gif

点击 阅读原文 观看作者讲解回放!

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

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

相关文章

Android OpenGl(二) Shader

一、Shader 1、什么是Shader,为什么要使用Shder (1)shader运行在gpu上的小程序 (2)以前使用固定管线,但缺点是灵活度不够,无法满足复杂需求,为了解决固定管线的缺点,出…

软考:系统架构设计师教材笔记(持续更新中)

教材中的知识点都会在。其实就是将教材中的废话删除,语言精练一下,内容比较多,没有标注重点 系统架构概述 定义 系统是指完成某一特定功能或一组功能所需要的组件集,而系统架构则是对所有组件的高层次结构表示,包括各…

TDengine 新功能 VARBINARY 数据类型

1. 背景 VARBINARY 数据类型用于存储二进制数据,与 MySQL 中的 VARBINARY 数据类型功能相同,VARBINARY 数据类型长度可变,在创建表时指定最大字节长度,使用进按需分配存储,但不能超过建表时指定的最大值。 2. 功能说明…

虚拟机桥接模式

主机Win10,虚拟机xp 1.虚拟机设置中选择桥接模式 2.在虚拟机菜单:编辑>虚拟机网络编辑,点击“更改设置”,可以看到三个网卡,这三个网卡分别对应不同的网络共享模式。桥接模式须使用VMnet0,如果没看到这个网卡&…

游戏开发线性空间下PS工作流程

前言 使用基于物理的渲染,为了保证光照计算的准确,需要使用线性空间; 使用线性空间会带来一个问题,ui 在游戏引擎中的渲染结果与 PS 中的不一致: PS(颜色空间默认是sRGB伽马空间)&#xff1a…

MAC M4安装QT使用国内镜像源在线安装

MAC M4安装QT使用国内镜像源在线安装 一、下载安装包1. 访问[https://www.qt.io/](https://www.qt.io/)下载在线安装包2. 下载结果 二、创建QT账户,安装的时候需要三、安装1. 终端打开安装包2. 指定安装源3. 运行安装完的QT 一、下载安装包 1. 访问https://www.qt.…

Linux应用软件编程-多任务处理(线程)

线程:轻量级的进程,线程的栈区独立(8M),与同一进程中的其他线程共用进程的堆区,数据区,文本区。 进程是操作系统资源分配的最小单位;线程是cpu任务调度的最小单位。 1. 线程的创建…

BFS中的多源BFS、最小步数模型和双端队列广搜

多源BFS 多源BFS时有从多个源点出发的bfs算法,只需要将多个源点都连一条边权为0的边到虚拟源点,那么问题就等价于从虚拟源点开始BFS。 一开始直接将所有源点加入BFS的队列即可. 173. 矩阵距离 给定一个 N N N 行 M M M 列的 01 01 01 矩阵 A A A, A [ i ] […

分布式版本管理工具——git 中忽略文件的版本跟踪(初级方法及高级方法)

git工具忽略指定文件的版本跟踪 一、简单方式实现二、复杂方式实现(模式匹配)1. 相关规则2. 应用案例a) 忽略所有内容b) 忽略所有目录(不忽略当前目录的具体文件)c)忽略指定目录下的所有文件,但排除某文件d&#xff09…

Bash Shell知识合集

1. chmod命令 创建一个bash shell脚本 hello.sh ~script $ touch hello.sh脚本创建完成后并不能直接执行,我们要用chmod命令授予它可执行的权限: ~script $ chmod 755 hello.sh授权后的脚本可以直接执行: ~script $ ./hello.sh2.指定运行…

1225. 报告系统状态的连续日期 - 力扣(LeetCode)

目录 1. 力扣链接 2. 题目 3. 分析 4. 代码实现 5. 代码验证 6. 总结 1. 力扣链接 1225. 报告系统状态的连续日期 - 力扣(LeetCode) 2. 题目 表:Failed ----------------------- | Column Name | Type | -----------------------…

jenkins集成工具(一)部署php项目

目录 什么是CI 、CD Jenkins集成工具 一、Jenkins介绍 二、jenkins的安装和部署 环境部署 安装jenkins 安装gitlab 配置镜像源进行安装 修改密码 安装git工具 上传测试代码 Jenkins部署php项目wordpress 发布php代码 安装插件 测试代码发布 实现发布成功发送邮件…

拉链表,流⽔表以及快照表的含义和特点

拉链表 含义 拉链表主要用于记录数据的历史变化情况。从数据结构角度看,它的每条记录都包含了一个实体(如客户、产品等)的关键信息以及两个时间戳字段,即起始日期(Start_Date)和结束日期(End_Da…

Mysql数据库中,监测某张表中某字段的修改情况(被哪个ip所修改、新老值)

在Mysql数据库中,通过写一个触发器,来监测某张表(q_device)字段(run_status)的改变情况。 【示例】 -- 1. 创建监测日志表 CREATE TABLE change_log (id INT AUTO_INCREMENT PRIMARY KEY,table_name VARCHAR(255),column_name VARCHAR(255),old_value T…

STM32F103RCT6学习之一:基本开发流程

开发方式 1.基于寄存器开发---与51类似 2.基于标准库开发----基于寄存器进行函数的封装 3.基于HAL库开发----对标准库进行更深入的封装,有句柄、回调函数等概念 STM32Cube 一种STM32硬件配置开发工具,可根据需要生成项目模版 1.选择芯片 2.配置管…

FreeRTOS中xPortPendSVHandler()和vPortSVCHandler()这两个函数的作用

在 FreeRTOS 中,xPortPendSVHandler() 和 vPortSVCHandler() 是两个重要的中断服务例程(ISR),它们负责处理与操作系统相关的异常。这些函数对于实现上下文切换和任务管理至关重要。下面分别解释这两个函数的作用: xPo…

汽车IVI中控开发入门及进阶(46):FFmpeg

概述: FFmpeg 是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流、过滤和播放 几乎所有人类和机器创建的东西。它支持最模糊的古老格式,直到最前沿。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的可移植性:FFmpeg 在各种构建环境、机器架构…

.NET平台用C#通过字节流动态操作Excel文件

在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据。这种方法允许开发者直接在内存中创建、修改和保存Excel文档,无需依赖直接的文件储存、读取操作,从而提高了程序的性能和安全性。使用流技术处理Excel不仅简化了…

将多个 k8s yaml 配置文件合并为一个文件

如下bash脚本实现功能 “将多个k8s的yaml 配置文件” 合并为一个 yaml,使用 --- 分割文件配置。 创建文件 merge_yaml.sh ,内容如下: #!/bin/bash# 默认参数 input_patterns() # 匹配的文件模式数组 output_file"combined.yaml"…

Word论文交叉引用一键上标

Word论文交叉引用一键上标 1.进入Microsoft word使用CtrlH快捷键或单击替换按钮 2.在查找内容中输入[^#] 3.鼠标点击,标签为“替换为:”的文本框,注意光标一定要打在图红色方框圈中的文本框中! 4.点击格式选择字体 5.勾选上标…