04|什麼是 Context Window?AI 的「視野上限」

👁️ 一句話:Context Window 是 AI 一次能「看見」多少 token——超過了,就會被截掉或丟失。
一、Context Window 是什麼
每個 LLM 都有一個「一次處理的 token 上限」。
[System Prompt + 對話歷史 + RAG 結果 + 你的問題]
↓
≤ Context Window
↓
[模型處理]
↓
[回應]
→ 加總超過上限的部分會被截掉,最常見的後果是「AI 忘了你開頭講的事」。
二、各家 Context Window 一覽(2026 中)
| 模型 | Context Window | 約 = 多少字 |
|---|---|---|
| GPT-3.5 (legacy) | 4K-16K | 3K-12K 中文字 |
| GPT-4 | 8K-32K | 6K-24K |
| GPT-4o / GPT-5 | 128K-1M | 96K-750K |
| Claude 3.5 | 200K | 150K |
| Claude Opus 4.x / Sonnet 4.x | 200K | 150K |
| Gemini 3 Pro | 1M-2M | 750K-1.5M |
| Llama 3.3 70B | 128K | 96K |
⚠️ 中文要打折——中文 token 數約英文 1.5-3 倍,詳見 Token 篇。
Claude 200K context 對英文 ≈ 150K word,對中文 ≈ 80K-130K 字。
三、為什麼有上限?
LLM 用的 Transformer 注意力機制計算量大致是 O(n²)——n 是 token 數。
4K context → 4K² = 16M 運算
128K context → 128K² = 16,384M 運算(多 1024 倍!)
1M context → 1M² = 1,000,000M 運算
→ Context 愈長:
- 處理愈慢
- GPU 記憶體吃愈多
- 成本飆升
- 訓練難度暴增
各家用各種變形(sparse attention / sliding window / linear attention)擴大,但「愈長愈不準」這個物理限制還在。
四、長 Context 的隱藏代價
光看「200K」覺得很爽,但實際用會發現:
① 中段資訊容易被忽略("Lost in the Middle")
研究發現:把資訊放在 context 開頭或結尾,回想率 > 90%;放中段只剩 50-60%。
[開頭 90% 記得] ← 系統 prompt + 早期對話
[中段 50-60% 記得] ← 容易被遺忘的死區
[結尾 90% 記得] ← 當下提問 + 最後幾輪
→ 重要指令放 system prompt 或 user message 最後。
② Cost 線性增加
200K context 的 Claude Sonnet 4 input:
- 200K × $3/M = $0.60/query
- 1000 query/月 = $600(約 NT$ 19,000/月)
→ 「用大 context 取代 RAG」是常見錯誤——通常 RAG 撈 5-10 段比塞整本書更準也更便宜。
③ Latency 增加
10K context → 1-2 秒 100K context → 5-10 秒 500K context → 15-30 秒
→ 用戶體驗 / 即時 agent 都不能塞滿。
五、Needle in a Haystack 測試
業界有個經典測試:在長 context 中段藏一句「無關事實」(例:「我家貓叫小白」),然後問 AI 那個事實是什麼。
| 模型 | 100K context 回想率 | 200K context 回想率 |
|---|---|---|
| Claude 3 Opus | 99% | 95% |
| GPT-4 Turbo | 95% | 86% |
| Gemini 1.5 Pro (1M) | 99% | 99% |
| Llama 3.3 70B | 90% | 78% |
這個分數是「最簡單的任務」——多事實、跨段推理、矛盾資訊的場景,所有模型表現都差很多。
六、實務管理 Context Window 的 4 個策略
① RAG 出最相關片段
不要把整本書塞進去,做向量檢索撈最相關的 5-10 段。
② 摘要長對話歷史
對話超過 50 輪就太肥。可定期把前 30 輪壓成 2-3 段摘要,省 90% token。
③ 結構化壓縮
JSON / 表格 比 prose 省 token。 「2026 Q1 營收 1.2 億,較去年 +8%」比寫一段話省一半。
④ Skill 動態載入
Skill 機制:用到才載入,不用就不佔 context。
七、案例:一份數十萬字的文件塞不塞得進
一份數十萬字的長文件對應 Context Window 規劃:
| 模型 | 一次塞得進嗎? |
|---|---|
| GPT-3.5 (16K) | ❌ 不可能 |
| Claude Sonnet 4 (200K) | ⚠️ 勉強塞英文版,中文版要切 2-3 段 |
| Gemini 3 Pro (2M) | ✅ 一次塞得進,但成本高 + 中段精度下降 |
| Llama 70B (128K) | ❌ 中文版裝不下 |
正確作法:文件切成 chunks 進 RAG,每次只撈相關 5-10 段 → 各模型都能用、精度更高、成本更低。
八、常見誤解
| ❌ 誤解 | ✅ 正解 |
|---|---|
| 「200K 就放得下整份合約」 | 中文 contract 常超過,且中段精度下降 |
| 「Context 愈大愈聰明」 | 一定程度後反而變糊 |
| 「大 context 取代 RAG」 | RAG 通常更便宜、更準 |
| 「Claude 200K = Gemini 200K」 | 各家內部機制不同,實際表現可差 30% |