ICML 2024 | 北大、字节提出新型双层位置编码方案,有效改善长度外推效果

1150d8441f3f9175f6bf954c0c475477.gif

在这项工作中,我们利用语言序列的内在分段特性,设计了一种新的位置编码方法来达到更好的长度外推效果,称为双层位置编码(BiPE)。对于每个位置,我们的 BiPE 融合了段内编码和段间编码。段内编码通过绝对位置编码标识段内位置,并帮助模型捕捉其中的语义信息。段间编码指定段索引,通过相对位置编码建模段间关系,旨在提高外推能力。

理论分析表明,这种位置信息的解耦使学习更加有效。实证结果也表明,我们的 BiPE 在各种文本模态的广泛任务中具有优越的长度外推能力。这一研究已被 ICML 2024 接收。

7d6fde1aaf6bc6cb4276cf4b9dfa6e4a.png

论文标题:

Two Stones Hit One Bird: Bilevel Positional Encoding for Better Length Extrapolation 

论文链接:

https://arxiv.org/abs/2401.16421

代码链接:

https://github.com/zhenyuhe00/BiPE

4e682ebbddded3e1c39bee99644bc4c4.png

研究背景

在许多场景中,文本可以有效地分解为模块化的段落,每个段落都表达一个自成一体的思想单元 [1]。在自然语言中,文档通常由句子组成。每个句子描述一个独特的想法或论点。在编程语言中,代码被组织成行或函数类,以定义连贯的操作或功能。在数学中,证明通过一系列演绎步骤展开,每一步代表从前面的步骤到最终答案的逻辑进展。

不同文本序列的长度可能有显著差异。有趣的是,我们实证观察到,对于不同长度的序列,每个模块段中的 token 数量分布通常是有界的,并且趋于大致相似。在图 1 中,我们使用了广泛使用的 PG-19 文本语料库进行可视化。显然,每个段落(即句子)中的 token 数量分布无论总序列长度如何,都保持了显著的一致性。相比之下,随着序列长度的增加,句子的数量呈线性增长。

71e379d095125cd9171f9dff431edc5b.png

▲ 图1

9a33393a490a14154100e7306cf4a091.png

方法

在本文中,我们介绍一种简单但有效的用于改善长度外推的定位编码方案:BiPE。与现有的长度外推方法不同,BiPE 为每个位置采用了两种不同的编码:段内编码和段间编码。

段内编码标识标记在其段内的位置。作为补充,段间编码指定其所属的段。以自然语言为例,同一句子中的不同词语共享相同的段间位置编码,但具有不同的段内编码。相反,不同句子中但占据相同段间位置的词语(例如,不同句子中的第一个 token)共享相同的段内编码,而具有不同的段间编码。请参见图 2 以获取示意图。

16b5d1729c022944afcc5ba57411f094.png

2875db195ba96a44cda24f6310a913a2.png

BiPE的理论分析

我们利用了在理论计算机科学领域广泛使用的(非确定性)有限自动机(NFA)。Alur [2] 等人提出了分层有限自动机,作为表示此类语言结构的实用方法。受该框架的启发,我们引入了一种简化模型——Bi-NFA,该模型将分层有限自动机的层级限制为两层。

我们比较了 Transformer 在表示 NFA 和 Bi-NFA 方面的参数效率,并展示了 BiPE 在现有位置编码方案上具有理论优势(理论细节敬请参考原文)。

9dc89b204542b5ddae1e4116a3287b09.png

实验结果

在 BiPE 的框架下,我们实例化了两种位置编码:BiPE-RoPE 和 BiPE-ALiBi。他们两者都使用绝对位置编码来作为段内编码。BiPE-RoPE 使用 RoPE 作为段间位置编码,BiPE-ALiBi 使用 ALiBi 作为段间位置编码。

我们首先验证了在思维链数学推理任务上,BiPE 在同参数量的情况下效果更好。在图 3 中可以清楚地看到,给定相似数量的参数,基于 BiPE 的语言模型在此任务上始终优于其他基线方法。

