如果你看一個完整妝容,第一眼會覺得它是一個整體。
但真的要分析時,你可能會拆成:底妝、眉毛、眼影、睫毛、腮紅、唇色,再細一點甚至還有眼線位置和色調。
大型語言模型(Large Language Model, LLM)處理文字時,也不一定直接把「一句話」或「一個中文字」當成最基本單位。
它會先把文字切成比較小的片段,這些片段就叫 詞元(Token)。
Token 不等於「一個字」
這是最容易誤會的地方。
如果 Token 就等於一個字,那其實很好懂。但現實不是這麼整齊。
有時候一個常見英文單字可能是一個 Token,有時候比較少見或比較長的字會被拆開;中文、標點、數字也會依模型使用的切法變成不同 Token。
所以「這篇文章 500 個字」和「這篇文章 500 Tokens」不是同一件事。
就像一個妝容看起來只有「一個造型」,拆開之後可能有二十個小步驟。
為什麼 AI 要先拆開?
因為模型需要一種穩定的方法,把文字變成它能處理的單位。負責把文字切成 Token 的規則與工具,常被稱為詞元切分器(Tokenizer)。
假設你只把完整句子當一個單位,那世界上的句子幾乎無窮無盡,很難處理。
但如果把句子拆成比較小、可以重複組合的片段,就像衣櫃裡的單品一樣,同一件白襯衫可以出現在很多不同穿搭裡。
這些小片段可以被重新組合,形成非常多句子。
Token 跟你有什麼關係?
如果你只是一般使用 ChatGPT,其實不用每天算 Token。
但理解它有三個實際好處。
第一,模型能一次處理的內容不是無限的。你丟給它很長的文件、很多輪對話,最後都會佔用一定數量的 Tokens。
第二,在 API 世界裡,很多服務會按照輸入和輸出的 Token 數量計費。
第三,你會開始理解為什麼模型不是像人一樣「看到一句完整的中文意思」才開始思考。它的文字處理方式從最底層就不一樣。
那 ChatGPT 回答時也是一個 Token 一個 Token 出來嗎?
在大型語言模型的基本生成方式裡,可以先這樣理解:它會根據前面已經有的內容,預測接下來最合理的 Token,再繼續往下產生。
所以你看到答案像打字一樣一點一點冒出來,不只是動畫效果;背後的生成本來就是逐步進行的。
這也是我們下一篇要理解提示詞(Prompt)的重要基礎。
因為你前面給它的文字,會影響它接下來覺得「什麼最合理」。
今天只要記住一句話
Token 是模型處理文字時使用的小單位;一句話會先被拆成很多 Token,再交給模型處理。
你不用背 Token 怎麼切,也不用現在學 Tokenizer。
先記得:人眼看到的是完整句子,模型底層看到的是被拆過的片段。
下一篇,我們就來看你每天都在做、但可能還不知道原理的事情:Prompt 到底在控制什麼?