论文链接:https://arxiv.org/html/2405.18719v2
个人理解,Transformer 架构的位置编码,是解决注意力机制缺乏序列信息的问题,但是以往的位置编码是基于Token级别的,所以LLM难以建立句子级别的更高层次的序列信息,也就很难关注到句子的概念。
本文的基于上下文的位置编码,解决了这个问题。
摘要
本文提出了一种新的位置编码方法,称为上下文位置编码(Contextual Position Encoding, CoPE),它允许位置信息根据上下文条件进行调整,通过模型确定的特定Token来递增位置。这种方法使得位置编码能够更普遍地应用于关注序列中的第i个特定词、名词或句子等。CoPE通过解决选择性复制、计数和Flip-Flop任务,在这些任务中流行的基于Token的位置嵌入失败,并且在语言建模和编码任务中降低了困惑度。
解决的问题
- 大型语言模型(LLMs)中的注意力机制是关键组件,它允许序列中的token相互交互,但本身不包含顺序信息。
- 现有的位置编码(PE)方法使用token计数来派生位置,无法泛化到更高级别的抽象,例如关注第i个句子。
- 现有的PE方法将位置和上下文编码分离,这限制了它们在处理基于上下文的位置信息时的能力。
方法概述
- CoPE首先使用上下文向量确定要计数的token,通过计算当前token作为查询向量时,每个先前token的门值。
- 然后,CoPE聚合这些门值来确定每个token相对于当前token的相对位置。
- CoPE不是使用固定的嵌入层来转换位置值,而是通过插值整数位置分配的嵌入来计算位置嵌入。
- 这种上下文位置可以是小数,允许模型同时以多种单位(如token位置、句子位置)来度量距离。
- CoPE在多个任务上进行了测试,包括玩具任务和真实世界的语言建模任务,在这些任务中它表现出比现有基于token的PE方法更好的性能。
直接看文章的图1,可以对文章方法有快速直观的认识。
图1在文章中展示了上下文