什麼是上下文窗口?解釋一切的AI限制

快速解答

上下文窗口是模型一次能放進視野裡的文字總量:你的指示、對話裡的每一則訊息、任何上傳的檔案,以及正在寫的回覆。當總量超過這個限制時,最舊的部分會被擠出去。品質也會在到達標示的上限之前就開始下降。

上下文窗口就是模型的整個工作記憶

上下文窗口是模型一次能放進視野裡的文字總量。模型對你目前這段對話所知道的一切,都得塞進這個窗口裡:你的指示、你們雙方傳送過的每一則訊息、你上傳的每個檔案,以及它即將寫出的答案。

一個實用的心智圖像:模型對你的對話完全沒有記憶。你每傳送一則訊息,到目前為止的整段對話就會被重新交給它一次,它會全部讀過,再寫出下一則回覆。上下文窗口就是那份逐字稿必須放得下的桌面大小。當桌面滿了,就得有東西被擠下去。

這就是為什麼AI可能在前二十則訊息裡顯得很敏銳,接著卻開始自相矛盾、忘記你一開始設下的限制,或要求你已經給過它的檔案。對話較早的部分,已經從桌面上滑落了。

有一個區別必須馬上釐清,因為它造成了很多混淆:上下文窗口和記憶不是同一件事。像ChatGPT和Claude這樣的產品,有一項獨立的記憶功能,會在對話之間儲存關於你的事實,並悄悄把它們插入新的對話裡。那是建立在模型之上的一項產品功能。上下文窗口是模型本身固有的一項硬性屬性,沒有任何記憶功能能讓它變大。

一個token大約是四分之三個單字

上下文窗口用token而不是單字來計量,因為模型讀的不是單字。Token正是AI詞彙表用一句話定義的其中一個詞,旁邊還圍繞著五十來個類似的詞。它們讀的是一塊一塊的片段:常見的單字通常算一個token,較長或不尋常的單字會拆成好幾個,標點符號和空格也算數。

值得記住的大致換算:

  • 1個token大約是4個英文字元,或大約四分之三個單字。
  • 1,000個token大約是750個單字,大概是一頁半的正常散文。
  • 程式碼比較密。因為符號、縮排和不尋常的識別字,大約每三個字元就要算一個token。
  • 其他語言的效率較低。在token化工具裡代表性較低的語言,同樣的意思可能要花兩到三倍的token,如果你是按token付費,這一點值得知道。

這能幫你理解行銷資料裡看到的那些數字:

上下文窗口大致等於
8,000個token一篇長文章
32,000個token一篇附筆記的短篇研究論文
128,000個token一本300頁的書
200,000個token一份密集的技術手冊,或一個中型程式碼庫
1,000,000個token好幾本書,或一整年的會議逐字稿

這張表隱藏了一個重點:這個限制涵蓋的是整段對話,而不是每一則訊息。128,000個token的窗口,不代表你能反覆傳送128,000個token。它的意思是,包括模型自己回覆在內,所有內容的累計總量都必須維持在這個數字以下。

到底是什麼在填滿你的窗口?

大家通常會對窗口被填滿的速度感到驚訝,因為填進去的東西大多是看不見的。在一場典型的聊天對話裡,模型每一輪都在讀以下所有內容:

  1. 系統提示詞。產品在你打字之前就傳送的指示:該怎麼表現、有哪些工具存在、今天的日期、安全規則。常常有幾千個token,而你從來看不到它。
  2. 你的自訂指示或記憶內容。產品儲存下來、自動插入的關於你的任何東西。
  3. 之前的每一則訊息,你的和模型的,都是完整版本。模型自己的長篇答案也算,而且通常是佔比最大的部分。
  4. 每個上傳的檔案,或從中擷取的部分。一份40頁的PDF大約是20,000到30,000個token。
  5. 工具和搜尋結果。一次拉出五個網頁的網路搜尋,加起來可能比你到目前為止整段對話還多。
  6. 正在產生的回覆。輸出和輸入共用同一個額度。

