LongLoRA:高效扩展大语言模型上下文长度的微调方法

论文地址:https://arxiv.org/abs/2309.12307
github地址:https://github.com/dvlab-research/LongLoRA

1. 背景与挑战

大语言模型(LLMs)通常在预定义的上下文长度下进行训练,例如 LLaMA 的 2048 个 token 和 Llama2 的 4096 个 token。然而,这种预定义的上下文长度限制了模型在处理长文档或回答长问题时性能。

主要挑战:

  • 计算成本高昂: 扩展上下文长度会导致自注意力机制的计算成本呈二次增长,显著增加训练时间和 GPU 内存需求。例如,将上下文长度从 2048 扩展到 8192 会使自注意力层的计算成本增加 16 倍。
  • 现有微调方法的局限性:
    • 全量微调: 虽然效果最佳,但计算成本过高,普通研究者难以承受。例如,Position Interpolation 需要 32 个 A100 GPU 来将 LLaMA 模型从 2k 扩展到 8k 上下文长度,更长的上下文则需要 128 个 A100 GPU。
    • 低秩适应(LoRA): 虽然比全量微调更高效,但在长上下文扩展方面效果不佳,困惑度较高。

2. LongLoRA:高效扩展上下文长度的解决方案

LongLoRA 旨在以更低的计算成本高效地扩展预训练 LLMs 的上下文长度,同时保持与全量微调相近的性能。

2.1 主要创新点
  1. Shifted Sparse Attention (ΔS²-Attn): 一种高效的注意力机制替代方案,用于在训练过程中近似标准自注意力。

    • 工作原理:
      • 将上下文长度分割成若干组,在每组内独立进行注意力计算。
      • 在一半的注意力头中,将 token 序列偏移半个组大小,以确保相邻组之间的信息流动。
      • 例如,使用组大小为 2048 的 ΔS²-Attn 来近似总长度为 8192 的上下文训练。
    • 优势:
      • 高效性: 显著降低计算成本,与标准注意力相比,训练速度提升高达 1.8 倍。
      • 灵活性: 在推理时仍使用标准自注意力,因此可以复用现有的优化和基础设施,例如 Flash-Attention2。
      • 易于实现: 仅需两行代码即可实现。


    图 1:LongLoRA 的工作流程图,展示了在微调过程中引入的 Shifted Sparse Attention (ΔS²-Attn)。训练后的模型在推理时保留原始的标准自注意力。

  2. 改进的 LoRA: 通过使嵌入层和归一化层可训练,弥合了 LoRA 与全量微调之间的性能差距。

    • 原因: 嵌入层和归一化层虽然在整个 LLM 中占比较小,但在长上下文扩展中起着关键作用。例如,在 Llama2 7B 中,归一化层的参数占比仅为 0.004%。
    • 效果: 显著提升了长上下文扩展的性能,缩小了与全量微调的差距。


    图 2:不同微调方法在长上下文扩展中的困惑度对比。可以看出,改进后的 LoRA (LoRA+) 显著缩小了与全量微调的差距。

2.2 实验结果
  • 长序列语言建模: LongLoRA 在 PG19 和 proof-pile 数据集上的表现优于基线模型,表明其高效微调方法的有效性。

    • 例如,将上下文窗口大小从 8192 增加到 32768,Llama2 7B 模型的困惑度从 2.72 降低到 2.50。
  • 检索任务评估: 在 LongChat 引入的主题检索任务中,LongLoRA 模型与最先进的 LongChat-13B 性能相当,甚至在 16k 评估中略有优势。

  • 长上下文基准评估: 在 LongBench 和 LEval 基准测试中,LongLoRA 7B 模型表现出与基于 Llama2 的长上下文模型(如 Vicuna 和 LongChat)相当或更好的性能。

  • 效率分析:

    • 训练成本: LongLoRA 相比全量微调,训练时间和 GPU 内存需求显著降低。
      • 例如,在 65536 上下文长度下,LongLoRA 的训练时间仅为 LoRA 的 56.6%。
    • FLOPs 消耗: ΔS²-Attn 显著降低了 FLOPs 消耗,尤其是在长上下文长度下。


    图 3:不同上下文长度下 Llama2 7B 模型的 FLOPs 消耗分解。可以看出,随着上下文长度的增加,注意力计算的比例急剧增加,而 ΔS²-Attn 有效降低了注意力计算的 FLOPs。

