視覺 Transformer

查詢-鍵-值(query-key-value, QKV)

查詢、鍵、值是每個詞元在注意力裡扮演的三種角色,它們讓整個機制感覺像是一次柔性、可微分的字典查找。打個比方:查詢是你輸入的搜尋詞,鍵是每個條目上、用來與你的搜尋比對的標籤,值則是該條目底下實際存放的內容。你拿查詢去和所有鍵比對,決定每個條目有多匹配,再取回一份依匹配度加權的值的混合。注意力正是這個查找,只是柔性的——它不回傳單一條目,而回傳所有條目的加權混合。

它們從哪來?從同一個輸入來。每個詞元的嵌入向量被三個各自獨立的學習式權重矩陣——W_Q、W_K、W_V——相乘,產生它的查詢、鍵、值向量。這些矩陣就是注意力學到的參數:它們決定一個詞元把自己的哪一面當成鍵來宣傳、用什麼當查詢去發問、又提供什麼酬載當值。把這三者分開是關鍵點子——一個詞元可以搜尋某一種性質,同時提供另一種性質,於是「什麼讓我容易被找到」與「被找到時我交出什麼」就被解耦了。

投影完成後,互動是機械式的:分數來自查詢點鍵,權重來自對這些分數做 softmax,輸出來自把這些權重套用到值上。在自注意力中三個矩陣都讀同一條序列;在交叉注意力中查詢來自一條序列、而鍵與值來自另一條,這正是解碼器從編碼器汲取資訊、或文字提示去調控影像特徵的方式。同樣三種角色,不同的來源。

一個來自大規模部署的實務皺褶:在推論時,鍵與值主宰了記憶體,因為它們必須為每個過去的詞元被快取(KV 快取),而它們可以跨頭共享以節省記憶體——多查詢注意力(multi-query attention)讓所有頭共用一組鍵/值,分組查詢注意力(grouped-query attention)則用少數幾組。這些變體只改變「存在多少組各異的 K/V 投影」,並不改變查詢-鍵-值的根本概念。

Q 與 K 必須共享維度,因為你要把它們做點積,但 V 原則上可以有不同的維度——它的大小決定每個頭的輸出寬度。忘記「真正承載資訊的是值的路徑」(查詢/鍵的路徑只負責算權重)是常見的觀念失誤。

又称
QKVquery key value查詢鍵值Q/K/V projections