在自然語言處理(NLP)和生成式 AI(如 ChatGPT)的領域,context window 是指模型在一次互動或生成時可以考慮的文字範圍。簡單來說,就是模型在處理或生成內容時所能「記住」的字數或 token 數範圍。

Context Window 的關鍵點

  1. 範圍限制
    模型的 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:世界
  2. 模型處理方式
    當您輸入內容時,模型會根據當前輸入的 token,以及它的 context window 內的所有 token,來生成回應。

    • 如果內容超過了 context window 的大小,最舊的部分會被截斷,模型無法再考慮這部分內容。
  3. 應用範圍

    • 在對話中,context window 限制了模型記住過去對話的長度。
    • 在處理長文件或生成大型內容時,您需要將內容分段,否則超出 context window 的部分不會被考慮。

為什麼 context window 重要?

  1. 長對話或長文件處理
    如果您的對話很長或處理的文檔過大,模型可能會忘記最早的內容,這可能影響結果的完整性和準確性。

  2. 選擇適合的模型
    不同應用需求需要不同大小的 context window。例如:

    • 短對話或查詢不需要太大的 context window。
    • 處理大型文件或長時間上下文(如故事生成)則需要更大的 context window。
  3. 分段策略
    如果超出限制,您需要制定分段策略,確保每次處理的內容都在 context window 範圍內。

實際應用中的例子

  • SEO 文章生成 時,您可能會根據 context window 將文章拆分成不同段落來生成,然後再將這些段落組合。
  • 對話機器人 的開發中,您可能會設計機制來保留對話歷史的關鍵部分,避免上下文遺失。