解碼器唯一架構 是什麼?
Decoder-only Architecture:解碼器唯一架構 的完整解釋
深度學習模型架構設計,僅使用解碼器(Decoder)層進行文本生成和處理,無需編碼器,通過因果遮蔽使模型只能關注當前位置的歷史信息,實現自迴歸文本生成。
核心概念
解碼器唯一架構(Decoder-only Architecture)代表了一種設計哲學:用統一的自迴歸模型處理所有自然語言任務。不同於編碼器-解碼器(如 BERT 或 T5)在編碼和解碼階段採用不同機制,解碼器唯一模型用同一套機制從頭到尾處理序列。
其核心機制是因果自注意力(Causal Self-Attention):
Attention(Q, K, V) = softmax(QK^T / √d_k + mask) V
其中 mask 是一個上三角矩陣,位置 (i,j) 當 i < j 時設為負無窮,使 softmax 後權重為 0。這確保位置 i 無法關注位置 j(j > i)。
結果是:位置 1 只能關注位置 1;位置 2 能關注位置 1-2;位置 n 能關注位置 1-n。這自然適配自迴歸文本生成。
運作原理
解碼器唯一模型的工作流程:
輸入詞嵌入:將輸入序列中的詞轉換為嵌入向量,加上位置編碼和可選的段落編碼。
因果自注意力層堆疊:通過多層(通常 12-96 層)的自注意力層,每層都施加因果遮蔽,使信息只能向前流動。
逐層傳播:第 L 層位置 i 的表示是基於位置 1 到 i 的信息,通過前面 L-1 層的多步傳播逐漸形成。
輸出預測頭:最後一層的隱藏狀態經線性變換(和 softmax)轉換為詞彙表上的概率分佈。
自迴歸生成:推理時,模型逐詞生成。首先輸入初始 token(如
),得到第一個詞的概率,採樣或貪心選擇。再將該詞加入序列,輸入模型得到第二個詞的概率,如此循環直到生成 或達到長度限制。 KV 快取優化:推理時,計算複雜度可通過 Key-Value 快取優化。每步只計算新詞的 Query,重複使用前面位置的 Key 和 Value,將複雜度從 O(n²) 降至 O(n)。
實際應用
解碼器唯一架構在多個領域取得卓越成果:
文本生成:故事寫作、詩歌創作、程式碼生成等。解碼器唯一模型天生適合自迴歸生成,生成流暢且連貫。
對話系統:聊天機器人如 ChatGPT 採用解碼器唯一模型。通過指令微調(Instruction Fine-tuning),模型學會遵循用戶指令進行多輪對話。
機器翻譯:通過提示工程(如 few-shot examples),解碼器唯一模型能執行翻譯任務。相比專門的編碼-解碼模型,性能略低但更通用。
問答系統:模型可直接生成答案,無需從上下文中抽取。適合開放式問題,相比抽取式問答更靈活。
代碼補全:GitHub Copilot 等代碼助手基於解碼器唯一模型。給定代碼前綴,模型自迴歸生成補全部分。
知識檢索:模型可直接生成答案而非檢索,通過在預訓練中吸收大量知識,減少對外部知識庫的依賴。
零樣本和少樣本學習:解碼器唯一模型的規模足夠大時(十億級以上參數),能在不額外訓練的情況下,通過上下文示例完成新任務。
常見誤區
「只能做生成任務」的誤解:解碼器唯一模型確實最擅長生成,但通過提示設計(prompt engineering),也能做分類、提取、推理等理解任務。例如分類時,將選項列為生成選項,讓模型生成選項名而非類別 ID。
與編碼-解碼模型的簡單比較:編碼-解碼(如 T5)在理解-生成任務(機器翻譯、摘要)上有優勢,但多一個編碼層增加複雜性和延遲。解碼器唯一更簡潔,在大規模預訓練中更容易擴展。
生成質量與參數規模的混淆:解碼器唯一模型生成質量飆升來自於參數規模和數據量的增加,不是架構本身。6B 參數的 GPT 可能不如 100B 的模型,儘管都是解碼器唯一。
KV 快取優化的忽視:解碼器唯一模型的推理可通過 KV 快取顯著加速,但大多數初學者實現時忽略此優化,導致推理時間線性增長。
與相關技術的比較
解碼器唯一 vs 編碼-解碼:T5、BART 等編碼-解碼模型在編碼側雙向,解碼側單向。這在機器翻譯、摘要等任務上有優勢(充分理解輸入,再高效生成輸出)。但解碼器唯一模型參數利用率更高(單一機制),訓練和推理都更高效。
解碼器唯一 vs 雙向編碼器:BERT 是純理解模型,無法做自迴歸生成。解碼器唯一是純生成模型,理解能力次於 BERT。實際應用中,大型解碼器唯一模型(如 GPT-4)通過規模彌補了架構的理解劣勢。
因果注意力 vs 完全注意力:因果遮蔽限制了自注意力的「視野」,使推理時每步只需 O(n) 計算(藉由 KV 快取)。無遮蔽的注意力無法高效推理,但在某些預訓練設定中可能有優勢。
單層解碼器 vs 多層堆疊:解碼器層數決定了模型的感受野(receptive field)。L 層解碼器的位置 n 最多能看到位置 max(1, n-L) 的信息。更多層使模型能建立更長程的依賴,但計算成本增加。
解碼器唯一 vs 遞迴模型(RNN):RNN 的循環設計使推理時每步計算複雜度為 O(1)(對隱狀態大小)。解碼器唯一需要 O(n) 或通過 KV 快取優化至 O(1)。RNN 參數更少,但 GPU 並行化差;解碼器唯一參數多,但並行化好。