模型層 開放閱讀

解碼階段

Decode

概念 ID
decode
更新時間
2026-05-29
來源數量
待補

解碼階段

一、摘要:大型模型推論的真正瓶頸在“等”,不在“算”

大型語言模型(LLM)的推論過程可分為兩個截然不同的階段——預填充(prefill)與解碼(decode)。預填充階段是一次性將所有輸入 token 並行處理,計算密集、算力利用率高;而解碼階段則是典型的自迴歸過程:每生成一個 token,都必須讀取整個歷史上下文對應的 Key 和 Value 快取(KV Cache),再進行一次輕量級的前向傳播。這個階段的計算量極小,但資料搬運量極大,導致 GPU 中大量計算單元空轉,系統整體吞吐被視訊記憶體頻寬牢牢鎖死。這就是業界所說的 “記憶體牆” 問題,也是當前 LLM 推論成本畸高、延遲難以降低的核心根源。

本文將圍繞解碼階段的本質展開深度剖析,從自迴歸生成機制、KV 快取原理出發,引入算術強度與 Roofline 模型,闡釋記憶體頻寬如何成為唯一瓶頸。隨後,本文系統梳理記憶體牆帶來的產業影響——從 GPU 算力利用率長期低於 15%,到批處理規模擴大的邊際收益遞減,再到延遲抖動與長尾問題。最後,我們將全景式地介紹業界為突破記憶體牆而衍生出的關鍵技術路線:FlashDecoding、多查詢/分組查詢注意力(MQA/GQA)、PagedAttention、投機解碼、分離式推論架構等,並分析其各自的機理、收益與代價。全文力求在技術深度與產業視野之間取得平衡,為讀者提供一份關於解碼階段瓶頸與最佳化的系統性研究報告級參考。

二、背景:自迴歸語言模型的推論範式

在深入解碼階段之前,有必要先確立大語言模型推論的宏觀圖景。當前主流的 LLM——無論是 GPT-4、Llama 3、Claude 還是 Mistral——均採用基於 Transformer 解碼器的自迴歸架構。所謂“自迴歸”,是指模型以已知的字首序列為條件,預測下一個 token 的機率分佈,再從該分佈中取樣得到新的 token,並將其拼接到輸入末尾,形成一個迴圈:輸入 → 預測 token1 → 拼接入輸入 → 預測 token2 → …。這種逐 token 生成的方式天然契合人類語言的線性流,但也帶來了序列依賴的固有限制。

從系統角度看,一次完整的生成任務經歷兩個階段:

  • 預填充階段(Prompt Processing):模型一次性接收使用者輸入的全部 prompt token(通常從幾十到數十萬 token 不等),經過所有 Transformer 層的並行前向傳播,計算出每個位置的 Key 和 Value,並儲存在視訊記憶體中供後續複用。這一階段計算量大,矩陣乘法尺寸可觀,能充分利用 GPU Tensor Core 的算力,屬於典型的計算密集型任務。

  • 解碼階段(Token Generation):從第一個生成的 token 開始,模型每步只輸入一個新 token,但必須讀取預填充階段儲存的、以及所有之前解碼階段累積的全部 Key 和 Value,用於多頭注意力計算。每一輪僅輸出一個 token,並將其對應的 K、V 追加到快取中,直到達到最大長度或生成結束符。

預填充和解碼的資源需求差異極大,二者的瓶頸正好相反。預填充像是一場百米衝刺,所有計算單元同時開足馬力;解碼則像是一場無限迴圈的螞蟻搬家,每次只搬一小粒米,卻要翻遍整個倉庫才能把米運出來。正是這種“每次只做一點點計算、卻要訪問全部歷史資料”的特性,將解碼階段推向了記憶體頻寬這一無情的物理天花板。

三、解碼階段定義與 KV 快取的本質

3.1 逐 Token 生成的工作流程

自迴歸解碼可以被抽象為以下簡單迴圈:

while 未遇到結束符:
    emb = TokenEmbedding(current_token)
    for layer in each Transformer layer:
        Q = W_q @ emb
        K_new, V_new = W_k @ emb, W_v @ emb
        K = concat(KV_cached_K[layer], K_new)
        V = concat(KV_cached_V[layer], V_new)
        attn_out = softmax(Q @ K^T / √d) @ V
        emb = LayerNorm(attn_out + residual)
        emb = FFN(emb)
    logits = W_vocab @ emb
    next_token = Sample(logits)
    更新 KV 快取
    current_token = next_token

對於一個 70B 引數的模型,分佈在數十層 Transformer 中,每一層都維護著自己的一份 K 和 V 快取。隨著對話輪次和上下文長度的累積,快取大小線性膨脹。當上下文達到 4096、8192、甚至 128K token 時,單層的 K 和 V 就可能達到數 MB 量級,再乘以幾十層,總 KV 快取輕鬆超過數十 GB。

3.2 KV 快取的動機與代價

引入 KV 快取,是為了避免每一步都重新計算整個上下文的 Key 和 Value。在注意力機制中,當前 token 需要與序列中的所有歷史 token 進行互動。如果每一輪解碼都對整個字首重新做一次完整前向,那麼生成 N 個 token 的複雜度將是 O(N²L)(L 為字首長度),這在端側或大規模服務中將不可接受。KV 快取將複雜度降至 O(NL),用空間換時間。

但代價是沉重的:每個 token 的生成,都必須讀取整個 KV 快取,而這些快取分佈在 GPU 的高頻寬儲存器(HBM)中。HBM 雖然頻寬可觀(H100 約為 3.35 TB/s),但在數千 token 的場景下,所需讀取的資料量遠超實際計算所需的等效資料量(因為每個 token 僅用少數字節的計算就能“消費”巨量的 K 和 V)。記憶體帶寬於是成為整個推論流水線中最緊繃的約束。

四、記憶體牆問題:從現象到本質

4.1 算力與頻寬的剪刀差

近十年來,GPU 的計算能力遵循摩爾定律般持續倍增。以 NVIDIA 資料中心 GPU 為例,2018 年的 V100 提供約 125 TFLOPS 的混合精度算力;2022 年的 H100 在 FP16 Tensor Core 下達到 990 TFLOPS,FP8 更是來到 1979 TFLOPS,提升近一個數量級。然而,HBM 頻寬的增長卻慢得多:V100 約為 900 GB/s,H100 約 3.35 TB/s,增幅僅 3.7 倍。算力與頻寬之間的“剪刀差”日益加大。正是這一趨勢,使得越來越多的工作負載從計算密集型轉變為記憶體頻寬密集型,而大型模型解碼恰好站在這一交叉點的最極端位置。

4.2 解碼階段的硬體利用率實測

SemiAnalysis 在 2023 年針對 Llama 2 70B 模型做推論壓測時發現,即使使用 8 張 H100 GPU 做張量並行,解碼階段達到較高請求併發時,GPU 的浮點計算單元利用率也僅為 12%~15%,其餘時間幾乎全在等待資料從 HBM 傳輸到計算核心。微軟 Azure 團隊在類似條件下對 GPT-3.5 級別模型的測試也顯示出類似趨勢:批處理中每位使用者的“吐字”延遲,與當前總 KV 快取大小呈強正相關,而非算力峰值。

這背後的物理本質是:注意力運算元 softmax(QK^T/√d)V 中,Q 僅為單個 token 的向量(形狀大致是 [batch_size, num_heads, 1, head_dim]),而 K 和 V 均為 [batch_size, num_heads, seq_len, head_dim],其中 seq_len 從預填充的數百到最終生成的數千甚至數萬。QK^T 的計算量受 batch_size 和 seq_len 乘積驅動,但權重載入和 KV 快取的讀取量受引數量與 KV 快取總大小驅動。對於一個序列長度達到 4096 的解碼步驟,從 HBM 讀取的 K 和 V 資料量往往是 QK^T 計算量的數十倍甚至上百倍。也就是說,數值計算單元在每一個解碼步中只需要極短時間即可完成運算,剩餘時間全在“等”。

4.3 與預填充的定性對比