例如,当隐藏维度为 48 时,其他位置编码方法的准确率较低(低于 70%),而 BiPE-ALiBi 和 BiPE-RoPE 的准确率分别高达 97% 和 95%。这一结果确实很好地与我们的理论结果一致,这进一步强有力地支持了我们 BiPE 的双层设计。

919d3c9115342d038625a1e122ac1948.png

我们对采用不同位置编码的 Transformer 模型在 Pile 数据集预训练过后,测试长度外推的能力。结果如图 4 所示。我们的 BiPE 方法在长度大于训练长度的序列上始终表现出更优越的性能。例如,在序列长度为 8192 的 PG19 数据集上,我们的 BiPE-ALiBi 以 25.24 的困惑度(perplexity)优于它的对标方法 ALiBi(28.59 的困惑度),领先了 3.35 点。

相比之下,RoPE 尽管在分布内长度的序列上表现良好,但在较长序列上的性能显著下降,而我们的 BiPE 方法显著提升了其长度外推能力,例如,在序列长度为 4096 的 PG19 数据集上,困惑度为 19.67,而 RoPE 的困惑度为 158。

值得注意的是,我们的 BiPE 方法在全部三个覆盖不同模态文本数据的评估数据集上均表现出一致的优势,突显了 BiPE 在实际任务中的更佳长度外推能力。

dfe584bdbb11d377512c763b2241edf4.png

将 BiPE-RoPE 和对 RoPE 做微调的方法结合: 最近在长度外推方面的改进之一来自于使用位置插值(Position Interpolation)技术对基于 RoPE 的语言模型进行持续微调 [3,4]。

为了进一步研究我们的 BiPE 方法与位置插值的兼容性,我们使用 YaRN [4] 对在 Pile 数据集上预训练的 RoPE 和我们的 BiPE-RoPE 进行微调,并检查在下游数据集上的改进。结果如图 5 所示,我们的 BiPE-RoPE 在微调后对较长序列始终表现出更好的性能。

进一步来说,虽然 YaRN 在一定程度上提升了 RoPE 的长度外推能力,但在评估非常长的序列时仍然会出现性能下降,例如在 PG19/ArXiv/Github 数据集上评估 11k/16k/16k 长度的序列时。而相比之下,我们结合 YaRN 的 BiPE-RoPE 展现出更强的长度外推能力,即在长度高达 20k 的序列上保持了一致的低困惑度。

bebbb9954057e2045cf55b0eb3827e16.png

为了进一步评测长文本能力,我们将不同位置编码的预训练模型在SCROLLS数据集上微调并测试,结果如表 1 所示,首先,BiPE-RoPE 和 BiPE-ALiBi 分别表现优于 RoPE 和 ALiBi。例如,我们的 BiPE-RoPE 以 22.36 的平均分数超过了其对标方法 RoPE(18.38 的平均分数),领先了 3.98 分。

此外,BiPE-RoPE 取得了最高的平均分数,超过其他方法 3 分以上。在逐任务评估中,BiPE-RoPE 在 7 个任务中的 4 个任务中取得了最高分。我们还比较了两种经过 YaRN 微调的模型,即 BiPE-RoPE 和 RoPE。可以看到,BiPE-RoPE 在 7 个任务中的 6 个任务上仍然持续由于 RoPE, 并取得了更好的平均分数。这些结果进一步强化了 BiPE 在长上下文建模中的有效性。

21f3836aeb8aeed370f67966077ccf28.png

8c059627062e8663aa770462a9ebe33d.png

总结

在本文中,我们介绍了 BiPE,一种旨在改进长度外推的新型双层位置编码方案。对于每个位置,我们的 BiPE 结合了 1)通过 APE 确定其在段内位置的段内编码,以及 2)通过 RPE 指定其所属段的段间编码。

段内编码帮助模型捕捉每个段内的语义信息,而段间编码则建模段与段之间的关系。这种双层设计很好地契合了文本数据的内在分段结构,并增强了长度外推能力。我们的 BiPE 还通过其表达能力的理论分析得到了进一步支持。所有实验均验证了 BiPE 在不同文本模态任务中的长度外推能力。

