约瑟夫·傅里叶在1822年关于热量扩散的研究中提出了一种数学工具:将复杂的模式表示为正弦和余弦函数的组合。近两个世纪后,这些相同的函数出现在现代语言模型背后的Transformer架构中。
这两个领域看似相距甚远。傅里叶研究的是物理物体上的温度分布,而语言模型处理的是按序列排列的词元。然而,正弦和余弦函数为两者都提供了有用的结构。它们将位置转换为结构化的数值模式,Transformer可以利用这些模式学习词序如何影响含义。波形提供位置信息,训练则教会模型如何使用这些信息。
词序所承载的信息是单凭词语本身无法提供的。由相同词语组成的两个句子,可能因谁对谁采取行动而含义不同。软件也是如此:income - expenses与expenses - income包含相同的变量和运算符,却产生不同的结果。因此,即使词语以有序列表的形式到达,语言模型仍需要获取位置信息。
本文解释了词序如何被编码、注意力机制如何理解这种顺序、正弦和余弦函数如何提供位置信号。文章还涵盖了训练如何利用这些位置信息,以及旋转位置编码(RoPE)的工作原理。
来源: ByteByteGo · 由HeadlinesBriefing整理摘要