預填充階段沒有 KV 快取的讀取開銷(因為尚未快取),其注意力計算是基於完整輸入 token 序列一次性執行矩陣乘法,可以高效對映到 GEMM 類操作,滿佔 Tensor Core。這是預填充階段算力利用率可以超過 60% 的主要原因。而解碼階段由於單 token Q 的序列維度為 1,注意力計算退化為一連串的 GEMV(矩陣-向量乘),其算術強度低得可憐,天然不適合 GPU 這類並行處理器,也使得頻寬瓶頸效應被急劇放大。

因此,當我們談論大型模型推論的效能時,本質上是在描述兩個極端之間的切換:一個極端是計算吃飽、頻寬無壓力的預填充;另一個極端是計算飢餓、頻寬佔滿的解碼。兩者的資源需求幾乎正交,給推論系統的設計與排程帶來極大挑戰。

五、算術強度與 Roofline 模型視角下的解碼

5.1 算術強度的計算

算術強度(arithmetic intensity)定義為完成一次前向傳播所需的浮點運算次數與所需記憶體訪問位元組數之比,單位是 FLOPs/Byte。對於 Transformer 解碼的一步,計算量主要由前饋網路(FFN)和注意力矩陣乘法組成,可近似為 2 × 引數量 FLOPs。對於一個 70B 的密集模型,單 token 計算量約為 140 GFLOPs。而訪存需求則包括模型權重的讀取和 KV 快取的讀取。假設模型權重以 FP16 儲存,引數量 70B 約需 140 GB 儲存,在理想的單次推論中每生成一個 token 需完整掃一遍權重,即 140 GB 讀取。再加上 KV 快取的讀取:對於 40 層、每層 8 個注意力頭、頭維度 128 的模型,假設序列長度為 4096,則單層的 K 或 V 大小約為 8 × 4096 × 128 × 2 bytes = 8.4 MB,兩層合計約 16.8 MB,40 層約 672 MB。因此一次解碼的訪存量粗略估計為權重 140 GB + KV 快取 0.67 GB,總計約 140.7 GB。

算術強度 = 140 GFLOPs / 140.7 GB ≈ 1 FLOP/Byte。注意這已經是樂觀估計,實踐中因為多層次記憶體層次(HBM → L2 → SRAM)及硬體實際利用率問題,有效頻寬遠低於理論值,所以實際強度可能低至 0.1~0.5 FLOP/Byte。

5.2 Roofline 模型的斷言

在 Roofline 模型中,任何工作負載的效能都受限於兩個天花板:一個是處理器的計算峰值(算力),另一個是記憶體頻寬峰值乘算術強度。當算術強度低於計算峰值與頻寬的比值時,負載就處於記憶體頻寬受限區。對於 H100,FP16 算力 990 TFLOPS,記憶體頻寬 3.35 TB/s,比值為 990e12 / 3.35e12 ≈ 296 FLOP/Byte。而解碼階段僅 1 FLOP/Byte 左右的算術強度,遠低於這一臨界值,毫無疑問落在頻寬受限區。此時 GPU 最多能達到的吞吐 = 算術強度 × 記憶體頻寬 ≈ 1 × 3.35e12 = 3.35 TFLOPS,僅為峰值算力的 0.34%。雖然這是一種極端理論推算,實際中通過運算元融合、多請求併發等手段可以提升有效算術強度,但仍難以跨越記憶體牆的根本約束。

六、延遲構成:權重載入、KV 讀取與注意力開銷的三足鼎立

從一次解碼迭代的完整時間軸來看,延遲主要由三大塊構成:

  1. 模型權重載入:每一輪解碼都須讀取全部引數(部分通過共享記憶體最佳化等可減少,但整體開銷巨大)。當模型以張量並行方式分佈在多張 GPU 上時,每張卡僅需載入部分引數,權重讀取量有所下降,但依然佔據顯著比例。

  2. KV 快取讀取:從 HBM 到片上共享記憶體或暫存器的資料搬運,通常以向量為單位。隨著 batch size 和序列長度增加,KV 快取讀取量線性增長,很快成為最大延遲來源。

  3. 注意力運算元與 FFN 計算:由於 QK^T 退化,注意力變成了頻寬瓶頸的放大器,FFN 雖然計算相對密集,但整體被權重載入所主導。

