HOW MACHINES CHOP UP TEXT
AIはなぜ "strawberry" の r を数えられないのか
LLMは文章を「文字」でも「単語」でもなく、トークンという不思議な単位で読みます。 その正体はバイトペア符号化(BPE)——よく出る並びを、くっつけて育てた語彙。 この設計が、AIの「文字数えが苦手」という有名なクセや、日本語がトークンを食う理由まで、すべてを決めています。 トークナイザの内側を、5つのステップで開けてみましょう。
はじめる ↓文字か、単語か——その間をとるWHY SUBWORDS
文章をモデルに入れる前に、まず数の列に変換します。素直な方法は2つ——1文字ずつか、1単語ずつ。 でもどちらも困った欠点を抱えています。同じ一文を3つの切り方で分解して、なぜ現代のLLMが 「サブワード(単語の部品)」という中間を選んだのかを確かめてください。
TOKENIZE — 同じ文を、3つの切り方で
BPE——よく出るペアを、くっつけていくBYTE-PAIR ENCODING
トークナイザは学習されます。最初は全部バラバラの文字。そこから 「いちばん多く隣り合っているペア」を1つの部品に合体——これを何度も繰り返すだけ。 出てきた合体ルール(マージ規則)の列が、そのままトークナイザの正体です。 小さなコーパスで、語彙が育っていく様子を1手ずつ回してみましょう。
BPE TRAINER — マージ規則が育つ
CORPUS — 各単語の、いまの分かれ方
MERGE RULES — 育っていく語彙
種明かし——なぜ "r" を数えられないのかTHE STRAWBERRY PROBLEM
「strawberry に r はいくつ?」——素直なLLMは平気で「2つ」と答えます。バカだからではありません。 モデルには、文字が1個ずつ届いていないから。トークナイザが単語を数個のID(あるいは丸ごと1個)に畳んでしまうと、 中の文字はもう見えない。人間の見え方とモデルの見え方を切り替えて、失敗の正体を確かめてください。
TWO VIEWS — 人間の目と、モデルの目
数字・空白・日本語——同じ長さでも、値段が違うTOKEN EFFICIENCY
トークナイザは主に英語のテキストで育てられます。だから英語は効率よく畳まれ、 それ以外は割高になる。数字はバラけ、インデントの空白は積もり、日本語は1文字が何トークンにもなりがち。 種類ごとに「1トークンで何文字を運べるか」を見比べてください。棒が長いほど、お得です。
EFFICIENCY — 1トークンあたりの文字数
CHARS PER TOKEN — 種類ごとの効率(長いほどお得)
自分の文で、確かめるTOKENIZER PLAYGROUND
仕上げは、あなたの言葉で。好きな文章を打ち込むと、その場でトークンに分解し、数と効率、 そして「この文が文脈窓のどれくらいを占めるか」まで見えます。 英語と日本語を混ぜたり、絵文字や数字を放り込んだり——ここまでのクセを自分の目で確かめてください。
LIVE TOKENIZER — 打つと、その場で分解
5つのステップ、ふりかえり
この章はテキスト生成編の入口(トークン化)を掘り下げたものです。 畳まれたトークンから意味を作るのが埋め込み、 文字数えが推論編の思考の連鎖で解けるのも、根はここにあります。
シリーズ一覧へ →