這就是為什麼一段感覺很短的對話,可能已經接近上限。你只傳了八則短訊息,但模型寫了八則長答案,你附上了兩份文件,它還跑了三次搜尋。看得見的部分可能只佔總量的一成左右。

這也是為什麼「開一個新對話」常常能修好一段搞混的對話。你不是在重設模型的心情,你是在清空桌面。

品質在到達標示上限之前就會下降

這是最重要、卻最少被討論的部分。模型的品質不會一路維持平穩直到上限才突然崩落。它會逐漸下降,而且早在上限之前就開始下降了。

這方面記錄最完整的現象,常被稱為「迷失在中間」效應。把一項具體事實放在一份長文件的開頭,模型能找到它。放在結尾,模型也能找到它。埋在中間,準確度就會下降:在原始的「迷失在中間」實驗裡(Liu等人,2023,連結見下方),把關鍵文件從輸入的邊緣移到中間,讓模型的準確度大約掉了20個百分點。注意力在一段長輸入裡分布並不均勻,邊緣拿到的關注更多。

當任務需要結合散布在一段長輸入裡的好幾項事實時,難度還會更高。在一堆乾草裡找一根針,是已經解決的問題。找出四根針,還要推理它們彼此之間的關係,就不是了,而這正是大家使用大型上下文窗口想做的事。

所以把宣傳的數字當成最大容量,而不是舒適的工作範圍。一個來自實際使用的實用經驗法則:在標示窗口大約一半以內,你能得到可靠的表現,超過這個範圍的任何內容都該查核,而不是直接相信。如果模型告訴你一份300頁的合約裡沒有終止條款,去查核一下,尤其是這條條款可能就藏在文件中間的時候。

這對比較有個含義:一百萬token的窗口保證模型能接受比20萬token窗口更長的文件,但不保證其他任何事情。它能不能在整份文件裡都推理得好,是另一個問題,唯一的確認方法就是用一份你已經知道答案的文件去測試。

用完之後會發生什麼

不同產品處理溢出的方式不同,知道你用的是哪一種,能解釋很多奇怪的行為。

行為你會看到什麼發生在哪裡
硬性錯誤請求被拒絕,並顯示關於長度的訊息大多數直接呼叫API的情況
靜默截斷最舊的訊息被丟棄,不會告訴你許多聊天介面
滾動式摘要舊訊息被壓縮成一份摘要在聊天產品裡越來越常見
檢索每一輪只擷取你文件裡相關的部分文件和知識庫工具

靜默截斷是真正會造成問題的那一種,因為沒有任何提示會告訴你。症狀是模型突然無視你一開始設下的規則、退回你一小時前糾正過的語氣,或問了一個你已經回答過的問題。那些指示只是不再放在桌面上了。

滾動式摘要比較好,但會失真。摘要保留了大意,卻丟掉了細節,所以「絕對不要用『綜效』這個詞」這條限制,最後會變成「使用者有風格偏好」,這對你一點幫助都沒有。

七個真正有用的做法

以下依成效相對於花費的力氣排序。

話題一變就開新對話。這是單一價值最高的習慣。一段長對話會帶著它之前的一切成本,包括已經不相關的離題內容,而每一段仍留在桌面上的離題,都會稀釋下一則回覆的品質。

把你的問題放在長篇材料之後,而不是之前。如果你先貼上一份文件再提問,問題離答案要被產生的地方比較近,這能顯著提升在長輸入上的準確度。先貼材料,再問問題。

重新錨定重要的限制條件。在任何超過大約十五次來回的對話裡,在真正重要的那則訊息裡重述一次重要規則:「提醒一下,用英式英文、不要條列、400字以內。」這只要花你一行字,而且能撐過截斷。

傳送相關的頁面,而不是整本書。如果你需要模型查核賠償條款,就給它賠償條款和它前後的內容。精準勝過大量:一段聚焦的節錄傳送成本更低,模型讀起來也比整本書更準確。

刻意做摘要再重新開始。當一場工作對話變長時,要求一份結構化的交接內容:目前狀態、已做的決定、還沒解決的問題、限制條件。把它貼進一個新對話裡。你保留了實質內容,丟掉了雜訊,而且你會立刻注意到模型變得更敏銳。