更具體的延遲分析顯示,當序列長度達到 4K token 時,KV 快取讀取與注意力計算的時間佔比可超過總迭代時間的 60%,在 8K 時超過 80%。這意味著即便權重的載入能夠被高度最佳化(如利用 CUDA Graph、運算元融合),剩餘的延遲也幾乎全部由 KV 快取訪問決定。業界將此類現象形象地稱為“記憶體牆”——資料搬運時間遠遠超過計算時間。

此外,batch 內請求的序列長度差異會帶來嚴重的延遲抖動。長序列的 KV 快取讀取會佔用大量記憶體頻寬,導致短序列請求的 token 生成速度被一同拖慢,即所謂的“慢請求阻塞”效應。這一問題不僅影響使用者體驗(尤其是對延遲敏感的應用如對話),還使得雲端服務商在 SLO(服務等級目標)達成上面臨巨大壓力。

七、產業影響:成本、吞吐與服務體系設計

7.1 批處理(Batching)邊際收益銳減

在傳統深度學習推論中,增大 batch size 是提高吞吐、攤薄成本的有效手段。但在 LLM 解碼階段,增大 batch size 意味著同時維護更多的 KV 快取,並加劇總 HBM 讀取量。當總 KV 快取需求量逼近甚至超過 GPU 視訊記憶體容量時,系統吞吐不再隨 batch 增加而線性增長,反而會因視訊記憶體換頁(swapping)或重新計算而急劇下降。即使視訊記憶體足夠,一旦 KV 讀取總量接近 HBM 頻寬上限,繼續增加 batch size 也只是讓每個請求排隊等待頻寬,吞吐收益快速趨平。根據斯坦福大學等機構的研究,在固定序列長度下,解碼吞吐與 batch size 的關係呈現出明顯的“對數式”增長,很快觸頂。

7.2 單使用者延遲與雲端服務定價模式

對於使用者而言,解碼階段的記憶體牆體現為“吐字速度”無法隨硬體升級年增率例提升。即使從 A100 升級到 H100(頻寬大約從 2.0 TB/s 提升到 3.35 TB/s,提升 67%),在實際長上下文生成下的 token 延遲通常只降低 30%~40%,遠小於理論頻寬提升帶來的預期。這意味著單純依靠硬體迭代已無法滿足日益增長的即時性需求,推論最佳化成為必須。

在雲端服務側,推論成本近似由“單位時間所佔用的 GPU 視訊記憶體頻寬”決定。因為 GPU 計算能力大量閒置,雲端廠商的定價模型越來越傾向於按視訊記憶體頻寬或吞吐量階梯計費,而不是傳統的按 GPU 小時計費。例如,部分推論服務商提供“每百萬元 token 價格”而非“每 GPU 小時價格”,正是為了更真實地對映頻寬瓶頸主導的成本結構。

7.3 異構計算與邊緣部署的兩難

記憶體牆問題在邊緣和端側裝置上更為突出。LPDDR 或 GDDR 視訊記憶體頻寬通常在幾十至一百多 GB/s,與資料中心 GPU 差距一個數量級。即使模型被壓縮到 7B 引數以下,在移動裝置上執行解碼依然面臨每 token 延遲數百毫秒甚至上秒的窘境。這種“推論慢”並非因為晶片算力不行(很多移動 SoC 的 NPU 理論算力已不低),而是頻寬掣肘。因此,面向邊緣的最佳化幾乎無一例外地聚焦於“減少 KV 快取尺寸”和“降低記憶體訪問頻次”,如量化 KV 快取、稀疏注意力、推測執行等。

八、最佳化全景圖:從資料搬運到投機逃逸

