Три роли одного представления
Для X[n,d_model] матрицы W_Q,W_K,W_V переводят каждую строку в query, key и value. В простом случае ширины одинаковы:
Если W_Q=I, то Q=X. Но identity — это матрица проекции; Q не обязана быть квадратной или единичной. В default X=[[1,0],[0,1],[1,1]] имеет shape[3,2], а каждая проекция[2,2].
При W_Q=[[2,0],[0,1]] первая query становится[2,0], третья[2,1]. W_K и W_V можно оставить прежними: тогда изменён способ сравнения query, но не сами values. В реальной модели эти матрицы обучаются совместно с loss; ползунок лаборатории лишь задаёт их вручную.
Эксперимент. Сначала поменяйте W_Q, затем W_V. В первом случае меняются scores и coefficients; во втором при неизменных Q/K coefficients остаются прежними, меняется содержимое смеси. Shapes проверяются до вычисления: произвольный reshape не исправляет несогласованные матрицы.