18. 看见 Self-Attention

Medium +150 XP
👥 6.7k 通过📄 通过率 64%⭐ 4.9 (312)
📖 描述
💡 提示
📤 提交记录
💬 讨论 (48)

Self-Attention 是 Transformer 的核心。它让每个 token 都能「看」序列中的其他 token, 并根据相关性分配不同的权重。本关你需要实现 attention(Q, K, V),计算缩放点积注意力。

注意力公式

Attention(Q, K, V) = softmax( Q·Kᵀ / √dₖ ) · V

示例

输入句子:"The cat sat"
期望:返回 3×3 注意力权重矩阵,每行和为 1
output ≈ [[0.5, 0.3, 0.2],
           [0.2, 0.6, 0.2],
           [0.3, 0.3, 0.4]]

约束条件

  • 必须除以 √dₖ 进行缩放,防止梯度消失
  • softmax 沿最后一个维度归一化
  • 输出矩阵每行之和应为 1.0
🎯
通关目标:补全右侧代码,点击「运行」使注意力热力图正确渲染,再点击「提交」通过全部 5 个测试用例。
solution.py Python 3 ⟲ 重置
可视化模式 / 代码模式
🧪
点击「运行」查看注意力热力图与输出结果。