Transformer 引擎
查詢、鍵與值(queries, keys, values)
想像注意力的一個好方法,是把它看成圖書館的查找。每個詞元寫下一個查詢——我現在在找什麼?每個詞元也貼出一個鍵,作為宣傳自己內容的標籤;並握有一個值,也就是它真正要交出去的內容。為了決定要讀什麼,一個詞元拿自己的查詢去比對所有的鍵,再把那些鍵最匹配的值混合起來取回。
這三者並不是原始的詞元向量;它們是由它學出來的三個各自獨立的投影。同一個輸入被乘上三個不同的權重矩陣,分別產生查詢、鍵與值,各自活在自己的空間裡。把它們分開,讓一個詞元能問一種問題、卻宣傳另一種答案。查詢與鍵的比對產生分數;值才是真正被混合並往下傳的東西。
這三個名字乾淨地對應到比喻:查詢去找,鍵被找,值被端上。過去詞元的鍵與值,正是大型語言模型在推論時所快取的東西,這樣它每生成一個新詞時就不必重算一遍。
\text{Attention}(Q,K,V)=\operatorname{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V
查詢與鍵比對後對值加權;除以 √dₖ 是為了避免分數變得過大。
又称
另见