当前位置: 首页 > news >正文

基于Transformer的预训练大语言模型,如何区分文本位置?

 

一、Transformer位置编码问题

Transformer的自注意力机制本质上是一种基于内容相似度的匹配操作,其核心计算过程与词序无关。给定输入序列中任意两个词元 token,其注意力分数仅依赖于它们的语义相关性,而与它们在序列中的绝对或相对位置无关。具体表现为:

1. 查询-键相关性计算:

通过投影矩阵将输入向量转换为查询(Query)和键(Key),计算二者的点积相似度:

Score(qi,kj)=qikj

其中  为可学习参数, 为键向量的维度。若交换  和  的位置,计算结果不变,即:

2. 注意力权重生成:

对分数矩阵进行 Softmax 归一化,得到注意力权重分布:

此时权重仅反映词元间的语义关联强度,缺乏位置信息编码


二、Transformer位置编码的重要性

在自然语言处理中,词序通常对语义理解起关键作用。以关系分类任务为例,模型需要根据文本中两个实体的顺序和上下文关系,准确判断它们之间的语义关联。若词序信息丢失或错乱,可能导致模型误判关系类型。

示例说明

  • 句子1:"公司收购了竞争对手"
  • 句子2:"竞争对手收购了公司"

虽然两句话包含相同的词汇,但词序反转导致实体关系完全相反:

  • 句子1中,“公司”是收购方(主体),“竞争对手”是被收购方(客体),关系为“收购”;
  • 句子2中,主客体对调,关系变为“被收购”。

⚠️ 若模型忽略词序,将无法区分这两种截然不同的语义。


三、Transformer如何做位置编码?

向Transformer模型中加入位置编码是必不可少的操作。位置编码可以分为绝对位置编码相对位置编码两大类。

📌 外推能力对比
绝对位置编码外推能力较差。推理时如果输入文本长度超过训练阶段的最大长度,模型表现会显著下降。
因此,主流大语言模型普遍采用相对位置编码,以增强长序列外推能力。

目前主要有两种典型的位置编码方法:

1. 可训练绝对位置编码(如 BERT)

  • 将位置信息表示为可训练的参数矩阵 ,其中:
    • :预设的最大序列长度(如512)
    • :隐藏层维度
  • 对于第  个位置的 token,其位置编码为 ,并与词嵌入相加作为输入:
  • 优点:简单直接,易于训练。
  • 缺点:无法外推 —— 当测试序列长度 >  时,无法生成有效的位置编码。

2. 正弦位置编码(如原始 Transformer)

  • 使用预定义的三角函数生成位置编码:
  • 优点:
    • 具有相对位置敏感性
    • 理论上支持任意长度外推(可计算任意 pos 的编码)
  • 缺点:不如 RoPE 灵活,表达能力有限

四、RoPE:旋转位置编码(Rotary Position Embedding)

旋转位置编码(Rotary Position Embedding, RoPE)是一种创新的相对位置编码方法,其核心思想是:

✅ 通过旋转矩阵将绝对位置信息融入注意力机制,同时保留词向量的相对位置关系。

核心思想

  • 对查询向量  和键向量  施加与位置相关的旋转变换。
  • 利用正弦/余弦函数的“和差化积”性质,将绝对位置  的旋转转化为相对位置  的相位差。

旋转操作定义

定义二维旋转矩阵:

其中:

  • :当前位置(如第  个词)
  • :位置编码总维度
  • :调节因子(控制频率衰减速度)
  • :随位置变化的旋转角度

旋转特性

当向量乘以  时,其幅值不变,仅在二维平面上旋转角度 

原因在于:

  •  是标准的正交矩阵
  • 行列式为 1: → 无缩放,纯旋转

注意力分数引入相对位置

令旋转后的查询和键为:

则注意力内积为:

利用三角恒等式,最终可推导出该内积依赖于相对位置 ,从而实现相对位置编码

💡 类比:想象一个时钟指针

  • 原始向量是时针的初始方向
  • RoPE 根据位置  把时针旋转一个角度(长度不变)
  • 两个“旋转后”的指针夹角(内积)反映它们的相对位置差

五、YaRN:弥补RoPE的缺陷

