在自然語言處理(NLP)和生成式 AI(如 ChatGPT)的領域,context window 是指模型在一次互動或生成時可以考慮的文字範圍。簡單來說,就是模型在處理或生成內容時所能「記住」的字數或 token 數範圍。
Context Window 的關鍵點
-
範圍限制
模型的 context window 有一個固定的大小,通常以 token 為單位。例如:-
ChatGPT 的一些版本可能有 4096 個 token 的 context window。
-
更高版本(如 GPT-4)可能有更大的 context window,例如 8k 或 32k token。
Token 是什麼? Token 是文字的一種基本單位,可以是一個單字、標點符號,甚至是一部分單字。例如:
- 英文的「Hello, world!」可能被拆分成 3 個 token:
Hello
、,
和world!
。 - 中文的「你好,世界!」可能會被拆分成 5 個 token:
你
、好
、,
、世界
和!
。
-
-
模型處理方式
當您輸入內容時,模型會根據當前輸入的 token,以及它的 context window 內的所有 token,來生成回應。- 如果內容超過了 context window 的大小,最舊的部分會被截斷,模型無法再考慮這部分內容。
-
應用範圍
- 在對話中,context window 限制了模型記住過去對話的長度。
- 在處理長文件或生成大型內容時,您需要將內容分段,否則超出 context window 的部分不會被考慮。
為什麼 context window 重要?
-
長對話或長文件處理
如果您的對話很長或處理的文檔過大,模型可能會忘記最早的內容,這可能影響結果的完整性和準確性。 -
選擇適合的模型
不同應用需求需要不同大小的 context window。例如:- 短對話或查詢不需要太大的 context window。
- 處理大型文件或長時間上下文(如故事生成)則需要更大的 context window。
-
分段策略
如果超出限制,您需要制定分段策略,確保每次處理的內容都在 context window 範圍內。
實際應用中的例子
- 在 SEO 文章生成 時,您可能會根據 context window 將文章拆分成不同段落來生成,然後再將這些段落組合。
- 在 對話機器人 的開發中,您可能會設計機制來保留對話歷史的關鍵部分,避免上下文遺失。