語言人工智慧指南

分組查詢注意力

分組查詢注意力(GQA)是一種透過讓多個查詢頭共享相同的鍵和值頭來縮小文字生成過程中所需記憶體的方法。

閱讀時間約2分鐘最後更新

概述

It makes large models much faster to serve with almost no quality loss.

深入探討

在標準的多頭注意力層中,每個頭都有自己的查詢、鍵和值。在生成過程中,所有先前令牌的鍵和值都會被快取(「KV 快取」),因此模型不會重新計算它們。由於有許多頭和長上下文,該快取變得巨大並在推理時佔據記憶體頻寬。 GQA 由 Google 研究人員於 2023 年引入,將查詢頭分組,並為每個群組提供一組共享的鍵和值頭。如果您有 32 個查詢頭,但只有 8 個 KV 群組,則 KV 快取會縮小約四倍。它位於完全多頭注意力(每個頭獨立)和多查詢注意力(所有頭共用一個 KV)之間,捕捉 MQA 的大部分速度,同時保持品質接近完全注意力。 Llama 2 70B以及後來的許多型號都採用了它。

技術洞察

注意力品質在很大程度上取決於許多不同的查詢方向,但它允許共享鍵和值。 GQA 利用了這種不對稱性:它保留所有查詢頭,但在其群組中的查詢之間複製每個共享的 KV 頭。節省來自推理,其中 KV 快取是記憶體頻寬的主要消耗者;更少的 KV 頭意味著每個產生的令牌要讀取的資料更少。通常會對模型進行簡短的“升級訓練”,以將現有的多頭檢查點轉換為 GQA 檢查點。

戰略影響

速度與規模

語言工作流程可以在不犧牲一致性的情況下更快地移動。

交通與覆蓋範圍

它擴展了跨語言和溝通方式的訪問。

更明確的決策

團隊可以花更多時間進行判斷,而自動化則可以處理重複。

分組查詢注意力的未來

GQA 現在是開放重量模型中的標準預設設置,因為它乾淨利落地以微小的品質成本換取了巨大的服務勝利。預計它將越來越多地與其他效率技巧相結合,例如 FlashAttention、KV 快取量化,以及新方案(例如進一步壓縮快取的多頭潛在註意力)。隨著上下文視窗的成長,控制 KV 快取大小仍將是核心設計問題,而 GQA 式的頭共享仍將是關鍵槓桿。

現實世界的實施

Llama 2 70B 和 Llama 3 使用 GQA 提供具有較小 KV 快取的長上下文

減少 GPU 內存,以便大型聊天模型適合更少或更便宜的加速器

加速生產 API 中逐個令牌的生成,其中 KV 快取頻寬是瓶頸

啟用更大的批量大小,同時為許多用戶提供服務,而不會耗盡內存

風險與防護欄

幻覺的事實可以悄悄地進入報告、支持流程或研究成果。

及時的敏感性可能會在類似的請求中產生不一致的結果。

如果存取控制薄弱,敏感文字資料可能會暴露。

實施路線圖

1

在推出之前定義輸出格式、語氣和品質標準。

2

當準確性很重要時,請使用可信任來源進行地面回應。

3

為高風險輸出保留人工審查檢查點。

4

追蹤故障模式並定期重新訓練提示或工作流程。

不斷探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Grouped-Query Attention quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

開始測驗

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一步指南

多查詢注意力

常見問題

What is Grouped-Query Attention?

分組查詢注意力(GQA)是一種透過讓多個查詢頭共享相同的鍵和值頭來縮小文字生成過程中所需記憶體的方法。它使大型車型的服務速度更快,幾乎沒有品質損失。

在分組查詢注意力中,一組查詢頭之間共享什麼?

GQA 保留單獨的查詢頭,但讓每一組共用一組鍵和值頭,從而縮小 KV 快取。

GQA 最好被描述為哪兩個極端之間的中間立場?

多頭賦予每個頭自己的 KV;多查詢所有頭共享一個KV; GQA 與一些 KV 組介於兩者之間。

GQA 主要使推理的哪一部分變得更便宜?

節省的時間體現在生成時,其中讀取 KV 快取是主要的記憶體頻寬成本。

如果一個模型有32個查詢頭和8個KV組,KV快取大約減少多少倍?

32 個查詢頭除以 8 個共用 KV 群組,快取的鍵和值大約減少四倍。

為什麼儘管共享 KV 頭,GQA 仍能保留大部分模型品質?

注意力對共享鍵和值的容忍度遠遠好於對丟失不同查詢方向的容忍度,因此 GQA 保持了高品質。