面對記憶體牆,學術界和工業界在 2022—2024 年間產出了豐富且高效的最佳化技術。這些技術大致可以分為四個方向:

  • 精細化運算元設計:在不改變模型語義的前提下,通過更高效的計算核函式(kernel)來減少 HBM 與片上 SRAM 之間的資料搬運次數,典型代表是 FlashDecoding。
  • 架構層面的注意力簡化:直接修改注意力機制,減少需要快取的 K、V 頭數或維度,如 MQA、GQA。
  • 記憶體管理與排程創新:在推論引擎層面更智慧地分配和管理 KV 快取,提高視訊記憶體利用率並減少碎片,如 PagedAttention(vLLM 專案的核心)。
  • 投機與並行解碼:通過小模型或額外頭預測多個未來 token,變相將一個序列迴圈拆成多個步驟並行執行,提高單位頻寬上的有效輸出,如投機解碼。

下面將逐一展開,剖析其原理和產業落地情況。

九、FlashDecoding:讓注意力長上下文的頻寬需求“軟著陸”

FlashDecoding 是 FlashAttention 團隊在 2023 年提出的針對解碼階段長序列的最佳化技術,可視為 FlashAttention 在“序列長度維度”上的並行化擴充套件。FlashAttention 的核心思想是通過 tiling 和 recomputation,將注意力計算限制在 SRAM 內分塊完成,避免將大型注意力矩陣寫回 HBM。但在解碼階段,Q 的序列維度為 1,K 和 V 卻在序列維度上極長,直接套用 FlashAttention 會導致並行度不足(因為 SoftMax 需要沿序列維度做歸約)。

FlashDecoding 的精妙之處在於將序列維度拆分為多個小塊,在每個塊內獨立計算區域性 SoftMax 和注意力加權,再通過額外的全域性統計量(如最大值、總和)對各個塊的區域性結果進行重縮放和拼接。這樣一來,即使 batch size 較小,也能將 KV 快取“分而治之”,大幅提升 GPU 流多處理器(SM)的佔用率,同時繼承 FlashAttention 的 IO 節省特性。實驗資料顯示,在 8K 序列長度下,FlashDecoding 能將注意力延遲降低到傳統實現的一半以下。更關鍵的是,它首次使得長上下文的解碼延遲可以近似平緩增長,使得 32K 甚至 128K 的上下文模型在硬體上具備實用價值。

FlashDecoding 已在 vLLM、TensorRT-LLM 等多個主流推論架構中被整合,成為處理長上下文解碼的“標配”。

十、MQA 與 GQA:從多頭到分組,直搗 KV 快取尺寸

多查詢注意力(MQA)由 Google 在 2019 年提出,2023 年隨 PaLM 等模型被廣泛採納。其做法是將所有注意力頭共享同一份 K 和 V 權重,僅保留多個不同的 Q 頭。這樣一來,KV 快取大小直接縮小到原來的 1/h(h 為頭數)。對於 70B 模型,假設 64 個頭,KV 快取可縮減至 1/64,近乎忽略不計,極大地緩解了頻寬壓力。

但 MQA 也存在注意力表達力下降的風險,特別是在需要強語義區分的場景。分組查詢注意力(GQA)則走了一條折中路線:將 Q 頭分成 G 組,每組共享一對 K、V,組數通常取 4 或 8。例如 Llama 2 70B 採用 8 組 GQA,KV 快取降至 MHA 的 1/8,在質量和效率之間取得了優秀平衡。2023—2024 年開源社群的新模型幾乎全面倒向 GQA,閉源模型如 GPT-4 也被猜測使用了類似的共享 KV 頭機制。

MQA/GQA 的優勢在於無需大幅改動訓練流程(尤其是 GQA 可通過微調適配),帶來的視訊記憶體與頻寬節省是直接且永久的。因此,它們已成為當前模型設計中最重要的記憶體牆對策之一。

十一、PagedAttention 與 vLLM:革命性的 KV 快取記憶體管理

在所有系統級最佳化中,PagedAttention 和其所在的 vLLM 推論架構最具代表性和影響力。傳統推論引擎為每個請求預分配一段連續的視訊記憶體用於儲存其整個序列的 KV 快取,即使當前只生成了幾個 token,也要為最大可能長度預留空間。這種靜態分配造成嚴重的記憶體碎片和浪費(利用率常低於 30%),且在不同請求之間動態拆分和合並視訊記憶體非常困難。