對任何塞不下的內容使用檢索。如果你的材料真的比任何窗口都大,解法就是檢索:針對每個問題擷取相關片段,而不是去找一個更大的窗口。這正是文件工具在背後做的事。

注意品質下降,而不只是錯誤訊息。如果答案變得更模糊、更常加但書,或開始無視格式指示,你可能已經深陷在窗口裡了。與其認定模型變差了,不如先開一段新對話。

你到底需要多大的窗口?

把窗口大小配合任務,而不是去找最大的數字。想查某個特定模型目前的數字,上下文窗口比較表以token和頁數列出了整個目錄。

你的工作你需要什麼為什麼
郵件、起草、快速提問任何現代模型都行你永遠不會接近上限
編輯長文件10萬以上文件加上你對它的討論
合約和政策審查20萬以上,並且要查核文件加上對它的推理,附帶上面提到的但書
在整個程式碼庫裡推理能拿到的最大窗口程式碼的token密度高,跨檔案推理需要廣度
分析數個月的逐字稿能拿到的最大窗口,或用檢索通常檢索比蠻力硬讀效果更好
在API上打造產品比你想的小,加上快取長提示詞是成本和延遲的主要來源

對大多數人來說,誠實的答案是上下文窗口通常不是訂閱之間的決定因素。寫作品質、生態系和價格更重要。它只在一種情況下會變成決定因素:你的工作經常需要餵進比一般窗口能容納還多的材料,在這種情況下,窗口大小決定了這項工作到底做不做得到。

如果你想親自測試,實際的做法是把同一份長文件跑過兩三個模型,再對照你已經知道的答案來查核結果。像Whizi這樣的工作區能讓這件事變得容易,因為GPT、Claude、Gemini、Grok和DeepSeek都在同一份訂閱之下,Gemini超大的窗口和Claude細膩的綜合能力只隔著一次點擊。可以看並排比較模型,或讀如何選擇AI模型了解更廣的決策方式。

操作清單
  • 用1,000個token大約等於750個單字的原則來估算token數量
  • 記住系統提示詞、檔案、搜尋結果和回覆都共用同一個額度
  • 把標示窗口的大約一半當成可靠的工作範圍
  • 先貼長篇材料,再提出你的問題
  • 在長對話裡重述關鍵限制條件,讓它們撐過截斷
  • 與其拉長一段對話,不如寫一份交接內容,開一段新對話

常見問題

用簡單的話說,上下文窗口是什麼?

它是模型一次能放進視野裡的文字總量,涵蓋你的指示、到目前為止的整段對話、任何上傳的檔案,以及正在寫的回覆。當總量超過限制時,最舊的部分就會被擠出去,這就是為什麼長對話會開始忘東忘西。

上下文窗口越大就一定越好嗎?

不一定。更大的窗口讓模型能接受更多輸入,但準確度會隨著輸入增加而逐漸下降,尤其是埋在中間的事實。擁有一百萬token窗口的模型,在長文件上不會自動比擁有20萬token的模型更好,所以要用你已經知道正確答案的材料來測試。

128,000個token是多少字?

大約96,000個英文單字,或大約一本300頁的書。一般的換算是一個token大約是四個英文字元,所以1,000個token大約是750個單字。程式碼和非英文文字對同樣的內容會用掉更多token。

為什麼ChatGPT會忘記我之前說過的話?

因為對話長度超過了上下文窗口,最舊的訊息被丟棄或壓縮以騰出空間。大多數聊天介面會靜默地這樣做。重述你的關鍵限制條件,或用一份簡短摘要開一段新對話,能立刻解決這個問題。

上下文窗口和AI記憶是同一件事嗎?

不是。上下文窗口是單一對話的硬性限制。記憶是一項獨立的產品功能,會在對話之間儲存關於你的事實,並插入新的對話裡。記憶不會增加容量,它插入的那些儲存事實仍然會佔用窗口的一部分。