返回关卡地图
闯关题:0 / 2 XP 0 / 200

Level 17 | 零基础导学关卡

Autograd Basics

先用小例子把必要知识学会,再用 2 道闯关题检查理解,最后回到 notebook 写真正的 PyTorch 作业。

17_Autograd_Basics.ipynb AutogradAttention BackwardChain Rule
概念输入
闯关检查
Notebook 作业
dS = P ⊙ (dP-sum(dP⊙P))
Mission 1 TODO 1 / TODO 2

Attention 反传第一步:O = P @ V

先补的知识

  • 前向输出 O 由注意力概率 P 乘 value V 得到。
  • 矩阵乘法反传时,左边和右边都会收到梯度。
  • dV 和 dP 的 shape 要分别对齐 V 和 P。

图解原理

先从最后的混合结果倒推:输出对 V 的依赖像加权求和,输出对 P 的依赖像每个 value 被选了多少。

dOdV = P^T @ dOdP = dO @ V^T

语法热身:矩阵乘法的转置位置

dV = P.transpose(-2, -1) @ dO
dP = dO @ V.transpose(-2, -1)

闯关题

O = P @ V 的反传中,dV 应该使用哪个公式?

回到 notebook 的作业

这里不直接写答案。你已经拿到足够输入,最后用 notebook 的 TODO 做举一反三。

Mission 2 TODO 3 / TODO 4

穿过 Softmax,再回到 Q 和 K

先补的知识

  • P = softmax(S),softmax 反传不是简单逐元素乘。
  • S = Q @ K^T * scale。
  • dQ 和 dK 都要乘回 scale。

图解原理

梯度先穿过概率归一化层,再穿过打分矩阵;打分来自 Q 和 K 的相似度。

dPsoftmax backwarddSdQ, dK

语法热身:softmax backward 的常见写法

dS = P * (dP - (dP * P).sum(dim=-1, keepdim=True))
dQ = (dS @ K) * scale
dK = (dS.transpose(-2, -1) @ Q) * scale

闯关题

softmax 反传里为什么要用 keepdim=True 求和?

回到 notebook 的作业

这里不直接写答案。你已经拿到足够输入,最后用 notebook 的 TODO 做举一反三。

完成 2 道闯关题后,本关即算完成;作业 checklist 用来辅助你回 notebook 练习。
进度只保存在当前浏览器 localStorage,分享 HTML 不会带走你的记录。
上一关:L16 下一关:L18