LLM 中的 Attention(注意力機制)如何運作?
Attention(注意力機制) 透過動態計算輸入序列中不同 Token 之間的重要程度,協助 Transformer 建立上下文關係,是現代大型語言模型理解與生成文本的核心機制。
相較於傳統神經網路只能依序處理文本,Attention 能夠同時觀察整個輸入序列,並根據當前 Token 自動決定應該關注哪些資訊。這種設計讓模型能夠理解長距離依賴關係,也是 GPT、Claude、Gemini、Llama、DeepSeek 等現代大型語言模型能夠處理複雜文本的重要原因。
Attention 並非獨立存在的模組,而是 Transformer 架構中最核心的組成部分。它與 AI Token、Embedding、Context Window、Temperature 等技術共同構成現代大型語言模型的推理流程。
什麼是 Attention?它解決了什麼問題?
在閱讀一句話時,人類不會平均關注每一個詞,而是會自動將注意力集中在最重要的資訊上。例如看到「法國的首都是巴黎」,人們更容易關注「法國」與「首都」之間的關係,而不會把所有詞語視為同等重要。
早期的 RNN 和 LSTM 必須依序逐一處理 Token,當文本愈來愈長時,前面的資訊容易逐漸被遺忘,導致模型難以理解長距離依賴關係。這也是傳統神經網路處理長文本時準確率下降的重要原因。
Attention 的出現改變了這個問題。模型不再依固定順序傳遞資訊,而是能直接計算任意兩個 Token 之間的關聯程度,進而動態決定哪些內容更值得關注。這不僅提升了長文本的理解能力,也為 Transformer 的平行運算奠定了基礎。
Self-Attention 是如何運作的?
Self-Attention 是目前大型語言模型中最常用的 Attention 類型。「Self」表示模型分析的是同一句文本內部不同 Token 之間的關係,而非兩個不同序列之間的資訊互動。
例如輸入:
The capital of France is Paris.
當模型處理 Paris 時,它不會只關注前一個單字 is,而是會同時分析整句話,並發現 France 與 capital 才是最重要的上下文資訊。
整個過程可理解為:
Input Sentence│▼Split into Tokens│▼Generate Q / K / V│▼Calculate Attention Scores│▼Weighted Sum of Values│▼Updated Token Representations
經過一次 Self-Attention 後,每個 Token 都會獲得新的語義表示。這意味著 Token 的意義會隨上下文不斷更新,而非保持固定不變。例如,同樣是「Apple」,在不同句子中可能代表水果,也可能代表科技公司,模型正是透過 Self-Attention 完成這種語義區分。
Q、K、V 分別代表什麼?
Self-Attention 的核心運算依賴三組向量:Query(Q)、Key(K) 與 Value(V)。雖然名稱看起來抽象,但它們各自負責不同職能。
可以將整個過程比擬為搜尋系統。當前 Token 先生成 Query,表示「我正在尋找什麼資訊」;其他 Token 會生成 Key,表示「我能提供哪些資訊」;同時,每個 Token 還對應一個 Value,用來保存真正需要傳遞的內容。
模型首先計算 Query 與所有 Key 的相似程度,得到每個 Token 的 Attention Score。接著,這些分數會經過 Softmax 轉換為權重,再對所有 Value 按權重加權求和,最終生成新的 Token 表示。
| 向量 | 主要作用 | 可理解為 |
|---|---|---|
| Query (Q) | 發起查詢 | 我要找什麼資訊 |
| Key (K) | 提供匹配 | 我包含哪些資訊 |
| Value (V) | 提供內容 | 我真正傳遞的資訊 |
正因採用這種機制,模型才能根據不同上下文動態調整注意力,而非僅固定關注相鄰 Token。
Attention Score 是如何計算的?
當模型取得所有 Q、K、V 向量後,會先計算 Query 與每一個 Key 之間的相似程度,這個結果就是 Attention Score。Attention Score 越高,代表當前 Token 與該 Token 的關聯程度越強。
不過,這些原始分數並不能直接當作權重使用。模型還會透過 Softmax 將所有分數轉換為機率分布,使每個 Token 的注意力權重總和等於 100%。
最終,每個 Token 都會依不同權重匯總所有 Value 資訊,並生成新的語義表示。因此,Attention 並非僅僅選擇某幾個 Token,而是綜合利用整個上下文的資訊,只是不同 Token 的影響程度有所不同。
為什麼需要 Multi-Head Attention(多頭注意力)?
如果模型每次只能從一個角度分析上下文,獲得的資訊會較有限。現實語言往往同時包含語法關係、語義關係、實體關係以及長距離依賴,僅靠一次 Attention 難以完整理解一句話。
因此,Transformer 引入了 Multi-Head Attention(多頭注意力)。它會將輸入向量拆分成多個子空間,由多個 Attention Head 同時運算,每個 Head 關注不同類型的資訊,最後再將所有結果組合起來形成新的表示。
例如,在一句話中,一個 Attention Head 可能主要關注主謂關係,另一個 Head 更關注代詞指涉,還有一些 Head 會分析實體之間的聯繫。多個 Head 平行運作,使模型能從多個角度理解同一段文本,而非只獲得單一視角的結果。
可將整個過程比擬為多人協作分析一份文件。不同成員分別負責語法、語義、邏輯與上下文等內容,最後綜合所有人的分析結果形成更完整的理解。這也是 Multi-Head Attention 比單一 Attention 表現更佳的原因。
整體流程可簡化表示為:
Input Embeddings│▼Split into Multiple Heads│├───────────────┐▼ ▼Attention Head 1 Attention Head 2│ │├───────────────┤▼ ▼Attention Head 3 Attention Head 4│▼Concatenate Outputs│▼Linear Projection│▼Updated Representations
現代大型語言模型通常包含數十甚至上百個 Attention Head,它們共同構成 Transformer 的上下文理解能力,也是模型能處理複雜語言的重要原因。
Attention 與 Context Window 有什麼關係?
Attention 能夠分析 Token 之間的關係,但其分析範圍受到 Context Window(上下文視窗) 的限制。只有位於當前 Context Window 內的 Token,才能參與 Attention 運算。
例如,當一個模型支援 128K Context Window 時,Self-Attention 可以在這 128K 個 Token 之間自由建立關聯。如果某段內容已超出 Context Window,被模型「遺忘」,Attention 也無法再存取這些資訊。
因此,Context Window 決定模型一次能「看到」多少資訊,而 Attention 則決定模型如何利用這些資訊。兩者共同影響模型的長文本理解能力與推理表現。
隨著 Context Window 持續擴大,Attention 的運算規模也會同步增長。因此,長上下文模型雖然能處理更多內容,但也需消耗更多運算資源。這也是近年出現 Sparse Attention、FlashAttention 等優化技術的重要原因,它們旨在降低長文本運算成本、提升推理效率。
Attention 有哪些侷限?
雖然 Attention 大幅提升了 Transformer 的能力,但它並非毫無限制。最主要的問題來自運算複雜度。
標準 Self-Attention 需計算所有 Token 兩兩之間的關係,因此運算量會隨 Token 數量增加而快速成長。當輸入長度翻倍時,需計算的 Attention Score 數量約增為四倍,這也是長文本推理成本較高的重要原因。
此外,Attention 更專注於 Token 之間的統計關聯,而非邏輯推理本身。模型雖能發現不同 Token 之間的聯繫,但並不代表真正理解事實或具備人類意義上的推理能力。因此,大型語言模型仍可能出現事實錯誤、邏輯不一致或幻覺等問題。
近年來,研究人員提出了 FlashAttention、Sparse Attention、Linear Attention、Grouped Query Attention(GQA) 等多種優化方案,希望在維持模型效能的同時降低運算成本。這些技術已逐漸應用於現代大型語言模型,用於支援更長的 Context Window 與更高效的推理過程。
總結
Attention(注意力機制)是 Transformer 架構最核心的組成部分,透過動態計算不同 Token 之間的重要程度,使模型能建立上下文關係,並準確理解長距離語義依賴。
在整個運算過程中,模型首先生成 Query(Q)、Key(K) 與 Value(V),再計算 Attention Score 並形成機率分布,最終更新每個 Token 的語義表示。為進一步提升表達能力,Transformer 採用 Multi-Head Attention 從多角度分析文本,使模型能同時學習語法、語義與實體關係。
隨著生成式 AI 持續發展,Attention 已成為現代大型語言模型最重要的基礎技術之一,並與 Transformer、Embedding、Context Window、AI Token、Temperature 等機制共同構成完整的推理流程,為自然語言理解、多模態 AI 與 AI Agent 提供底層支援。
FAQ
什麼是 Attention(注意力機制)?
Attention 是一種用於計算不同 Token 之間重要程度的機制,協助模型根據上下文動態建立語義關聯,是 Transformer 的核心組成部分。
Self-Attention 與 Attention 有什麼差別?
Attention 是一種通用機制,而 Self-Attention 專門用於分析同一輸入序列內部不同 Token 之間的關係,是現代大型語言模型最常用的 Attention 類型。
Q、K、V 分別代表什麼?
Query(Q)表示當前 Token 需要查詢的資訊,Key(K)用於匹配相關內容,Value(V)保存真正需要傳遞的資訊,三者共同完成 Attention 的運算流程。
為什麼需要 Multi-Head Attention?
Multi-Head Attention 能讓模型從多個不同角度分析同一段文本,同時學習語法、語義、實體關係與上下文資訊,進而獲得更豐富的語義表示。
Attention 與 Context Window 有什麼關係?
Context Window 決定模型一次能處理多少 Token,而 Attention 負責分析這些 Token 之間的關係,兩者共同影響模型的上下文理解能力。
Attention 會影響模型推理速度嗎?
會。標準 Self-Attention 的運算複雜度會隨輸入長度快速增長,因此長上下文推理通常需要更多運算資源,這也是 FlashAttention 等優化技術出現的重要原因。


