把 Q/K/V 当成三张工作卡
这个页面不用真实大模型的几千维向量,只用一个玩具数字例子解释:模型怎么从 token 得到 embedding,怎么做 Q/K/V,又怎么用它预测下一个 token。
注意:这里的数字是为了讲清楚流程而手写的小例子,不是某个真实模型的参数。
我
喜欢
下一个?
embedding:token id 去表 E 查一行
Q/K/V:q=xWq, k=xWk, v=xWv
attention:Q 匹配 K,再加权混合 V
Step 1 / 6
先把词变成编号
模型不能直接吃“我/喜欢”这些字,它先把每个 token 变成固定编号。编号本身没语义,只是查表用的下标。
1. Tokenizer:词 → id
我id 391
喜欢id 1842
3. 三台制卡机
Wq做 Q 卡
Wk做 K 卡
Wv做 V 卡
4. “喜欢”的三张卡
Q想找什么
K怎么被匹配
V能提供什么信息
5. Q 去问已有 K:“谁和我最相关?”
Q喜欢·K我0.28
Q喜欢·K喜欢0.72
这里只看已经出现的 token,不能偷看答案“猫”。
6. 按权重吸收 V
h_喜欢 = 0.28·V我
+ 0.72·V喜欢
+ 0.72·V喜欢
得到新的上下文向量 h
7. 用 h_喜欢 猜下一个词
吃0.18
狗0.36
猫0.72
x 身份证卡Q 我想找谁K 我怎么被找V 我提供什么