outside_default.png

参考文献

outside_default.png

[1] Halliday, M. A. K. and Matthiessen, C. M. Halliday’s introduction to functional grammar. Routledge, 2013.

[2] Alur, R., Kannan, S., and Yannakakis, M. Communicating hierarchical state machines. In Automata, Languages and Programming: 26th International Colloquium, ICALP’99 Prague, Czech Republic, July 11–15, 1999 Proceedings 26, pp. 169–178. Springer, 1999.

[3] Chen, S., Wong, S., Chen, L., and Tian, Y. Extending context window of large language models via positional interpolation. arXiv preprint arXiv:2306.15595, 2023b.

[4] Peng, B., Quesnelle, J., Fan, H., and Shippole, E. Yarn: Efficient context window extension of large language models, 2023.

更多阅读

1dc482eb7932d2feff5f2a88fdb6c934.png

771c64a2ee7c43025a3eda4b2fcbd2a9.png

29c9cd203a698a6ac04777a36f6d9329.png

4604051229a1b608dbde617105a42c59.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

37bee65018eda37cce414a63b17688e5.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

e82670e6adbeefe936fd16a42bee3e36.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从用法到源码再到应用场景:全方位了解CompletableFuture及其线程池

文章目录 文章导图什么是CompletableFutureCompletableFuture用法总结API总结 为什么使用CompletableFuture场景总结 CompletableFuture默认线程池解析:ForkJoinPool or ThreadPerTaskExecutor?ForkJoinPool 线程池ThreadPerTaskExecutor线程池Completab…

AI教母李飞飞:现在的AI根本没有主观感觉能力

通用人工智能 (AGI) 是用来描述至少在人类展示(或可以展示)智能的所有方面都与人类一样聪明的人工智能代理的术语。这就是我们过去所说的人工智能,直到我们开始创建无可否认“智能”的程序和设备,但这些程序和设备只在有限的领域—…

查分数组总结

文章目录 查分数组定义应用举例LeetCode 1109 题「[航班预订统计] 查分数组定义 差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。 通过这个 diff 差分数组是可以反推出原始数组 nums 的,代码逻辑如下: int res[diff.size()]; // 根…

新建一个STM32的工程

一、SMT32开发方式 1、基于寄存器的方式:和51单片机开发方式一样,是用程序直接配置寄存器,来达到我们想要的功能,这种方式最底层、最直接、效率会更高一些,但是STM32的结构复杂、寄存器太多,所以不推荐基于…

HTTP协议、URL、HTTPS协议 ----- 讲解很详细

本章重点 理解应用层的作用, 初识HTTP协议 了解HTTPS协议 一、HTTP协议 1.认识url 虽然我们说,应用层协议是我们程序猿自己定的,但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使…

中国区 AWS 控制台集成 ADFS 登录

前言 本文将使用一台 Windows Server 2019 服务器实现自建 AD ADFS 环境集成到中国区 AWS 控制台进行单点登录. 参考文档: https://aws.amazon.com/cn/blogs/china/adfs-bjs/ 配置 AD 生产环境建议先给本地连接设置静态 IP 地址, 不设置也没事儿, 后面配置功能的时候会有 W…

excel表格写存神器--xlwt

原文链接:http://www.juzicode.com/python-tutorial-xlwt-excel 在 Python进阶教程m2d–xlrd读excel 中我们介绍了Excel表格的读取模块xlrd,今天这篇文章带大家了解Excel表格写存模块xlwt。他俩名字相近都以Excel的简写xl开头,rd是read的简写…

数字图像的几种处理算法

