深度學習 · 自然語言處理

O(n²) 複雜度與自注意力

「每個都要跟每個比一次」——n 一大,比對次數就以平方暴增。這正是自注意力處理長序列時最貴的地方。

兩兩比對n² 增長自注意力瓶頸長序列成本高效注意力

💡一句話定義

O(n²)= 運算量隨輸入規模 n 的平方成長:n 變 10 倍,運算量約變 100 倍自注意力要讓每個 token 對序列中所有 token算關注,n 個 token 就是 n×n 次,計算與記憶體都是 O(n²)——這是長上下文的主要瓶頸。

🔗為什麼「兩兩比對」是 O(n²)?

n 個人兩兩比對,需要 n(n−1)/2 次,約等於 n²/2。每多加一個人,他就要跟現有的所有人各比一次——所以新增的成本隨人數線性增加,總數就以平方累積。10 個人要 45 次、100 個人要約 5000 次、10 萬人則高達約 50 億次。

🎮互動:拖動 n,看連線爆炸

拉動滑桿改變 n:左圖每條線代表一次比對,右圖比較 O(n) 線性(藍)與 O(n²) 平方(紅)的增長。留意 n 一過十幾,左圖就變成「密不透風的紅網」。

為什麼兩兩比對的時間複雜度是 O(n²)?

數量 (n) = 1
需要比對的次數 = 0
兩兩比對連線圖 (每條線代表1次比對)
運算量增長曲線
數量 (n) 比對次數 / 執行時間 O(n) 線性增長 O(n²)

系統狀態:完全沒有負擔

目前數量很少,系統瞬間就能計算完畢。

🤖這跟 Transformer 有什麼關係?

自注意力裡,每個位置都要對所有位置算一次注意力分數——這正是「兩兩比對」。序列長度 n 的注意力矩陣是 n × n,所以計算與記憶體都是 O(n²)。這就是為什麼上下文視窗有上限、處理長文件/長對話這麼貴:把上下文加長一倍,注意力成本會變成約四倍。

📈O(n) vs O(n²):數字有多可怕

nO(n) 約O(n²) 約(兩兩比對)
101045
100100約 5,000
1,0001,000約 50 萬
100,00010 萬約 50 億
易混:O(n²) 講的是隨「輸入序列長度 n」的成長,跟「模型參數量」是兩回事,別搞混。

🚀怎麼降低注意力的複雜度

🧱稀疏注意力
只算部分位置對(如局部+少數全局),降到近線性。
📏線性注意力
用核技巧改寫,讓複雜度接近 O(n)。
🪟滑動視窗
只關注鄰近固定範圍,長序列友善。
FlashAttention
不改複雜度但大幅省記憶體、加速實際運算。

自我檢測

Q1. O(n²) 是什麼意思?
運算量隨輸入規模 n 的平方成長。n 變 10 倍,運算量約變 100 倍。兩兩比對 n(n−1)/2 次就是典型的 O(n²)。
Q2. 為什麼自注意力是 O(n²)?
每個 token 都要跟序列中所有 token 算注意力分數,n 個 token 形成 n×n 的注意力矩陣,計算與記憶體都是 O(n²)。
Q3. O(n²) 為什麼是長上下文的瓶頸?
序列一長,計算與記憶體平方暴增(長度加倍→成本約四倍),限制了上下文視窗長度與長文處理的成本。
Q4. 有哪些降低注意力複雜度的方法?
稀疏注意力、線性注意力、滑動視窗等把複雜度降到近 O(n);FlashAttention 不改複雜度但大幅省記憶體、加速實際運算。

🎯重點整理

📝 iPAS 考點提醒

O(n²) 時間複雜度在 AI 最關鍵的體現是自注意力,iPAS 中級科目一考點。重點:自注意力要每個 token 對所有 token 算關注,計算與記憶體隨序列長度 n 呈 O(n²),是長上下文的主要瓶頸、也是上下文視窗有上限的原因。易混點:O(n²) 指隨「輸入序列長度」成長,與「模型參數量」不同;高效注意力(稀疏、線性、滑動視窗、FlashAttention)可降到近線性或大幅省記憶體。情境:為何長文件、長對話成本高。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

O(n²) 是什麼意思?

運算量隨輸入規模 n 的平方成長;n 變 10 倍、運算量約變 100 倍。兩兩比對 n(n−1)/2 次就是典型 O(n²)。

為什麼自注意力是 O(n²)?

每個 token 都要跟序列中所有 token 算注意力分數,n 個 token 形成 n×n 的注意力矩陣,計算與記憶體都是 O(n²)。

O(n²) 為什麼是長上下文的瓶頸?

序列一長,計算與記憶體平方暴增(長度加倍成本約四倍),限制了上下文視窗長度與長文處理成本。

怎麼降低注意力的複雜度?

稀疏注意力、線性注意力、滑動視窗等可降到近 O(n);FlashAttention 不改複雜度但大幅省記憶體、加速實際運算。

O(n²) 和模型參數量一樣嗎?

不一樣。O(n²) 講的是隨「輸入序列長度」的運算成長,參數量是模型大小,兩者是不同概念。

🧭 相關主題

← 返回 AI 學習與考證地圖