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["最终隐藏状态
形状: [7 × d_model]"]
end
subgraph S4["④ 输出投影 (LM Head) → Logits 矩阵(无省略)"]
H --> HEAD["线性层 (权重 W_out)
d_model → |Vocab| (设定 V=4)"]
HEAD --> MATRIX["**Logits 矩阵 [7 × 4]**
位置0 (预测'急'): [0.12, -0.34, 0.89, 2.41]
位置1 (预测'天'): [0.55, 1.82, -1.13, 0.22]
位置2 (预测'高'): [2.31, 0.74, 1.55, -0.88]
位置3 (预测'猿'): [-0.44, 1.14, 0.66, 3.22]
位置4 (预测'啸'): [0.92, -0.71, 2.21, 1.33]
位置5 (预测'哀'): [1.12, 2.54, -0.24, 0.95]
位置6 (预测下一个词): [0.78, -0.53, 1.46, 2.12]
⭐ 共7行,每行4个数字,全部逐个写出"]
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