文章目录 1.二值化 2.海报化 3.灰度化 1)分量法 2)最大值法 3) 平均值法 4) 加权平均法 4.模糊化 1.二值化 二值化就是将图像划分成黑和白,通过设定一个标准(如果大于这个标准就设为白,如果小于这个标准,就设为黑&#x…

布鲁可冲刺上市:极其依赖第三方,多个授权将到期,朱伟松突击“套现”

“奥特曼”概念股来了。 近日,布鲁可集团有限公司(下称“布鲁可”)递交招股书,准备在港交所主板上市,高盛和华泰国际为其联席保荐人。据贝多财经了解,布鲁可的经营主体为上海布鲁可科技集团有限公司。 天眼…

Kiwi浏览器 - 支持 Chrome 扩展的安卓浏览器

​【应用名称】:Kiwi浏览器 - 支持 Chrome 扩展的安卓浏览器 ​【适用平台】:#Android ​【软件标签】:#Kiwi ​【应用版本】:124.0.6327.2 ​【应用大小】:233MB ​【软件说明】:一款基于开源项目 Chr…

【Qt 学习笔记】Qt窗口 | 菜单栏 | QMenuBar的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 菜单栏 | QMenuBar的使用及说明 文章编号:Qt 学习…

Python 小游戏——贪吃蛇

Python 小游戏——贪吃蛇 文章目录 Python 小游戏——贪吃蛇项目介绍环境配置代码设计思路1. 初始化和变量定义2. 创建游戏窗口和FPS控制器3. 初始化贪吃蛇和食物的位置4. 控制贪吃蛇的方向和分数5. 主游戏循环 难点分析源代码呈现代码结果 项目介绍 贪吃蛇游戏是一款通过上下…

解析售后维修服务平台如何助力企业高效运营与决策

随着生活质量的不断提高,人们对于售后服务的要求也越来越多。因此,售后服务已经成为企业竞争力的重要组成部分。售后服务平台作为连接企业与消费者的桥梁,不仅关乎着消费者的满意度,而且直接影响着企业的品牌形象与市场地位。那么…

音视频学习规划

文章目录 概述闲聊点 小结 概述 最近在学习音视频,觉得还是要先写个提纲,给自己制定下学习路线及目标。先写下我的个人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒体RTMP,HLS 闲聊点 先说下学习命令行吧,学习命令行是为了…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第29课-会员制展厅

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第29课-会员制展厅 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&…

记一次安卓“Low on memory“崩溃问题

前言 最近再调人脸识别算法相关demo,发现调试期间总是偶发性崩溃,捕获不到异常的那种,看日志发现原因是Low on memory,一开始还疑惑 App内存不够应该是OOM啊,怎么会出现这种问题,百思不得其解,直到我打开了 Android s…

HTML+CSS+JS(web前端大作业)~致敬鸟山明简略版

HTMLCSSJS【动漫网站】网页设计期末课程大作业 web前端开发技术 web课程设计 文章目录 一、网站题目 二、网站描述 三、网站介绍 四、网站效果 五、 网站代码 文章目录 一、 网站题目 动漫网站-鸟山明-龙珠超 二、 网站描述 页面分为页头、菜单导航栏(最好可下拉&…

Web Server项目实战2-Linux上的五种IO模型

上一节内容的补充:I/O多路复用是同步的,只有调用某些API才是异步的 Unix/Linux上的五种IO模型 a.阻塞 blocking 调用者调用了某个函数,等待这个函数返回,期间什么也不做,不停地去检查这个函数有没有返回&#xff0c…

前端---闭包【防抖以及节流】----面试高频!

1.什么闭包 释放闭包 从以上看出:一般函数调用一次会把内部的数据进行清除--但是这种操作却可以一起保留局部作用域的数据 // 优点:1、可以读取函数内部的变量 2、让这些变量始中存在局部作用域当中 2.闭包产生的两种业务场景:防抖、节流 2.1防抖 举…

PLC_博图系列☞R_TRIG:检测信号上升沿

PLC_博图系列☞R_TRIG:检测信号上升沿 文章目录 PLC_博图系列☞R_TRIG:检测信号上升沿背景介绍R_TRIG: 检测信号上升沿说明参数示例 关键字: PLC、 西门子、 博图、 Siemens 、 R_TRIG 背景介绍 这是一篇关于PLC编程的文章&a…