3. 结论

LongLoRA 提供了一种高效扩展 LLMs 上下文长度的方法,具有以下优势:

  • 计算效率高: 相比标准全量微调,GPU 内存需求和训练时间更少,同时精度损失最小。
  • 架构兼容性: ΔS²-Attn 易于实现,训练后的模型在推理时保留原始的标准注意力架构,便于复用现有基础设施。
  • 性能优越: 在长上下文扩展方面,LongLoRA 实现了与全量微调相近的性能。

4. 未来展望

LongLoRA 是一种通用方法,未来可以与更多类型的 LLMs 和位置编码技术相结合,进一步提升其适用性和性能。

5. 补充说明

  • 实验设置: 所有实验均在单个 8x A100 机器上进行,使用 PyTorch、DeepSpeed 和 Flash-Attention2 进行训练。
  • 数据集: 使用 Redpajama 数据集进行训练,在 PG19 和 proof-pile 数据集上进行评估。
  • SFT(监督微调): 为了提高模型的问答能力,LongLoRA 进一步使用自收集的长指令跟随数据集 LongAlpaca 进行 SFT。

通过这些创新和实验结果,LongLoRA 为高效扩展 LLMs 的上下文长度提供了新的思路和方法。

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

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

相关文章

.NET9增强OpenAPI规范,不再内置swagger

ASP.NETCore in .NET 9.0 OpenAPI官方文档ASP.NET Core API 应用中的 OpenAPI 支持概述 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/openapi/overview?viewaspnetcore-9.0https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/ope…

景联文科技加入AIIA联盟数据标注分委会

2025年1月16日,中国人工智能产业发展联盟(简称AIIA)数据委员会数据标注分委会(以下简称“分委会”)正式成立。景联文科技成为第一批AIIA联盟数据标注分委会委员单位。 数据标注分委会的成立旨在搭建数据标注领域产学研…

SQL Server 建立每日自动log备份的维护计划

SQLServer数据库可以使用维护计划完成数据库的自动备份,下面以在SQL Server 2012为例说明具体配置方法。 1.启动SQL Server Management Studio,在【对象资源管理器】窗格中选择数据库实例,然后依次选择【管理】→【维护计划】选项&#xff0…

Level DB --- TableBuilder

TableBuilder是Level DB里面重要的类和模块,它描述了数据如何序列化到文件中,以及数据里面的格式逻辑。它里面包含了之前介绍的多个模块和类。 data block、filter block和index block block格式,之前已经介绍过Level DB --- BlockBuilder-…

【esp32-uniapp小程序】uniapp小程序篇02——Hbuilder利用git连接远程仓库

一、安装git Git - Downloading Package 下载所需的安装包,点击安装,一路跟着安装指示就行。 二、安装ToriseGit Download – TortoiseGit – Windows Shell Interface to Git 语言包可下载可不下载,软件默认语言是英语。 如果下载了语言…

Java Web-Tomcat Servlet

Web服务器-Tomcat Web服务器简介 Web 服务器是一种软件程序,它主要用于在网络上接收和处理客户端(如浏览器)发送的 HTTP 请求,并返回相应的网页内容或数据。以下是关于 Web 服务器的详细介绍: 功能 接收请求&#…

MiniMax-01中Lightning Attention的由来(线性注意力进化史)

目录 引言原始注意力线性注意力因果模型存在的问题累加求和操作的限制Lightning AttentionLightning Attention-1Lightning Attention-2 备注 引言 MiniMax-01: Scaling Foundation Models with Lightning Attention表明自己是第一个将线性注意力应用到如此大规模的模型&#…

Linux 内核进程调度

一、进程的分类 在CPU的角度看进程行为的话,可以分为两类: CPU消耗型:此类进程就是一直占用CPU计算,CPU利用率很高。IO消耗型:此类进程会涉及到IO,需要和用户交互,比如键盘输入,占用…

BLE透传方案,IoT短距无线通信的“中坚力量”

