大模型中的 Token 到底是什么?怎么估算一段話包含多少 Token

在使用大模型(如 豆包、文心、千問、gpt、claude)API時候,就會有一個繞不開的核心概念:

Token

一般大模型廠商會告訴你1000個token多少錢,百萬個token多少錢?

那么

  1. Token到底什么意思呢?
  2. 如何估算大致自己要用多少Token呢?

一、Token 到底是什么?

一句話定義:

Token 是模型“能理解的最小文本單位”,簡稱** 最小意義單元或者詞元**

比如:今天/中午/吃/白菜 大概是包含了四個Token;你/吃/了/嗎/ 大概率是包含4個token。

這里需要注意:

  1. 每個大模型能夠理解的最小文本單元不一定完全一樣,同樣問題+答案不同大模型消耗的Token也可能不一樣。
  2. 各個大模型和人類能夠理解的最小意義單元有差異,但是不大。

所以

簡單估算Token量可以按照人類理解的文本最小意義單元進(jìn)行估算;精確估算要拿到具體大模型廠商提供的Token計算方法。


二、Token量怎么計算

2.1 簡單估算

英文示例

unbelievable → un / believe / able

?? 3 個 Token


?? 中文示例

今天天氣很好 → 今天 / 天氣 / 很好

?? 3 個 Token(也可能是 5 個)


Token 的切分是“統(tǒng)計結(jié)果”,不是固定規(guī)則

根據(jù)統(tǒng)計結(jié)果,我們有以下簡單快速估計方法:


? 英文

Token ≈ 字符數(shù) ÷ 4

這里的字符指,a、b、c+標(biāo)點符號。


? 中文

1 個字或者符號 ≈ 1 Token


? 中英混合

中文字?jǐn)?shù) ×1+英文字母數(shù) ÷4+標(biāo)點符號數(shù)×1

2.2 精確計算

部分大模型有公開它的Token計算公式

比如GPT的[Tokenizer](https://platform.openai.com/tokenizer)。因為很難精確計算加上Token計算考慮歷史,國內(nèi)大模型大多數(shù)并沒有提供類似工具。

聊到這里,我們知道一句話Token怎么計算,那我們跟大模型交互都是過程中,哪些會被計算到呢?


三、大模型使用的時候,Token 計費包含哪些?

總費用 = 輸入 Token + 輸出 Token


輸入包括:

  • 問答系統(tǒng)預(yù)先設(shè)置提示詞;
  • 歷史對話;
  • 當(dāng)前問題;

輸出包括:

  • 模型回答

?關(guān)鍵點

你每次請求,都會帶上“全部上下文”(因為大模型沒有記憶,記憶請求大模型的時候記憶模塊拼接上去的內(nèi)容)


?? 所以:

你以為你說了一句話,其實你在“復(fù)述整個歷史”


?? 示例

你說:

把我們討論的內(nèi)容概括總結(jié)下

但實際發(fā)送:

歷史1 + 歷史2 + 歷史3 + 概括總結(jié)

?? 結(jié)果:

?Token 是“累計”的


每一輪都會:

  • 帶上之前所有內(nèi)容
  • Token 持續(xù)變大

這也是很多人使用計算Token工具算出來和實際不一樣

這不是工具的問題,而是你算的不是“真實輸入”

真實請求包含:

System Prompt(可能隱藏)
+ 歷史對話
+ 當(dāng)前輸入
+ JSON結(jié)構(gòu) / role字段

?? 工具往往只算“你輸入的文本”


除此之外,平臺會“偷偷加內(nèi)容”

例如:

  • 默認(rèn)系統(tǒng)提示詞

  • 安全策略

  • 工具描述(function calling)

  • 注入內(nèi)容

  • 自動裁剪歷史

  • 自動做摘要

  • 自動拼接

?? 這些你看不到,但都算 Token

?? 本質(zhì)總結(jié)

Token 計算不準(zhǔn),不是算法問題,而是“系統(tǒng)邊界問題”,當(dāng)然也涉及到成本問題。

那如何減少Token使用,降低成本呢,下面列舉下比較常見的幾種方法

  1. 歷史裁剪
比如:只保留最近3~5輪;
比如:語音輸入20s,就丟棄以前歷史

  1. 歷史摘要
500 Token → 30 Token

  1. 限制輸出
請用100字以內(nèi)回答

  1. Context Manager,參考【多輪對話系統(tǒng)是如何工作的?】中context設(shè)計
System Prompt
+ Recent Context
+ Summary
+ User Input


?? 核心思想:

保留最近細(xì)節(jié),壓縮歷史信息


四、最終總結(jié)

Token 是模型理解世界的最小單位,而你真正付費的,是“上下文 + 輸出”的總信息量。

優(yōu)秀的大模型使用者,本質(zhì)上是在做“Token預(yù)算管理”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容