R39.md · 可读全文

这里保留原文的中文、公式标记、代码和链接。可直接交给 Agent 读取,也可选取下方原文复制。此入口返回 HTML;原始 .md / .py 文件仍保留,完整候选包同时包含 UTF-8 原件。

# R39 · 拿掉递归顺序后,真正重排输入试一次

全attention提供了直接交互,但拿掉循环顺序后,它是否还知道哪个位置在前?本页先不给位置信息,真正重排输入检查一次。

<span id="r39-b0"></span>

## 状态 b0

固定X和投影,在无位置、无位置相关mask条件下计算三行输出,作为重排前参照。

<span id="r39-b1"></span>

## 状态 b1

交换输入行后重新计算F(PX),并与PF(X)逐行对照。两个对象分别是新计算与原结果的相同排列。

<span id="r39-b2"></span>

## 状态 b2

对应差异落在浮点容差内,验证这次数值例符合等变关系。输出随输入换行;平均聚合后才得到不变向量。

下方推导给出一般恒等式;本次浮点核对检查的是这一组输入与实现。

## 公式与算例详情

### 没有位置时,重排会发生什么

设 F 是没有位置信号、没有位置相关 mask 的全 self-attention,投影在各位置共享。对置换矩阵 P,有 $Q'=PQ,K'=PK,V'=PV$,所以分数表变为 $P(QK^{\mathsf T})P^{\mathsf T}$。逐行 softmax 跟随同样的行列置换,最终 $F(PX)=PF(X)$。

取她、给、我分别对应 $(1,0),(0,1),(1,1)$,并令投影为单位矩阵、按 $\sqrt2$ 缩放。三个输出约为 $(0.802,0.599),(0.599,0.802),(0.752,0.752)$。交换她与我的输入行,输出只变成第三、第二、第一行,跟着 token 一起移动;它没有额外编码“第一位”这个角色。

这叫置换等变,不是说每个输出完全不变。若进一步对各行做平均,聚合才具有置换不变性。causal mask 会改变可见图,不能直接套用本页的无 mask 结论;位置相关偏置也会改变前提。

原课页采用记录:[M24 位置、等变与 RoPE](sources.html#M24)。页码均按PDF物理页计。

### 继续学习

要检验重排结论,沿[置换等变证明与三行数值](lecture.html#read-R39)先只交换输入行,验证输出跟随行移动。[Transformer 的信息流](https://codingai-lec05.pages.dev/course/knowledge/transformer-information-flow.html)“重排一次,再让位置进入计算”与[CLS 02](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-05-841ec8e7-e352-4840-b628-d3742b03d6d0/notebook/CLS-02-Attention-Transformer-2d44adcb6f3d409aa7dfb25c21a748a3?utm_content=2d44adcb6f3d409aa7dfb25c21a748a3&utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_term=get_notebook)同题段落随后加入位置;在[LAB 03](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-05-841ec8e7-e352-4840-b628-d3742b03d6d0/notebook/LAB-03-Transformer-9c5b3d45acdb438a8e7df1dc6cb97e40?utm_content=9c5b3d45acdb438a8e7df1dc6cb97e40&utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_term=get_notebook)“F · 跟着一个 token 穿过完整 encoder block”中分别开关位置与 mask,避免一次改变两种前提后仍声称检验同一恒等式。