在物联网(IoT)短距无线通信生态系统中,低功耗蓝牙(BLE)数据透传是一种无需任何网络或基础设施即可完成双向通信的技术。其主要通过简单操作串口的方式进行无线数据传输,最高能满足2Mbps的数据传输速率&…

Linux 入门 常用指令 详细版

欢迎来到指令小仓库!! 宝剑锋从磨砺出,梅花香自苦寒来 什么是指令? 指令和可执行程序都是可以被执行的-->指令就是可执行程序。 指令一定是在系统的每一个位置存在的。 1.ls指令 语法: ls [选项][目…

Node.js下载安装及环境配置

目录 一、下载 1. 查看电脑版本,下载对应的安装包 2. 下载路径下载 | Node.js 中文网 二、安装步骤 1. 双击安装包 2. 点击Next下一步 3. 选择安装路径 4. 这里我选择默认配置,继续Next下一步(大家按需选择) 5. 最后inst…

为什么在编程中cast有强制类型转换的意思?

C语言或C在编程时,常常遇到“XXX without a cast”的警告信息,意思是 XXX 没有进行显示的强制类似转换,那么cast为什么会有强制类型转换的意思呢? 从英语的本义来看,cast 有“塑造、铸造”的意思。引申到编程中&#…

Spring Boot(6)解决ruoyi框架连续快速发送post请求时,弹出“数据正在处理,请勿重复提交”提醒的问题

一、整个前言 在基于 Ruoyi 框架进行系统开发的过程中,我们常常会遇到各种有趣且具有挑战性的问题。今天,我们就来深入探讨一个在实际开发中较为常见的问题:当连续快速发送 Post 请求时,前端会弹出 “数据正在处理,请…

瑞芯微方案:RV1126定制开发板方案定制

产品简介 RV1126 核心板是常州海图电子科技有限公司推出的一款以瑞芯微 RV1126处理器为核心的通用产品,其丰富的设计资源、稳定的产品性能、强力的设计支持,为客户二次开发快速转化产品提供强有力的技术保障。RV1126 核心板集多种优势于一身&#xff0c…

VB6.0 显示越南语字符

近期接到客户咨询,说是VB6.0写软件界面上显示越南语乱码,需要看看怎样解决。 我在自己电脑上也试了下,确实显示越南语结果是乱码。编辑器里乱码,运行起来界面上也是乱码。 经过一天的折腾,算是解决了问题&#xff0c…

理解C++中的右值引用

右值引用,顾名思义,就是对一个右值进行引用,或者说给右值一个别名。右值引用的规则和左值一用一模一样,都是对一个值或者对象起个别名。 1. 右值引用和左值引用一样,在定义的同时必须立即赋值,如果不立即赋…

unity.NavMesh Agent

这张图片展示的是Unity中 NavMesh Agent 组件的参数设置。NavMesh Agent 是Unity中用于实现角色自动寻路和移动的组件。下面我会通俗易懂地讲解这些参数的作用: 1. Agent Type(代理类型) 作用:定义代理的类型,比如是人…

83,【7】BUUCTF WEB [MRCTF2020]你传你[特殊字符]呢

进入靶场 图片上这个人和另一道题上的人长得好像 54,【4】BUUCTF WEB GYCTF2020Ezsqli-CSDN博客 让我们上传文件 桌面有啥传啥 /var/www/html/upload/344434f245b7ac3a4fae0a6342d1f94a/123.php.jpg 成功后我就去用蚁剑连了,连不上 看了别的wp知需要…

自签证书的dockerfile中from命令无法拉取镜像而docker的pull命令能拉取镜像

问题现象: docker pull images拉取镜像正常 dockerfile中的from命令拉取镜像就会报出证书错误。报错信息如下: [bjxtbwj-kvm-test-jenkins-6-243 ceshi_dockerfile]$ docker build . [] Building 0.4s (3/3) FINISHED …

在小红书挖掘信息的实践之旅(第一部分)

摘要 在信息爆炸时代,小红书承载大量用户真实生活分享,蕴含未挖掘价值。作者因日常观察到朋友常依赖小红书经验分享,决定尝试挖掘其中信息。在实践初期,受 DeepSeek 建议启发,确定 “以关键词为线索,层层递…