R41.md · 可读全文

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

# R41 · 已知的训练句,也必须守住预测边界

知道位置还不等于守住预测边界。训练时完整答案已经在数据里,需要把每一行的输入、目标和可读来源对齐。

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

## 状态 b0

上下两排错开一格:gave输入对应her目标。当前输入合法可读,不等于当前答案已输入。

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

## 状态 b1

按query行、key列显示加性mask,对角线属于允许区域。这里的0是连接许可,不是零读取概率。

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

## 状态 b2

高亮gave行,只允许BOS、I、gave;her和a未来列被挡住。预测目标仍是her。

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

## 状态 b3

高亮行把合法分数归一化,未来列概率为0。观察允许区域怎样从mask变成真实权重。

只有高亮行切换成概率;其余行仍显示mask,不能把两种数字当作同一张权重表读。

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

## 状态 b4

BOS行只可读自身,权重为1,目标为I。对角线仍是已知输入而非目标答案。

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

## 状态 b5

I行只在BOS、I间分配权重,目标为gave。合法范围随当前输入位置扩大一格。

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

## 状态 b6

her行读前四个已知输入,目标为a。不能因her是前面某行的答案,就把它从本行合法前缀中删去。

<span id="r41-b7"></span>

## 状态 b7

a行读五个已知输入,下一词book仍未进入输入。检查目标轴与输入轴末端的错位。

## 公式与算例详情

### 输入、目标与可见范围一起核对

训练输入是 BOS、I、gave、her、a,监督目标依次为 I、gave、her、a、book。每个位置要预测的是下一个 token,而不是复制自己的输入。以第三列为例,输入 gave 所在的表示负责预测 her;它可以读取 BOS、I 和 gave,但不能读取作为第四个输入出现的 her。

按 query 行、key 列存储分数时,$M_{ij}=0$ 若 $j\le i$,否则为 $-\infty$;$A=\operatorname{softmax}(QK^{\mathsf T}/\sqrt{d_k}+M)$。所以保留对角线,屏蔽的是它右侧的未来列。对于一行示意 logits $(1,2,3,4,5)$,选中 gave 行后变为 $(1,2,3,-\infty,-\infty)$,softmax 为 $(0.090031,0.244728,0.665241,0,0)$。

padding mask 是另一项可见性限制,通常与 causal mask 共同使用;训练损失也应忽略填充目标。实现时应检查被完全遮住的行,避免 softmax 全为负无穷而出现 NaN。输入移位、mask 方向和 loss 目标必须一起核对,单看一个三角图容易画错。

### 参考与采用

- [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

原课页采用记录:[M25 mask 与预测目标](sources.html#M25)。页码均按PDF物理页计。

### 继续学习

如果三角方向容易画反,先按[输入与监督目标对应表](lecture.html#read-R41)列出 BOS I gave 与下一词目标,再在[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)“6 · 先写输入和标签,再画 mask”核对 gave 行。[LAB 02](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-05-841ec8e7-e352-4840-b628-d3742b03d6d0/notebook/LAB-02-bba1d024d8e64a589c290b09381de692?utm_content=bba1d024d8e64a589c290b09381de692&utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_term=get_notebook)“D · 源、decoder输入、目标,分别是哪一行?”检查 shift、EOS、PAD 与 loss;[Transformer 的信息流](https://codingai-lec05.pages.dev/course/knowledge/transformer-information-flow.html)“不同长度的 batch 同时需要两种 mask”继续区分 padding 和 causal 限制。