目录
可外推的位置编码
大模型时代的外推方法
挑战与未来方向
首页 科技周边 人工智能 位置编码在Transformer中的应用:探究长度外推的无限可能性

位置编码在Transformer中的应用:探究长度外推的无限可能性

Jan 16, 2024 pm 06:42 PM
ai 数据

在自然语言处理领域,Transformer 模型因其卓越的序列建模性能而备受关注。然而,由于其训练时限制了上下文长度,使得它及其基于此的大语言模型都无法有效地处理超过此长度限制的序列,这被称作“有效长度外推”能力的缺失。这导致大型语言模型在处理长文本时表现较差,甚至会出现无法处理的情况。为了解决这个问题,研究者们提出了一系列方法,例如截断式方法、分段式方法和层次式方法等。这些方法旨在通过一些技巧来提高模型的有效长度外推能力,从而使其能够更好地处理超长序列。虽然这些方法在一定程度上缓解了这个问题,但仍需要更多的研究来进一步提高模型的有效长度外推能力,以更好地适应实际应用场景的需求。

文本续写和语言延展是人类语言能力的重要方面之一。在大模型时代,为了将模型的能力有效应用于长序列数据,长度外推成为了一种重要方法。这个问题的研究具有理论和实际的价值,因此相关工作不断涌现。同时,也需要一篇系统性的综述来概览这一领域,不断拓展语言模型的边界。

哈尔滨工业大学的研究者从位置编码的角度出发,系统回顾了Transformer模型在长度外推方面的研究进展。研究者们主要关注可外推的位置编码以及基于这些编码的拓展方法,以增强Transformer模型的长度外推能力。

位置编码在Transformer中的应用:探究长度外推的无限可能性

论文链接:https://arxiv.org/abs/2312.17044

可外推的位置编码

由于 Transformer 模型本身无法捕获序列中每个词的位置信息,因此位置编码成为了一种常见的添加方式。位置编码可以分为绝对位置编码和相对位置编码两种类型。绝对位置编码通过向输入序列中每个单词添加一个位置向量来表示该单词在序列中的绝对位置信息。相对位置编码则是通过对每对不同位置的单词之间的相对距离进行编码。这两种编码方式都可以将序列中的元素顺序信息融入到 Transformer 模型中,提升模型的性能。

位置编码在Transformer中的应用:探究长度外推的无限可能性

鉴于现有研究显示该分类对模型的外推能力至关重要,我们将根据此分类对本节内容进行划分。

绝对位置编码

在原始的 Transformer 论文中,位置编码是通过正弦和余弦函数生成的,这种方法虽然被证明不能很好地外推,但作为 Transformer 的第一个 PE,正弦 APE 对之后的 PE 产生了深远的影响。

为了增强 Transformer 模型的外推能力,研究人员要么通过随机位移将位移不变性融入正弦 APE 中,要么生成随位置平滑变化的位置嵌入并期望模型能够学会推断这一变化函数。基于这些思想的方法展现出比正弦 APE 更强的外推能力,但仍无法达到 RPE 的水平。原因之一是,APE 将不同的位置映射到不同的位置嵌入,外推意味着模型必须推断出不曾见过的位置嵌入。然而,这对于模型来说是一项艰巨的任务。因为在广泛的预训练过程中重复出现的位置嵌入数量有限,特别是在 LLM 的情况下,模型极易对这些位置编码过拟合。

相对位置编码

由于 APE 在长度外推上的表现难以令人满意,而 RPE 天然地由于其位移不变性具备更好的外推能力,并且人们普遍认为上下文中单词的相对顺序更重要。近年来,RPE 已成为编码位置信息的主要方法。

早期的 RPE 来自于对正弦位置编码的简单修改,并常常结合裁剪或分箱策略来避免出现分布外的位置嵌入,这些策略被认为有利于外推。此外,由于 RPE 解耦了位置和位置表示之间的一对一对应关系,因此将偏差项直接添加到注意力公式中成为将位置信息集成到 Transformer 中的一种可行甚至更好的方法。这种方法要简单得多,并且自然地解开了值(value)向量和位置信息的纠缠。然而,尽管这些偏置方法具有很强的外推性,但它们无法表示 RoPE(Rotary Position Embedding,旋转位置编码)中那样复杂的距离函数。因此,尽管 RoPE 的外推性较差,但由于其优异的综合性能,成为近来 LLMs 最主流的的位置编码。论文中介绍的全部可外推 PE 如表 1 所示。

位置编码在Transformer中的应用:探究长度外推的无限可能性

大模型时代的外推方法

为了增强 LLMs 的长度外推能力,研究者们基于现有的位置编码提出了多种方法,主要分为位置插值(Position Interpolation)和随机化位置编码(Randomized Position Encoding)两大类别。

位置插值方法

位置插值方法通过在推理时对位置编码进行缩放,使得原本超出模型训练长度的位置编码在插值后落入已训练位置区间。由于其卓越的外推性能和极低的开销,位置插值方法引起了研究界的广泛兴趣。此外,与其他外推方法不同,位置插值方法已经广泛出现在开源模型中,例如 Code Llama、Qwen-7B 和 Llama2。然而,目前的插值方法仅仅关注 RoPE,如何通过插值使采用其他 PE 的 LLM 具备更好的外推能力仍需探索。

