Skip to main content

Locke Lee

返回文章庫

人工智能/深層解釋

Token 是甚麼?為甚麼同一句話會消耗不同用量?

Token 不是字數單位,而是模型處理文字時切出的不等大小片段。語言、標點、格式、聊天歷史和工具設定,都會改變同一個問題真正消耗的用量。

01 / 人工智能

Token 不是字,也不是字符

模型不直接吞下一整句文字。Tokenizer 先把文字切成詞、子詞、標點、空格或字符片段,再轉成編號。

常見英文詞可能一塊完成,罕見名字可能碎成數塊;中文字符在不同 tokenizer 下亦可能一字一塊或與相鄰字符合併。肉眼相同長度,不代表模型收到相同數量。

02 / 人工智能

切法是模型設計的一部分

Tokenizer 的詞彙表由訓練方法與資料分布形成。常見片段值得獨立佔一個位置,稀有片段則被拆細。

因此 token 數同時透露一種隱藏偏好:模型世界裏,哪些語言和寫法被視為常見單位。它不是中性的字數計。

03 / 人工智能

同一句意思,價格可以不同

研究比較多語 tokenizer 時發現,同一資訊在不同語言可需要相差數倍 token。影響不只 API 帳單:更多 token 亦佔用更多 context、增加處理步數,甚至令一段較早觸及長度上限。

所謂「一百萬 token」不是一百萬字,更不是每種語言都得到相同內容容量。

04 / 人工智能

空格、標點和格式也在收費

JSON 的括號和引號、程式碼的縮排、表格分隔符、對話角色標記,全部可能佔 token。你只看到一個短問題,系統可能同時送入安全規則、工具定義、聊天歷史和檢索文件。

輸入框的字數只是帳單最可見的一角。

05 / 人工智能

輸出通常比輸入更昂貴

很多服務把輸入、快取輸入和輸出分開計價。生成輸出需要逐 token 解碼,延遲也沿着答案長度累積。

要求「更詳細」不只是風格選擇;它會增加成本、等待和產生新錯誤的機會。最有效的節省往往不是把問題縮成暗號,而是移除重複上下文和不必要輸出。

06 / 人工智能

最可靠的方法只有實測

英文常見的「一 token 約四字符」只是一個粗略估算,不能套到所有語言和模型。要知道真正用量,應用該模型相符的 tokenizer 計算實際 prompt,連系統訊息、歷史、工具 schema 和預期輸出一起測。

Token 的隱藏秘密是:你不是只為問題付費,也為整個對話舞台付費。

資料註腳

資料註腳

  1. developers.openai.com/cookbook/examples/how_to_count_tokens_with_tiktoken
  2. aclanthology.org/2023.emnlp-main.614.pdf

資料用來支持機制與限制;模型、產品及價格會更新,閱讀時應以來源的版本及日期為準。

讀到最後,沒有推銷。

這裏只保留一個更準確的理解,不把好奇心變成銷售漏斗。

WhatsApp 聯絡 Locke Lee