AI解剖课堂 · Part 5 彻底搞懂注意力

第 50 章 一次全算完

Q. 要是有 1,000 个词,第 47~49 章的计算难道要分开做 1,000 遍?

  1. 到现在只算了“学校”一个词。要是有 1,000 个词,难道要分开算 1,000 遍?
  2. 把词向量一行一行叠起来,就是矩阵(第 10 章)。乘上第 46 章的三个矩阵,所有词的 Q、K、V 一次就出来了。
  3. 接着算 Q × Kᵀ。Kᵀ 是把 K 横过来放倒的矩阵。结果的每一格都是 Q 的一行和 K 的一行的点积,也就是第 47 章的分数表。
  4. 把整张分数表除以 √2,再对每一行做 Softmax(第 48 章)。现在每一行都装着那个词看各个词的比例。
  5. 最后算比例表 × V。结果的每一行,就是第 49 章的调颜料。所有词的新向量一次全出来了。
  6. 把这个过程写成一个式子就是 softmax(QKᵀ/√d)V,正是 2017 年论文(第 44 章)里的注意力公式。
  7. 矩阵乘法可以让 GPU 同时算好多格。所以 Transformer 处理长句子也能一口气、很快地算完(第 44 章)。

本章小结