flowchart TD
subgraph S1["① 输入表示层"]
T["Token IDs
你, 好, 我, 是"] --> E["Embedding 查表
+ 位置编码"]
end
subgraph S2["② 多头自注意力 (并行核心)"]
E --> QKV["三个线性投影层
生成 Q, K, V 矩阵"]
QKV --> ATT["缩放点积注意力
Attention = softmax(Q·K^T / √d) · V"]
ATT --> CON["拼接多头结果
→ 输出投影层"]
end
subgraph S3["③ 前馈网络 (FFN) 与残差"]
CON --> FFN["两层线性层 + 激活"]
FFN --> H["最终隐藏状态
形状: [4 × d_model]"]
end
subgraph S4["④ 输出投影 (LM Head) → 得到 Logits 矩阵"]
H --> HEAD["线性层 (权重 W_out)
维度: d_model → |Vocab|"]
HEAD --> MATRIX["Logits 矩阵 (原始分数)
形状: [4 × 词表大小 V]
位置0 (预测'好'): [2.1, -0.5, 0.8, ...]
位置1 (预测'我'): [1.3, 3.2, -1.1, ...]
位置2 (预测'是'): [0.7, 1.8, 2.4, ...]
位置3 (预测'苹果'): [2.5, 0.2, 1.6, ...]"]
MATRIX --> PROB["(可选) Softmax
转为概率分布"]
end
S1 --> S2 --> S3 --> S4
style MATRIX fill:#ede9fe,stroke:#8b5cf6,stroke-width:2px,color:#4c1d95
style PROB fill:#dbeafe,stroke:#60a5fa,color:#1e3a8a
style QKV fill:#fef3c7,stroke:#fbbf24
style ATT fill:#fce7f3,stroke:#f472b6
style HEAD fill:#e0e7ff,stroke:#818cf8