设 dk=d 。
1.缩放点积得分 S=dkQKT
2.加掩码(如果提供) S←S+mask
3.行级数值稳定 softmax
S=S−S.max(axis=1,keepdims=True)
P=exp(S)/exp(S).sum(axis=1,keepdims=True)
4.加权求和 O=PV ,结果形状 (m,dv)
5.输出展开
单行 JSON:
{
"Q":[[...],...], //形状 (m,d)
"K":[[...],...], //形状 (n,d)
"V":[[...],...], //形状 (n,dv);本题 dv==d
"mask":[[...],...] or null //形状 (m,n) ;0 表示可见,−1e9 表示屏蔽
}
2≤d≤4,1≤m,n≤3
所有值为实数
若"mask"为 null ,视为全 0
使用 round(x,6) 保留小数位即可,返回单行 JSON 数组
为了确保通过测试用例,仅允许使用 Numpy 实现
输入
{"Q":[[1,0]],"K":[[1,0]],"V":[[5,5]],"mask":null}
输出
[5.0, 5.0]