LLaMA2上下文长度暴涨至100万tokens,只需调整1个超参数
来源:51CTO.COM
时间:2023-10-21 14:29:42 360浏览 收藏
小伙伴们对科技周边编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《LLaMA2上下文长度暴涨至100万tokens,只需调整1个超参数》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!
只需微调一下,大模型支持上下文大小就能从1.6万tokens延长至100万?!
还是在只有70亿参数的LLaMA 2上。
要知道,即使是当前最火的Claude 2和GPT-4,支持上下文长度也不过10万和3.2万,超出这个范围大模型就会开始胡言乱语、记不住东西。
现在,一项来自复旦大学和上海人工智能实验室的新研究,不仅找到了让一系列大模型提升上下文窗口长度的方法,还发掘出了其中的规律。
按照这个规律,只需调整1个超参数,就能确保输出效果的同时,稳定提升大模型外推性能。
外推性,指大模型输入长度超过预训练文本长度时,输出表现变化情况。如果外推能力不好,输入长度一旦超过预训练文本长度,大模型就会“胡言乱语”。
所以,它究竟能提升哪些大模型的外推能力,又是如何做到的?
大模型外推能力提升“机关”
这种提升大模型外推能力的方法,和Transformer架构中名叫位置编码的模块有关。
事实上,单纯的注意力机制(Attention)模块无法区分不同位置的token,例如“我吃苹果”和“苹果吃我”在它眼里没有差异。
因此需要加入位置编码,来让它理解词序信息,从而真正读懂一句话的含义。
目前的Transformer位置编码方法,有绝对位置编码(将位置信息融入到输入)、相对位置编码(将位置信息写入attention分数计算)和旋转位置编码几种。其中,最火热的要属旋转位置编码,也就是RoPE了。
RoPE通过绝对位置编码的形式,实现了相对位置编码的效果,但与相对位置编码相比,又能更好地提升大模型的外推潜力。
如何进一步激发采用RoPE位置编码的大模型的外推能力,也成为了最近不少研究的新方向。
这些研究,又主要分为限制注意力和调整旋转角两大流派。
限制注意力的代表研究包括ALiBi、xPos、BCA等。最近MIT提出的StreamingLLM,可以让大模型实现无限的输入长度(但并不增加上下文窗口长度),就属于这一方向的研究类型。
△图源作者
调整旋转角的工作则更多,典型代表如线性内插、Giraffe、Code LLaMA、LLaMA2 Long等都属于这一类型的研究。
△图源作者
以Meta最近爆火的LLaMA2 Long研究为例,它就提出了一个名叫RoPE ABF的方法,通过修改一个超参数,成功将大模型的上下文长度延长到3.2万tokens。
这个超参数,正是Code LLaMA和LLaMA2 Long等研究找出的“开关”——
旋转角底数(base)。
只需要微调它,就可以确保提升大模型的外推表现。
但无论是Code LLaMA还是LLaMA2 Long,都只是在特定的base和续训长度上进行微调,使得其外推能力增强。
是否能找到一种规律,确保所有用了RoPE位置编码的大模型,都能稳定提升外推表现?
掌握这个规律,上下文轻松100w+
来自复旦大学和上海AI研究院的研究人员,针对这一问题进行了实验。
他们先是分析了影响RoPE外推能力的几种参数,提出了一种名叫临界维度(Critical Dimension)的概念,随后基于这一概念,总结出了一套RoPE外推的缩放法则(Scaling Laws of RoPE-based Extrapolation)。
只需要应用这个规律,就能确保任意基于RoPE位置编码大模型都能改善外推能力。
先来看看临界维度是什么。
从定义中来看,它和预训练文本长度Ttrain、自注意力头维度数量d等参数都有关系,具体计算方法如下:
其中,10000即超参数、旋转角底数base的“初始值”。
作者发现,无论放大还是缩小base,最终都能让基于RoPE的大模型的外推能力得到增强,相比之下当旋转角底数为10000时,大模型外推能力是最差的。
对此论文认为,旋转角底数更小,能让更多的维度感知到位置信息,旋转角底数更大,则能表示出更长的位置信息。
既然如此,在面对不同长度的续训语料时,究竟缩小和放大多少旋转角底数,才能确保大模型外推能力得到最大程度上的提升?
论文给出了一个扩展RoPE外推的缩放法则,与临界维度、大模型的续训文本长度和预训练文本长度等参数有关:
基于这一规律,可以根据不同预训练和续训文本长度,来直接计算出大模型的外推表现,换言之就是预测大模型的支持的上下文长度。
反之利用这一法则,也能快速推导出如何最好地调整旋转角底数,从而提升大模型外推表现。
作者针对这一系列任务进行了测试,发现实验上目前输入10万、50万甚至100万tokens长度,都可以保证,无需额外注意力限制即可实现外推。
与此同时,包括Code LLaMA和LLaMA2 Long在内的大模型外推能力增强工作都证明了这一规律是确实合理有效的。
这样一来,只需要根据这个规律“调个参”,就能轻松扩展基于RoPE的大模型上下文窗口长度、增强外推能力了。
论文一作柳潇然表示,目前这项研究还在通过改进续训语料,提升下游任务效果,等完成之后就会将代码和模型开源,可以期待一下~
论文地址:
https://arxiv.org/abs/2310.05209
Github仓库:
https://github.com/OpenLMLab/scaling-rope
论文解析博客:
https://zhuanlan.zhihu.com/p/660073229
今天关于《LLaMA2上下文长度暴涨至100万tokens,只需调整1个超参数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于数据,研究的内容请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
345 收藏
-
258 收藏
-
372 收藏
-
328 收藏
-
360 收藏
-
497 收藏
-
125 收藏
-
229 收藏
-
393 收藏
-
464 收藏
-
155 收藏
-
282 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习