Stanford CS229 Spring 2026 第16講:Transformer 注意力變體、專家混合與情境學習
Transformer 注意力回顧
講師首先提醒觀眾基本的 Transformer 注意力機制。對於單個頭,查詢 Q、鍵 K 和值 V 是矩陣,其中每行對應一個時間步。注意力分數通過 QKᵀ 獲得,然後進行遮罩以強制自回歸行為,接著進行行級 softmax 並乘以 V。結果是值的加權和。當使用多個頭時,每個頭都有自己的 Q、K、V 矩陣,權重不同但結構相同。
群組查詢注意力
為了在推理期間降低鍵值(KV)快取的記憶體佔用,講師介紹了群組查詢注意力(GQA)。與其為每個頭存儲單獨的鍵和值向量,GQA 在多個查詢頭之間共享較小的一組鍵和值。每個查詢頭透過確定性映射分配到一個鍵組(例如 floor((j‑1)/tall)+1)。注意力計算使用該組的共享鍵來處理所有查詢,而每個頭仍然產生自己的輸出。這將存儲的鍵/值向量數量從 NH 減少到 NG,其中 NH 是頭的數量,NG 是鍵組的數量,從而降低 GPU 記憶體使用並允許更大的批次大小。
滑動窗口注意力
講師接著介紹滑動窗口注意力作為降低全注意力二次計算成本的方法。與其讓每個查詢參與所有先前的鍵,每個查詢僅參與最近的 W 個鍵,其中 W 是固定窗口大小。這將複雜度從 O(T²) 降低到 O(T·W)。雖然頂層注意力僅限於最近的標記,但較深的層可以間接傳播來自較早標記的資訊,使得 L 層的有效感受野約為 L·W 個標記。這種權衡是在降低長程依賴與降低計算和記憶體之間取得平衡。
專家混合
接下來,講師介紹專家混合(MoE)層作為在不顯著增加計算的情況下提升模型參數數量的方法。一個 MoE 層包含許多專家網路(通常是前饋網路)以及一個路由模組,該模組為每個標記選擇一小部分專家。例如,在總共有 128 個專家且採用 top‑2 路由時,每個標記僅有 2 個專家處於活躍狀態,使得活躍參數數量遠小於總參數數量。路由通常基於學習到的投影,後接 softmax 或 sigmoid,然後將選中的專家輸出透過加權和結合,並重新歸一化使總和為一。共享專家(始終活躍)可以被納入以捕捉共通知識。其動機既是計算效率,也是希望專家能夠專門化於不同的語言現象,儘管專門化是在端到端訓練中隱式產生,而非顯式監督。
情境學習與零樣本學習
講師解釋大型語言模型如何在不進行梯度更新的情況下適應新任務。情境學習涉及將示範範例(輸入‑輸出對)與測試輸入串聯,讓模型生成答案。零樣本學習則更進一步,僅提供任務描述(例如:「classify emails into billing or technical`)且不提供範例。模型依賴其預訓練知識來推斷正確的行為。這些方法之所以有效,是因為模型將提示視為上下文,並生成與示範模式匹配或遵循指令的延續。
指令調整(監督微調)
最後,講師描述指令調整為加強零樣本和情境學習能力的一種方法。會收集一個指令‑輸出數據對(X,Y)的數據集,其中 X 是任務描述,Y 是期望的回應。然後使用標準語言模型損失(給定 X 的 Y 的負對數似然)在該數據集上進一步訓練模型。此監督微調不會改變架構;它調整參數,使模型在被提示時更有可能遵循指令並產生適當的輸出。得到的模型在零樣本和少樣本任務上表現出改進的性能。