現代 AI 的「上下文視窗」(Context Window):為什麼 AI 會「忘記」之前的對話?
當你與大型語言模型(LLM)進行長對話,或者讓它分析一份幾十頁的 PDF 文件時,你可能會發現一個奇怪的現象:聊到後面,AI 開始胡言亂語,或者完全忘記了你在對話開頭設定的要求。

現代 AI 的「上下文視窗」(Context Window):為什麼 AI 會「忘記」之前的對話?
當你與大型語言模型(LLM)進行長對話,或者讓它分析一份幾十頁的 PDF 文件時,你可能會發現一個奇怪的現象:聊到後面,AI 開始胡言亂語,或者完全忘記了你在對話開頭設定的要求。
這種現象並非 AI 「心情不好」,而是觸碰到了一個硬性的物理限制——上下文視窗 (Context Window)。
什麼是上下文視窗?
簡單來說,上下文視窗就是 AI 在處理當前任務時,能夠「一次性看到」的最大資訊量。
如果把 AI 比作一個正在寫論文的學生,那麼上下文視窗就是他的桌面大小。他可以把參考書、筆記和草稿紙鋪在桌面上隨時查閱。但桌面的面積是有限的。當新資料不斷增加,桌面被填滿時,為了放進一張新紙,他必須把最舊的一張紙從桌上扔掉。
在技術層面,這個「桌面大小」是用 Token(詞元)來衡量的。一個 Token 大約相當於 0.75 個英文單字或 0.5 到 1 個中文字。如果一個模型的上下文視窗是 128K Tokens,意味著它最多能同時處理約 10 萬個中文字。
為什麼不能把視窗做得無限大?
既然視窗越大越好,為什麼不直接做成 100 億個 Token?這裡存在兩個核心的技術瓶頸:計算成本和注意力稀釋。
1. 計算成本的「平方級」增長
絕大多數現代 AI 基於 Transformer 架構,其核心是 注意力機制 (Attention Mechanism)。
注意力機制要求模型在生成每一個新詞時,都要計算當前詞與之前所有詞之間的關係。這意味著計算量隨著輸入長度的增加呈 平方級 ($\text{O}(n^2)$) 增長。
- 如果輸入長度增加 2 倍 $\rightarrow$ 計算量增加 4 倍。
- 如果輸入長度增加 10 倍 $\rightarrow$ 計算量增加 100 倍。
這會導致顯示記憶體(VRAM)迅速耗盡,推論速度劇降。
2. 「迷失在中間」 (Lost in the Middle)
即使硬體能撐住,AI 的「注意力」也會分散。研究發現,模型對輸入內容兩端(開頭和結尾)的資訊記憶最深刻,而對於位於文本中間的資訊,檢索準確率會大幅下降。這就是所謂的 Lost in the Middle 現象——即使資訊在視窗內,AI 也可能因為太長而「視而不見」。
如何在有限的視窗中實現「無限記憶」?
為了突破這個限制,工程師們開發了幾種巧妙的方案:
RAG (檢索增強生成) —— 給 AI 一個外部圖書館
與其把所有資料都鋪在桌面上(上下文視窗),不如給 AI 一個圖書館(向量資料庫)。
當使用者提問時,系統先去圖書館裡搜尋最相關的幾段話,然後只把這幾段話放在桌面上交給 AI 處理。這樣既節省了空間,又保證了資訊的精準度。
滑動視窗 (Sliding Window) —— 只記得最近的事
對於簡單的聊天機器人,最常用的方法是「丟棄最早的訊息」。當對話超過上限時,系統會自動刪除最早的一筆記錄。這就是為什麼有些 AI 在聊了很久之後會突然忘記你叫什麼名字。
長文本優化技術 (Long-Context Optimization)
像 Gemini 或 Claude 等模型透過優化注意力演算法(如 FlashAttention 或 Ring Attention),將計算複雜度從平方級降低到線性或近線性級別,從而實現了百萬級甚至千萬級的超長上下文視窗。
給使用者的實用建議:如何高效利用上下文?
既然視窗有限且存在「中間遺失」現象,你可以嘗試以下技巧:
1. 關鍵指令放在末尾:如果你給 AI 發了一篇長文並要求總結,請將具體的總結要求(如「請用三句話概括」)放在文章的最下方,而不是最上方。
2. 定期清理/總結上下文:在極長對話中,可以要求 AI 「請總結我們目前的討論要點」,然後開啟一個新對話並將總結貼上進去。這相當於手動為 AI 「清理桌面」。
3. 結構化輸入:使用清晰的標題和分隔符號(如 --- 或 ###),幫助模型更好地定位資訊區塊。
理解了上下文視窗,你就能明白 AI 的侷限性在哪裡,從而透過更科學的提示工程(Prompt Engineering)讓它發揮最大效能。
留言區
歡迎分享你的想法!
載入留言中…