尽管 RoPE 具有良好的外推能力,但仍受限于周期性函数的震荡特性

问题描述

由于旋转角度使用正弦/余弦函数计算,具有周期性:

  • 每词旋转 30°,则位置 12(360°)与位置 0 的向量方向完全一致
  • 模型无法区分位置 0 和位置 12 → 位置混淆

YaRN 的解决方案:VTK-by-parts 分段函数调整

YaRN 提出结合“by-parts”机制,动态调整周期性参数,提升外推性能。

核心概念
  • 周期 :参数  完成一个完整循环所需的时间或步数
  • 圈数 :训练阶段完成的周期数
  • 阈值 :判断是否“充分训练”的临界值
分三阶段处理(by-parts)
情况条件处理方式
充分训练   保留原周期,无需调整
未充分训练   将周期缩放为 ,确保测试阶段至少完成一个完整周期
中间过渡   线性插值平滑过渡

✅ 优势:动态适应训练充分度,提升训练与测试阶段的一致性,尤其适用于长序列外推。


六、ALiBi:另一种相对位置编码视角

ALiBi(Attention with Linear Biases)提供了一种全新的位置编码思路:不显式编码位置,而是直接在注意力分数中加入基于相对距离的线性偏置

三大核心组件

图片

 

  1. 注意力分数矩阵(左图)
    传统 QK 点积结果,反映语义相关性。

  2. 偏置矩阵(右图)
    设计为线性衰减形式:

    例如:   与  距离为 2,则偏置为 

    📉 设计哲学:距离越远,负偏置越大,抑制长程依赖,鼓励局部关注

  3. 斜率项 

    • 与“注意力头数”相关
    • 多头时, 序列呈几何级数下降(如 
    • 实现多尺度位置感知

最终注意力计算

其中 

优势

  • ✅ 天然支持任意长度序列
  • ✅ 不依赖绝对位置,无外推限制
  • ✅ 计算高效,无需额外位置嵌入

🆚 对比 RoPE:
RoPE 外推能力较强(约可外推200 token),但仍受周期性限制;
ALiBi 更简单、更稳定,适合超长文本建模。


🔚 总结

现代大语言模型普遍采用相对位置编码(如 RoPE、ALiBi)来克服绝对位置编码的外推瓶颈。其中:

  • RoPE 通过旋转向量建模相对位置,表达能力强;
  • YaRN 改进 RoPE 的周期性缺陷,提升外推精度;
  • ALiBi 以线性偏置方式建模距离,简洁高效,适合超长序列。

这些技术共同推动了大模型在长文本理解、代码生成等任务中的突破。

转自:https://mp.weixin.qq.com/s/hF1MmdOpxPae0wVTSbFr4A

http://www.wxhsa.cn/company.asp?id=2627

相关文章:

  • UE RPC介绍
  • part 5
  • GAS_Aura-Code Clean Up
  • 最强大模型评测工具EvalScope
  • JS监听DOM元素的变化
  • CF1485F Copy or Prefix Sum
  • 拉格朗日反演定理(LIFT)
  • 云斗八月银组做题记录
  • 详细介绍:24年秋招-京东-后端开发岗-第1批笔试总结
  • 深入解析:中国AI云市场报告:阿里云份额达35.8%,高于2至4名总和
  • 关于前端的一些疑问整理2(选择器)
  • 模拟散列表(哈希表)
  • 题解:P3323 [SDOI2015] 旅行计划
  • GAS_Aura-Implementing Auto Running
  • 暑假周进度总结
  • 万能欧几里得算法
  • test
  • 直播软件源码,聊聊Java的异常机制问题 - 云豹科技
  • 调度引擎pefect
  • 我的编码规范
  • 静态库与动态库
  • 谷歌浏览器正规下载地址
  • RoPE使用复数乘法的原因
  • 2025 项目管理到底用什么软件?
  • 我就是我不一样的烟火
  • 周总结报告8
  • 深入解析:PostgreSQL 视图与物化视图(View / Materialized View)详解
  • Win11纯净版D盘出现黄色感叹号的问题
  • nuxt3中useCookie()轻松实现数据存储与安全优化
  • win11专业版如何设置窗口不叠加的问题