Transformer 原理:自注意力机制
自注意力机制是 Transformer 架构的核心,也是现代大语言模型(如 GPT)取得巨大成功的关键。它允许模型在处理序列数据(如文本)时,动态地衡量句子中不同单词之间的重要性。
工作原理:Query, Key, Value
核心思想:为句子中的每个词都配备一个“关系探测器”。当模型试图理解一个词时,这个词会发出一个查询 (Query),去和句子中所有词的键 (Key)进行匹配,计算一个“相关性分数”。这个分数决定了每个词的值 (Value)应该被给予多大的“注意力”。
Query (Q)
代表当前正在处理的词,它在“主动查询”与其他词的关系。
Key (K)
代表句子中所有词的“标签”,用于被 Query 查询和匹配。
Value (V)
代表句子中所有词的实际内容。最终的输出是所有 Value 的加权平均,权重由 Q 和 K 的匹配度决定。
动手试试:
将鼠标悬停在下面句子中的某个单词上,观察模型是如何计算注意力分数,并为其他单词赋予不同权重的。例如,当关注“它”时,模型会给予“猫”最高的注意力。
import numpy as np
def softmax(x):
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum(axis=0)
# 1. Q, K, V (通过权重矩阵与输入相乘得到)
# Q_it = X_it @ W_Q
# K_all = X_all @ W_K
# V_all = X_all @ W_V
# 2. 计算分数
# scores = Q_it @ K_all.T
# 3. 计算权重
# weights = softmax(scores / sqrt(d_k))
# 4. 加权求和
# output_it = weights @ V_all
计算过程: