###### tags: `大語言模型` `AI` `Agent` `核心概念大串聯` # 第二篇:模型的記憶與視野 — Context 與 Context Window > **系列**:AI 核心概念大串聯 | [返回總覽](https://hackmd.io/@TommyHuang/ByDQ96dcZx) > [← 上一篇:LLM 與 Token](https://hackmd.io/@TommyHuang/HyUQiTuqbl) | [下一篇:Prompt →](https://hackmd.io/@TommyHuang/rygOiTucbg) --- ## 一、Context 是什麼? **Context(上下文)** 是 LLM 在生成回應時,所能「看到」的全部資訊。 LLM 沒有持久記憶。每次呼叫模型,它只能根據**當次傳入的所有內容**來作答。這些內容的總和,就是 Context。 ### Context 包含什麼? ``` ┌─────────────────── Context ───────────────────┐ │ System Prompt(角色與規則設定) │ │ ───────────────────────────────────────── │ │ User: 你好,請幫我分析這份報告 │ │ Assistant: 好的,請提供報告內容 │ │ User: [報告全文 3000 字] │ │ Assistant: 以下是我的分析… │ │ User: 請針對第三點深入說明 │ └───────────────────────────────────────────────┘ ``` 對話歷史、系統設定、你貼進去的文件——全都是 Context 的一部分。 --- ## 二、Context Window 是什麼? **Context Window(上下文視窗)** 是 LLM 一次能處理的最大 token 數量。超過這個上限,模型就「看不到」更早的內容了。 把它想像成一個**滑動的閱讀窗口**: ``` 整段對話歷史(很長): [第1輪][第2輪][第3輪]...[第97輪][第98輪][第99輪][第100輪] ↑ Context Window 只能看到這裡之後的內容 (前面的內容已超出視窗,模型不記得了) ``` ### 各大模型的 Context Window | 模型 | Context Window | |------|---------------| | GPT-4o | 128K tokens | | Claude 3.5 Sonnet | 200K tokens | | Gemini 1.5 Pro | 1M tokens | | Llama 3.1 70B | 128K tokens | > 200K tokens ≈ 約 15 萬個中文字 ≈ 一本長篇小說 --- ## 三、Context 與 Context Window 的關係 | | Context | Context Window | |--|---------|----------------| | **是什麼** | 當次對話的全部內容 | 模型能處理的最大容量 | | **類比** | 你攤在桌上的所有文件 | 桌子的大小 | | **影響** | 決定模型「知道什麼」 | 決定模型「能知道多少」 | 當 Context 超過 Context Window 時,系統必須做**截斷或摘要處理**,這是很多「AI 忘記對話前半段」的根本原因。 --- ## 四、Context 管理為什麼重要? ### 問題一:超出上限 ``` 長篇對話 or 大量文件 → Context 超過 Context Window → 早期資訊被丟棄 → 模型「失憶」 ``` ### 問題二:稀釋效應 Context 越長,模型對每個部分的「注意力」越分散。即使在 Context Window 內,塞入無關資訊也會降低回應品質。 ### 解決策略 1. **RAG(檢索增強生成)**:只把相關片段放入 Context,而非全部文件 2. **對話摘要**:定期將舊對話壓縮成摘要再放入 Context 3. **結構化 Prompt**:把重要資訊放在 Context 的開頭或結尾(模型對這兩處注意力較高) --- ## 五、重點整理 - **Context** = 模型當次能看到的所有資訊(對話歷史 + 文件 + 設定) - **Context Window** = 模型能處理的 token 上限,超出則「看不到」 - LLM **沒有跨對話記憶**,一切都依賴 Context - 管理好 Context 是 AI 應用品質的關鍵 --- > 下一篇:[第三篇 — 與模型溝通的語言:Prompt、User Prompt、System Prompt →](https://hackmd.io/@TommyHuang/rygOiTucbg)