PagedAttention 借鑑了作業系統的虛擬記憶體與分頁機制,將每個請求的 KV 快取切分成固定大小的“虛擬塊”,並對映到連續或非連續的物理視訊記憶體塊上。推論引擎維護一個全域性的塊表,可以靈活地按需分配和回收物理塊。不同請求可以共享相同的物理塊(例如當多個請求共享同一個長 prompt 時),也支援像 Beam Search 這樣的分支場景低開銷克隆。

這種設計的核心收益有三:

  • 顯著提升有效視訊記憶體利用率,可達 90% 以上,使得同一 GPU 可以容納更大的 batch size,提高總體吞吐。
  • 消除了視訊記憶體碎片的不可預測性,使服務更穩定。
  • 極大簡化了 KV 快取的複製、移動和回收,為高階排程策略鋪路。

vLLM 基於 PagedAttention 實現了近乎零開銷的 KV 快取管理,在 LLM 服務部署中迅速成為事實標準。根據其論文資料,vLLM 相較於傳統靜態分配方案,吞吐提升通常達到 2~4 倍,與記憶體牆帶來的瓶頸形成鮮明對沖。

十二、投機解碼:用“快速小道”打破序列依賴

投機解碼(Speculative Decoding)是一種模型層面的解碼加速技術,以“猜測 + 驗證”的方式並行生成多個 token,從而打破自迴歸的序列迴圈,提高每一輪記憶體搬運的有效輸出。其基本流程為:

  1. 維護一個小型、輕量的“草稿模型”(draft model,可能只有原模型的幾百分之一引數,甚至僅為模型自己前幾層的輸出)。
  2. 在主模型處理當前 token 的同時,讓草稿模型以自迴歸方式快速生成 k 個未來 token(稱為“推測序列”)。
  3. 主模型一次性對原始序列 + 推測序列進行一次前向推斷,通過比對主模型的輸出機率與草稿模型的輸出,確定可接受的最長字首。
  4. 將已驗證通過的多個 token 一併採納,一次性將它們對應的 K、V 追加到快取,跳過它們原本所需的單步解碼迴圈。

投機解碼的理論加速比受限於草稿模型的準確率和推測步數 k。當 k 個 token 完全被接受時,一次主模型前向 + k 次草稿模型前向(極輕量)的總耗時若小於 k 次標準解碼,則淨收益為正。在 Llama 2 等模型上,投機解碼能實現 1.5×~2.5× 的實際延遲降低,同時不犧牲任何生成質量。更精妙的是,一些方法(如 Medusa)直接在原模型上附加多個預測頭來生成多個候選 token,進一步省去外部草稿模型,簡化部署。

投機解碼對記憶體牆的突破邏輯在於:它沒有減少單次迭代的頻寬需求,卻利用一次頻寬開銷產出了多個 token,相當於變相提升了單位記憶體訪問的“有效算術強度”,因而在系統層級直接對抗記憶體瓶頸。

十三、分離式推論架構與非同步 KV 傳輸

記憶體牆問題直接催生了對推論系統“分拆”的強烈需求。傳統一體化推論引擎將模型全部引數和 KV 快取放在同一組 GPU 上,解碼時 KV 讀、權重讀和計算耦合緊密。分離式推論(Disaggregated Inference)則主張將預填充與解碼拆分到不同的硬體資源池上,甚至進一步將注意力計算和 KV 快取管理剝離。

在這種架構下,預填充叢集負責一次性處理 prompt,生成初始 KV 快取,然後通過高速網路(如 NVLink 或 InfiniBand)將 KV 快取遷移至解碼叢集。解碼叢集專注於持有 KV 快取並快速生成 token,其 GPU 可以配置為更優的頻寬/算力比(如 HBM 頻寬更大的型號),並可獨立擴縮容。這種解耦帶來幾大好處:

  • 資源利用率提升:預填充是算力密集型,可使用高 TFLOPS/低成本 GPU;解碼是記憶體頻寬型,可專用 HBM 優選的 GPU,避免“一團亂麻”的混合負載。
  • 延遲抖動降低:解碼任務不再受預填充突發資源的搶佔,可維持更穩定的頻寬供給,保障 SLO。
  • 靈活擴充套件:對於超長上下文,KV 快取可以分散式存放在專用 KV 快取伺服器上,甚至可以藉助 CPU 大記憶體或 SSD 做分級儲存,進一步擺脫單 GPU HBM 容量的硬約束。

