Self-Attention 是 Transformer 的核心。它让每个 token 都能「看」序列中的其他 token,
并根据相关性分配不同的权重。本关你需要实现 attention(Q, K, V),计算缩放点积注意力。
√dₖ 进行缩放,防止梯度消失先计算 Q·Kᵀ 得到相关性分数矩阵,形状为 (seq_len, seq_len)。
记得除以 sqrt(d_k),其中 d_k 是 K 向量的维度。
对分数矩阵做 softmax,再乘以 V 得到最终输出。
用 numpy 广播能一行搞定 softmax,关键别忘了 √dₖ 缩放,否则会数值溢出!
右侧的热力图太直观了,终于理解了「cat 主要关注自己」是什么意思。