随机化位置编码

简单来说,随机化 PE 只是通过在训练期间引入随机位置来将预训练的上下文窗口与较长的推理长度解耦,从而提高了较长上下文窗口中所有位置的曝光度。值得注意的是,随机化 PE 的思想与位置插值方法有很大不同,前者旨在使模型在训练过程中观察到所有可能的位置,而后者试图在推理过程中对位置进行插值,使它们落入既定的位置范围内。出于同样的原因,位置插值方法大多是即插即用的,而随机化 PE 通常需要进一步微调,这使得位置插值更具吸引力。然而,这两类方法并不互斥,因此可以结合它们来进一步增强模型的外推能力。

挑战与未来方向

评测与基准数据集:在早期研究中,对 Transformer 外推能力的评估来自各下游任务的性能评价指标,如机器翻译的 BLEU;随着 T5、GPT2 等语言模型逐渐统一自然语言处理任务,语言建模所使用的困惑度成为外推的评价指标。然而,最新的研究已经表明困惑度无法揭示下游任务的性能表现,因而亟需专用的基准数据集与评测指标来推动长度外推领域的进一步发展。

理论解释:目前的长度外推相关工作大都是实证性的,尽管有一些解释模型成功外推的初步尝试,但坚实的理论基础仍未建立,究竟有哪些因素影响且如何影响长度外推性能仍然是一个悬而未决的问题。

其他方法:正如本文所述,现有的长度外推工作大多集中在位置编码视角下,但不难理解,长度外推需要系统性设计。位置编码是其中一个关键的组成部分,但绝非唯一的组成部分,更广阔的视野将进一步为这一问题带来激励。

以上是位置编码在Transformer中的应用:探究长度外推的无限可能性的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Apr 01, 2025 pm 10:51 PM

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

Python中如何通过字符串动态创建对象并调用其方法? Python中如何通过字符串动态创建对象并调用其方法? Apr 01, 2025 pm 11:18 PM

在Python中,如何通过字符串动态创建对象并调用其方法?这是一个常见的编程需求,尤其在需要根据配置或运行...

如何利用Go或Rust调用Python脚本实现真正的并行执行? 如何利用Go或Rust调用Python脚本实现真正的并行执行? Apr 01, 2025 pm 11:39 PM

如何利用Go或Rust调用Python脚本实现真正的并行执行?最近在使用Python...

ChatGPT时代,技术问答社区思否如何应对挑战? ChatGPT时代,技术问答社区思否如何应对挑战? Apr 01, 2025 pm 11:51 PM

ChatGPT时代的技术问答社区:思否(SegmentFault)的应对策略StackOverflow...

Python多进程Pipe通信中如何优雅地处理'管道已关闭”错误? Python多进程Pipe通信中如何优雅地处理'管道已关闭”错误? Apr 01, 2025 pm 11:12 PM

Python多进程Pipe报错“管道已关闭”?在使用Python的multiprocessing模块中的Pipe方法进行父子进程通信时,可能会遇�...

requests库获取网页数据时,如何解决动态加载内容缺失的问题? requests库获取网页数据时,如何解决动态加载内容缺失的问题? Apr 01, 2025 pm 11:24 PM

使用requests库抓取网页数据时遇到的问题及解决方案在使用Python的requests库获取网页数据时,有时会遇到获取到�...

Debian邮件服务器如何恢复 Debian邮件服务器如何恢复 Apr 02, 2025 am 07:33 AM

恢复Debian邮件服务器的详细步骤指南本文将指导您如何恢复Debian邮件服务器。在开始之前,务必记住数据备份的重要性。恢复步骤:备份数据:在执行任何恢复操作前,请务必备份所有重要的邮件数据和配置文件。这将确保在恢复过程中出现问题时,您拥有一个可回退的版本。检查日志文件:检查邮件服务器日志文件(例如/var/log/mail.log),查找错误或异常情况。日志文件通常能够提供关于问题原因的宝贵线索。停止服务:停止邮件服务以防止进一步的数据损坏。使用以下命令:su

Zookeeper性能调优在Debian上如何操作 Zookeeper性能调优在Debian上如何操作 Apr 02, 2025 am 07:42 AM

本文介绍如何在Debian系统上优化ZooKeeper性能。我们将从硬件、操作系统、ZooKeeper配置以及监控等方面提供建议。一、系统层面优化存储介质升级:使用SSD固态硬盘替换传统机械硬盘,显着提升I/O性能,降低访问延迟。禁用交换分区:通过调整内核参数,减少对交换分区的依赖,避免内存与磁盘频繁交换带来的性能损耗。提升文件描述符上限:增加系统允许同时打开的文件描述符数量,避免资源限制影响ZooKeeper的处理效率。二、ZooKeeper配置优化zoo.cfg文件配置

See all articles