GPT-1 から GPT-5.2 まで: LLM の特殊トークン徹底解説【2025年12月最新】
エンジニアの又川です。
皆さんは LLM (大規模言語モデル) の 「特殊トークン」 をご存知でしょうか? ChatGPT や Claude などを使っていると意識することは少ないかもしれませんが、実はモデルの内部では 「ここからユーザの発話だよ」「ここで思考を始めるよ」 といった制御情報を伝えるための特別なトークンが使われています。
この記事では、 GPT-1 や BERT、GPT-2 といった黎明期の Transformer モデルから始まり、 T5 のようなテキスト補完から脱却した Transformer モデル、 GPT-3 のような初期の LLM、 InstructGPT のような指示追従型 LLM、 GPT-3.5 Turbo のようなチャット機能付き LLM、 GPT-4 のようなマルチモーダル LLM、そして GPT-5.2 のような思考機能付き LLM (Reasoning モデル) まで、各モデルがどのような特殊トークンを使っているのかを具体例とともに紹介します。
前提知識: トークン
言語モデルはテキストを トークン (token) という単位に分割して処理します。トークンは必ずしも単語と一致するわけではなく、単語の一部分や文字、バイト列の場合もあります。
モデルが認識できるトークンの一覧を ボキャブラリ (vocabulary) と呼び、各トークンには一意の ID が割り当てられています。ボキャブラリのサイズは有限です。
前提知識: トークナイズ
テキストをトークン列に分割する処理を トークナイズ (tokenize) と呼びます。
上の図には書かれていませんが、トークナイズを行うツールを トークナイザ (tokenizer) と呼びます。
トークナイズについては、国語の授業で習った品詞分解のように「単語や意味のある単位に分割する」というイメージを持っている方が多いのではないでしょうか? 「名詞」「動詞」「助詞」みたいに分けるあれです。
しかし、言語モデルでのトークナイズはそんなに単純ではありません。トークナイズにはいくつかの トークナイズ方式 があり、それぞれ動作原理が異なります。
前提知識: トークナイズ方式
トークナイズ方式にはざっと以下のようなものがあります。順に解説していきます。
| 方式名 | 採用モデル |
|---|---|
| WordPiece | BERT など |
| BPE (Byte Pair Encoding) | GPT 系モデル, Meta 系モデルなど |
| バイトレベル BPE | GPT-2 以降など |
| Unigram | Google 系モデル・日本語モデルなど |
WordPiece 方式
WordPiece は最も直感的な方式です。基本的には単語単位で分割し、辞書にない単語は サブワード(部分文字列) に分解されます。
"playing" → "play" + "##ing"
"unhappiness" → "un" + "##happi" + "##ness"
"東京駅" → "東京" + "##駅"
"歩いた" → "歩い" + "##た"