R43.md · 可读全文

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

# R43 · 多头先分别读取,再让通道重新混合

最小模型用一路读取闭合了预测。现在让同一位置保留多路内容,看看它们怎样合并回原来的表示宽度。

<span id="r43-b4"></span>

## 状态 b4

默认图为同一位置画出两路投影与读取。两路结果仍是内容向量,不是两个词表答案。

多头本身不改变哪些位置合法可读;这个范围仍由任务和mask决定。

<span id="r43-b5"></span>

## 状态 b5

两路结果在concat处并列保留,观察通道如何从各自输出进入同一行。

<span id="r43-b6"></span>

## 状态 b6

输出投影将合并内容变回模型宽度,为下一页与原表示相加作准备。

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

## 状态 b0

备用数值态追踪“我”的第一头:按给定特征投影,读取三个来源并形成二维读出。

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

## 状态 b1

第二套投影形成另一组权重与读出。比较两头的输入角色相同、参数不同。

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

## 状态 b2

两份二维结果拼接成四维,分别保留各头通道。拼接没有把两头逐项相加。

<span id="r43-b3"></span>

## 状态 b3

W_O混合拼接通道得到O₁。这一行接着进入R44,与同位置原x₁相加。

## 公式与算例详情

### 两头读取怎样合成一个位置的输出

以下是 R43–R45 连续使用的全可见、未训练 post-norm 局部算例,关闭 dropout;与 B01 的 causal 模型仅作算子对应,不是同一次前向。可[从 b0 逐步复算](course/R43.html#r43-b0),或[回到默认解释 b4](course/R43.html#r43-b4)。

输入三行 $X=[(1,0,1,0);(0,1,0,2);(1,1,0,1)]$,分别标记我、给、书;标记只是保持 token 对应,数字不声称表达其真实语义。$d_{model}=4$,两个 head 各取 $d_k=d_v=2$,各自点积分数都除以 $\sqrt2$ 后再沿 key 轴做 softmax。

用从0开始、右端不含的 Python 切片记法,Head 1 的投影为 $Q_1=K_1=X[:,0:2]$,即取第一、第二特征;$V_1=X[:,2:4]$,即取第三、第四特征。Head 2 的 $Q_2$ 取第三、第四特征,$K_2$ 取第二、第一特征,$V_2$ 取第一、第二特征。写成参数矩阵时每个 W 都是 $4\times2$;源数值记录给出了这些矩阵,图中显示了投影等价的特征选择。对第一个 token,head 1 的权重约为 $(0.401112,0.197776,0.401112)$,读出 $(0.401112,0.796664)$;head 2 的权重为 $(0.197776,0.401112,0.401112)$,读出 $(0.598888,0.802224)$。

拼接得到 $r=(0.401112,0.796664,0.598888,0.802224)$。令 $W^O$ 的四行依次为 $(1,0,1,0),(0,1,0,1),(1,0,-1,0),(0,1,0,-1)$,则 $rW^O=(1.000000,1.598888,-0.197776,-0.005560)$。两头先各自产生结果,再由输出投影组合,而不是简单平均热图。真实 head 也不必固定承担“语法头”“语义头”等人工职业。

### 参考与采用

- [Vaswani et al. · Attention Is All You Need](https://arxiv.org/abs/1706.03762):原始 encoder–decoder Transformer:信息来源、并行性、路径和代价。 复核位置:§3、Table 1/2;本轮核对v7 PDF;首次提交2017-06-12

原课页采用记录:[M22 矩阵与读取对应](sources.html#M22)、[M26 多头 attention](sources.html#M26)。页码均按PDF物理页计。

### 继续学习

如果两头结果怎样合并仍不清楚,先从[完整局部数值](lecture.html#read-R43)核对两个 2 维读出、concat 与 Wᴼ;[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)“7 · 多头、残差、FFN,各自改变什么”解释职责,[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”复算同一链;之后另开 causal 配置时须重新检查 mask,不能混用全可见结果。