TL;DR: Token 數會反映在兩件事上:你的 API 帳單,還有一段文字塞不塞得進 context window(模型一次能讀進去的量)。同樣的意思,中文換算成 token 常常比英文多,而人用猜的又特別不準。想知道自己那段 prompt 多少 token,貼進我做的 Token 視覺化工具看一眼最快。

螢幕上兩行字,一行中文,一行英文,看起來差不多長。送進模型,中文那行比較貴。

貴在哪、貴多少,你光用看的看不出來。token 是你付錢的單位,也是模型一次讀不讀得下的單位,偏偏跟「一句話看起來多長」常常對不上。

Token 是什麼、模型為什麼不直接讀整個字,我之前寫過一篇概念版,這篇就不重講了。這裡只聊一件很實際的事:那段文字,到底多重。

Token 就是錢

這大概是最直接的理由。雲端模型幾乎都照 token 計費,而且輸入、輸出分開算,所以你貼進去的字、它回你的字,都在跳錶。

真正貴的往往不是你打的,是它回你的那一長串,這個我之前單獨算過,放在跟 AI 說謝謝到底花不花錢那篇。(要是讓 AI 自己接力跑一長串任務,也就是所謂的 agent,量還會大上一個級數,一個複雜任務光是來回協調就可能燒掉五萬個 token。)

然後它還是一道門檻

除了錢,token 數也決定你這段塞不塞得進去。

每個模型一次能讀進去的量是有上限的,就是所謂的 context window。你的輸入加上前面的對話一旦超過,最前面的東西就會被丟掉,這也是 AI 聊久了會忘記你前面講過什麼的原因之一。(嚴格講是應用程式幫你砍掉舊訊息,不是模型自己忘,不過對你的體感差不多。)

中文比你以為的貴

這點講中文的特別容易吃虧。

同樣一句話的意思,中文換成 token 常常比英文多。英文很多常見單字,一個字就是一個 token,連 understanding 這種長一點的字往往也只算一個;中文沒有這種「把常見片段壓成一塊」的空間,常用字多半一個字就一個 token,整句話疊下來,通常還是比對應的英文重。所以你自以為打得很省的一句中文,算起來搞不好比英文還多。

麻煩的是這種事直覺完全派不上用場。你覺得「這句很短」,其實是在數字數,可是計費跟 context 看的是 token,對中文來說這兩個根本不是一回事。(我知道講到這裡有點抽象,等下你自己貼一段中英文對照進去看就懂了。)

反正用猜的不準,不如直接看

就算上面這些你都懂,實際要抓一段字幾個 token,還是很難心算。每個模型配的 tokenizer——也就是負責把字切成 token 的那套規則——切法都不太一樣,同一串字換一家就切得不同。標點、空格、換行都算,連你順手貼進來的一段 code 也各佔各的。

所以與其猜,不如直接看,這就是我當初做 Token 視覺化工具 的原因。貼一段文字進去,它即時告訴你幾個 token、幾個字元,還會拿去跟 GPT、Claude、Gemini 的 context window 比一比,看你佔掉多少。往下拉有色塊,一塊就是 tokenizer 切出來的一個 token(不管你在比哪一家,色塊一律照 GPT 的切法畫),你把中英文貼在一起看,那個密度差還滿明顯的——這也是拿指令列工具比較難一眼看出來的東西。

有件事先講,免得你被數字誤導。OpenAI 那幾個模型是用它真正的 tokenizer 在你瀏覽器裡算的,準;Claude 跟 Gemini 目前沒有公開的瀏覽器端 tokenizer,那兩個只能用估的,抓個大概可以,可能差個一兩成,別真的拿去對帳單。

隱私的部分也順帶提一下:整個過程都在你自己的瀏覽器跑,貼進去的東西不會傳出去。不信你可以斷網再貼,照樣算得出來。所以公司內部還沒公開的文件,這樣貼也不用太提心吊膽。

開頭那兩行字,看起來一樣長,秤過才知道一行比一行重。你要送出去的那一段,也一樣。