扩展LLaMA2上下文至100k:MIT和港中文采用LongLoRA方法
来源:51CTO.COM
时间:2023-10-08 22:13:57 447浏览 收藏
哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《扩展LLaMA2上下文至100k:MIT和港中文采用LongLoRA方法》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!
通常情况下,大型预训练模型的文本长度是固定的。如果想要支持更长的文本,就需要对模型进行微调。然而,训练具有长上下文的语言模型的计算成本非常高,需要大量的训练时间和GPU资源
举个例子,如果要训练一个具有8192长度上下文的模型,相比于2048长度上下文,需要16倍的计算资源。尽管如此,上下文长度对于模型性能非常重要,因为它代表了LLM在回应时对整个上下文的清晰理解能力
最近,麻省理工学院与香港中文大学合作研究,提出了LongLoRA。这是一种高效的微调方法,能够在有限的计算成本下扩展预训练的大型语言模型的上下文大小
论文地址:https://arxiv.org/pdf/2309.12307.pdf
项目地址:https://github.com/dvlab-research/LongLoRA 可以在这个链接上找到项目
本文旨在加快LLM的上下文扩展,从两个方面进行了改进
一方面,尽管在推理过程中需要密集的全局注意力,但通过稀疏的局部注意力可以有效且高效地对模型进行微调。本文提出的"移动短注意力"方法有效地实现了上下文扩展,节省了大量的计算,与使用传统的注意力机制进行微调的性能相似
另一方面,LoRA在可训练嵌入和归一化的前提下,在上下文扩展方面表现出色。LongLoRA在LLaMA2模型的各种任务中,从7B/13B扩展到70B,都展现出了很好的结果。在单台8x A100设备上,LongLoRA将LLaMA2 7B的上下文扩展到100k,LLaMA2 70B扩展到32k。LongLoRA扩展了模型的上下文,同时保留了其原始架构,并且与大多数现有技术兼容,如FlashAttention-2。为了使LongLoRA更实用,研究者收集了一个名为LongQA的数据集,用于监督微调。该数据集包含超过3k个长上下文问题-答案对
LongLoRA 是一种能够在注意力水平和权重水平上加速预训练大型语言模型上下文扩展的方法。以下是其亮点:
- 短暂的注意力转移 易于实现,与 Flash-Attention 兼容,且在推理过程中不需要使用。
- 发布了所有模型,包括从 7B 到 70B 的模型,上下文长度从 8k 到 100k,包括 LLaMA2-LongLoRA-7B-100k、LLaMA2-LongLoRA-13B-64k 和 LLaMA2-LongLoRA-70B-32k。
- 建立了一个长上下文 QA 数据集 LongQA,用于监督微调。研究者已经发布了 13B 和 70B 32k 型号的 SFT、Llama-2-13b-chat-longlora-32k-sft 和 Llama-2-70b-chat-longlora-32k-sft,并将在下个月发布数据集。
LongLoRA 技术细节
短暂的注意力转移
标准自注意力模式的计算开销为 O (n^2 ),使得长序列上的 LLM 内存开销高且速度慢。为了在训练中避免这个问题,本文提出了 shift short attention(S^2 -Attn),如下图 2 所示。
研究人员验证了微调的重要性,如表1所示。如果不进行微调,在上下文长度增加的情况下,即使模型配备了适当的位置嵌入,其性能也会下降
现有的 efficient attention 设计也可以提高长上下文语言模型的效率。在下表 2 中,研究者将 S^2 -Attn 与几种典型的 efficient attention 进行了比较,可以发现,前者不仅能够实现高效的微调,还支持 full attention 测试。
此外,S^2 -Attn 的实现非常简单,只需要两个步骤:(1) 转换半注意力头中的令牌 (2) 将令牌特征的维度移至批次维度。这个过程只需要几行代码即可完成
改进长距离低功耗广域网(LoRA)的内容
LoRA 是一种有效且流行的方法,可使 LLM 适应其他数据集。与完全微调相比,它节省了很多可训练参数和内存成本。然而,将 LLM 从短上下文长度调整为长上下文长度并不容易。研究者观察到 LoRA 和完全微调之间存在明显的差距。如下表 3 所示,随着目标上下文长度的增大,LoRA 和完全微调之间的差距也会增大。
为了弥补这一差距,研究者打开嵌入层和归一化层进行训练。如表 3 所示,它们占用的参数有限,但对长上下文适应有影响。特别是归一化层,在整个 LLaMA2 7B 的参数占比仅为 0.004%。在实验中,研究者将这种改进的 LoRA 表示为 LoRA+。
实验及结果
研究者扩展了预训练的 7B、13B 和 70B LLaMA2 模型。7B 模型的最大扩展上下文窗口大小为 100k,13B 模型的最大扩展上下文窗口大小为 65536,70B 模型的最大扩展上下文窗口大小为 32768。
研究者在研究中沿用了 Position Interpolation 的大部分训练超参数。不过,由于只使用了单台 8×A100 GPU 设备,在某些情况下批大小更小。所有的模型都通过预测下一个 token 来进行微调。研究者使用了 AdamW 优化器,其中 β_1 = 0.9,β_2 = 0.95。7B 和 13B 模型的学习率设定为 2 × 10^−5,而 70B 模型的学习率设定为 10^−5
他们还使用了线性学习率预热。权重衰减为零。每台设备的批大小设为 1,梯度累积步骤设为 8,这意味着使用 8 个 GPU,全局批大小等于 64。模型进行了 1000 步的训练。
研究者使用 Redpajama 数据集进行训练,并构建了一个长上下文 QA 数据集 LongQA,用于监督微调。Redpajama 微调的模型呈现了良好的困惑度,但它们的聊天能力是有限的。研究者收集了超过 3k 个问题 - 答案对,它们都是与技术论文、科幻小说和其他书籍等材料有关的。设计的问题包括总结、关系、人物等。
根据表格4,我们可以观察到在相同的训练和评估上下文长度下,随着上下文大小的增加,困惑度逐渐降低
在下表 5 中,研究者进一步考察了在单台 8×A100 设备上可微调的最大上下文长度。他们分别将 LLaMA2 7B、13B 和 70B 扩展到 100k、65536 和 32768 上下文长度。LongLoRA 在这些超大设置上取得了令人满意的结果。此外,实验还发现扩展模型在较小的上下文长度上会出现一些困惑度下降。
在下表 6 中,研究者将模型与其他开放式 LLM 在 LongChat 中引入的主题检索任务上进行比较。这个任务是从很长的对话中检索目标话题,对话长度从 3k、6k、10k、13k 到 16k 不等。
需要进行重新书写的内容是:消融实验
在第七个表格中,研究人员对LLaMA2 7B进行了不同类型的层细分。他们对FLOPs进行了分析:随着上下文长度的增加,全注意力机制的比例也急剧增加。例如,在上下文长度为8192时,全注意力机制占总FLOP的24.5%,而在上下文长度为65536时,增至72.2%。而当使用S^2-Attn时,比例下降至39.4%
下表8展示了在PG19验证集上扩展到8192上下文长度时,LLaMA2 7B模型的复杂度与微调步骤之间的关系。可以发现,如果不进行微调,在第0步时,模型的长上下文能力有限。完全微调比低阶训练收敛得更快。两者在200步后逐渐接近,最后没有出现大的差距
在微调过程中,不同的注意力模式的效果如下表2所示
内容展示
经过阅读《哈利・波特》的内容后,这个模型能够解释为什么斯内普对哈利不友好,甚至能够总结出人物之间的关系
不仅如此,给它一篇论文,还能帮助你立刻了解相关信息。
更多详细内容,请参阅原文。
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于科技周边的相关知识,也可关注golang学习网公众号。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
182 收藏
-
249 收藏
-
118 收藏
-
362 收藏
-
264 收藏
-
267 收藏
-
154 收藏
-
212 收藏
-
314 收藏
-
486 收藏
-
340 收藏
-
148 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习