文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

GPT-4的32k输入框还是不够用?Unlimiformer把上下文长度拉到无限长

2024-11-30 14:31

关注

但 16384 并不是生成所需上下文长度的上限:涉及长篇叙事的任务,如书籍摘要(Krys-´cinski et al.,2021)或叙事问答(Kociskýet al.,2018),通常输入超过 10 万个 token。维基百科文章生成的挑战集(Liu*et al.,2018)包含超过 50 万个 token 的输入。生成式问答中的开放域任务可以从更大的输入中综合信息,例如回答关于维基百科上所有健在作者的文章的聚合属性的问题。图 1 根据常见的上下文窗口长度绘制了几个流行的摘要和问答数据集的大小;最长的输入比 Longformer 的上下文窗口长 34 倍以上。

在这些超长输入的情况下,vanilla transformer 无法进行缩放,因为原生注意力机制具有平方级的复杂度。长输入 transformer 虽然比标准 transformer 更高效,但仍需要大量的计算资源,这些资源随着上下文窗口大小的增加而增加。此外,增加上下文窗口需要用新的上下文窗口大小从头开始重新训练模型,计算上和环境上的代价都不小。

在「Unlimiformer: Long-Range Transformers with Unlimited Length Input」一文中,来自卡内基梅隆大学的研究者引入了 Unlimiformer。这是一种基于检索的方法,这种方法增强了预训练的语言模型,以在测试时接受无限长度的输入。

论文链接:https://arxiv.org/pdf/2305.01625v1.pdf

Unlimiformer 可以被注入到任何现有的编码器 - 解码器 transformer 中,能够处理长度不限的输入。给定一个长的输入序列,Unlimiformer 可以在所有输入 token 的隐藏状态上构建一个数据存储。然后,解码器的标准交叉注意力机制能够查询数据存储,并关注前 k 个输入 token。数据存储可以存储在 GPU 或 CPU 内存中,能够次线性查询。

Unlimiformer 可以直接应用于经过训练的模型,并且可以在没有任何进一步训练的情况下改进现有的 checkpoint。Unlimiformer 经过微调后,性能会得到进一步提高。本文证明,Unlimiformer 可以应用于多个基础模型,如 BART(Lewis et al.,2020a)或 PRIMERA(Xiao et al.,2022),且无需添加权重和重新训练。在各种长程 seq2seq 数据集中,Unlimiformer 不仅在这些数据集上比 Longformer(Beltagy et al.,2020b)、SLED(Ivgi et al.,2022)和 Memorizing transformers(Wu et al.,2021)等强长程 Transformer 表现更好,而且本文还发现 Unlimiform 可以应用于 Longformer 编码器模型之上,以进行进一步改进。

Unlimiformer 技术原理

由于编码器上下文窗口的大小是固定的,Transformer 的最大输入长度受到限制。然而,在解码过程中,不同的信息可能是相关的;此外,不同的注意力头可能会关注不同类型的信息(Clark et al.,2019)。因此,固定的上下文窗口可能会在注意力不那么关注的 token 上浪费精力。

在每个解码步骤中,Unlimiformer 中每个注意力头都会从全部输入中选择一个单独的上下文窗口。通过将 Unlimiformer 查找注入解码器来实现:在进入交叉注意力模块之前,该模型在外部数据存储中执行 k 最近邻 (kNN) 搜索,在每个解码器层中的每个注意力头中选一组 token 来参与。

编码

为了将比模型的上下文窗口长度更长的输入序列进行编码,本文按照 Ivgi et al. (2022) 的方法对输入的重叠块进行编码 (Ivgi et al. ,2022),只保留每个 chunk 的输出的中间一半,以确保编码过程前后都有足够的上下文。最后,本文使用 Faiss (Johnson et al., 2019) 等库对数据存储中的编码输入进行索引(Johnson et al.,2019)。

检索增强的交叉注意力机制

在标准的交叉注意力机制中,transformer 的解码器关注编码器的最终隐状态,编码器通常截断输入,并仅对输入序列中的前 k 个 token 进行编码。

本文不是只关注输入的这前 k 个 token,对于每个交叉注意头,都检索更长的输入系列的前 k 个隐状态,并只关注这前 k 个。这样就能从整个输入序列中检索关键字,而不是截断关键字。在计算和 GPU 内存方面,本文的方法也比处理所有输入 token 更便宜,同时通常还能保留 99% 以上的注意力性能。

图 2 显示了本文对 seq2seq transformer 架构的更改。使用编码器对完整输入进行块编码,并将其存储在数据存储中;然后,解码时查询编码的隐状态数据存储。kNN 搜索是非参数的,并且可以被注入到任何预训练的 seq2seq transformer 中,详情如下。

实验结果

长文档摘要

表 3 显示了长文本(4k 及 16k 的 token 输入)摘要数据集中的结果。

在表 4 的训练方法中,Unlimiformer 能够在各项指标上达到最优。

书籍摘要

表 5 显示了在书籍摘要上的结果。可以看到,基于 BARTbase 和 PRIMERA,应用 Unlimiformer 都能取得一定的改进效果。

来源:机器之心内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