這一方向在 2023 年底至 2024 年初被多家頭部雲端廠商和創業公司積極探索,如微軟的 Splitwise、Anyscale 的 RayLLM 等。儘管增加了網路傳輸和系統複雜度,但該架構在超大規模線上推論中的商業價值正被逐步證明。

十四、其他配套技術:量化、稀疏與運算元融合

除上述標誌性技術外,還有一系列配套最佳化共同織成對抗記憶體牆的密集防線:

  • KV 快取量化:將 K、V 從 FP16 量化至 INT8 或更低精度(如 4-bit),直接按比例減小記憶體佔用和讀取頻寬。由於 K、V 對最終注意力分佈的影響相對平滑,通常 8-bit 量化只帶來微弱的精度損失。多個架構已提供無縫的 KV 快取量化支援。

  • 上下文稀疏化:利用注意力分數的稀疏性,只保留與當前 token 互動分數最高的少量 K、V 對,裁剪長尾部分。例如 StreamingLLM 通過視窗注意力與“注意力池”的結合,實現幾乎無限的序列長度,而不增加 KV 快取規模。這在對即時流式互動要求高的場景中尤為有效。

  • 運算元融合與 CUDA Graph:將 token embedding、LayerNorm、殘差加法、注意力核、FFN 等多個小運算元融合為一個更大的核心,減少 kernel launch 開銷和中間資料往返 HBM 的次數。使用 CUDA Graph 還可以將整個解碼迴圈編譯為靜態執行圖,進一步最大化 GPU 佔用。

  • 非同步重計算:在 GQA 之上,部分方法在注意力計算時主動重新計算部分 K 和 V(例如利用相對位置編碼),以避免儲存全部歷史 K、V,實現精度與頻寬的再平衡。

這些技術常與核心最佳化組合使用,形成協同效應。例如,PagedAttention + GQA + KV 快取 INT8 + FlashDecoding 的組合,可將 H100 上長上下文推論的吞吐提升數倍,且生成質量幾乎無損。

十五、總結:記憶體牆困境的現狀與展望

解碼階段的記憶體牆問題,本質上是自迴歸生成範式與當前計算硬體體系結構之間的根本性不匹配。算力增長遠超頻寬增長的“剪刀差”,使得這一矛盾在未來幾年將持續存在並可能加劇。然而,正是在這種嚴峻約束下,技術創新被激發到前所未有的高度——從代數級別的注意力重訪(MQA/GQA),到系統級的虛擬記憶體隱喻(PagedAttention),再到演算法級的序列破壞(投機解碼),無不顯示出軟硬體協同最佳化的巨大潛力。

站在產業視角,解碼階段的效率已不再僅僅是學術議題,而是直接關聯到數十億美元推論成本的現實命題。企業若不能在記憶體牆上取得突破,就難以推出低成本、低延遲、長上下文的即時 AI 服務。反之,誰能在該瓶頸上掌握更多的最佳化籌碼,誰就能在大型模型落地的下半場中佔據先機。

展望未來,可以預見三大趨勢:

  1. 硬體定製化:專門針對大型模型“解碼頻寬飢渴”的 AI 加速器(如 Groq、Cerebras 或定製 ASIC)將更受重視,超寬 HBM 設計與存內計算理念將加速落地。
  2. 模型與系統協同設計:未來的基礎模型訓練將天然考慮解碼效率,例如引入 GQA、可微稀疏注意力等結構,並在蒸餾和微調階段將推論硬體約束納入損失函式。
  3. 推論即服務(IaaS)標準化:KV 快取的分級儲存、彈性擴縮和跨節點遷移將形成標準化介面,推論架構將前所未有地像資料庫和儲存系統一樣演化。

解碼階段的記憶體牆雖是一堵高牆,但它同時也是一面鏡子,映射出計算系統從“算力中心”向“資料中心”範式遷移的深層變革。理解並突破這堵牆,就掌握了當下大型模型推論效能的關鍵密碼。

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型