LLMとトークンを理解してみる
生成AIを用いた開発が主流になってきた中でLLMとトークンについて理解が不足していると感じたので、調べてまとめてみた。
よく使用しているChatGPTやClaude、Geminiといった生成AIは、もはや一部の技術者の物ではなく、日常的な知的ツールとして定着していると思う。
しかし、その中核にある仕組みであるLLM(大規模言語モデル)とトークン化を正確に理解するのは難しいと感じている。
AIを使う段階から使いこなす段階に進むために、この基礎を言語化して理解する必要があると感じたので、LLMの構造、トークン化の仕組み、主要モデルの特徴、そして効果的に扱うための5原則を体系的に整理してみる。
LLM(大規模言語モデル)とは
まずLLMについて。
LLMは、膨大なテキストデータを学習した深層ニューラルネットワークモデルである。
Sebastian Raschkaの Build a Large Language Model (From Scratch) によれば、LLMの本質は次のように表現されている。
Large language models (LLMs), such as those offered in OpenAI’s ChatGPT, are deep neural network models that have been developed over the past few years. They ushered in a new era for natural language processing (NLP).
従来の自然言語処理(NLP)がルールや単純な統計手法に依存していたのに対して、LLMは言語の確率的パターンを予測することで文脈理解と生成を同時に実現しているらしい。
このモデルは、与えられたトークン列から「次に来るトークン」を確率的に生成している。
言い換えれば、LLMとは次の言葉を最も自然に予測する機械であって、この仕組みの連鎖が、人間のような対話を生み出している。
トークンとは何か
続いてトークンについて。
LLMが扱う言語の最小単位はトークンである。
James PhoenixとMike Taylorの Prompt Engineering for Generative AI では、次のように定義されている。
In natural language processing (NLP) and LLMs, the fundamental linguistic unit is a token. Tokens can represent sentences, words, or even subwords such as a set of characters.
つまりトークンとは「AIが理解するための意味的なかけら」のことである。
例えば英語では “unbelievable” が un / believ / able に分解され、日本語の「こんにちは」は5トークンほどになる。
前々から言われていることではあるが、AIにとって文章の長さとは文字数ではなくトークン数である。
トークン数が増えるほど計算量とコストが上昇し、レスポンスも遅延する。
なので、トークンがどうであるかを理解することは、AIを効率的に活用するための基礎である。
トークン化プロセス ― テキストをAIが理解できる形にする
トークンを用いた指示で重要なのがトークン化。
トークン化(Tokenization)は、自然言語をモデルが扱える数値列に変換するプロセスである。
人間の言語を構造化し、AIの世界に翻訳するステップのこと。
現代のLLMでは主に以下の三つのサブワードトークン化手法が採用されている。
1. Byte-Pair Encoding(BPE)
BPEはデータ圧縮技術として誕生したが、現在はGPTシリーズを含む多くのLLMで標準的に利用されている。
Sebastian Raschkaはその原理を次のように説明している。
BPE builds its vocabulary by iteratively merging frequent characters into subwords and frequent subwords into words. For example, BPE starts with adding all individual single characters to its vocabulary (“a,” “b,” etc.). In the next stage, it merges character combinations that frequently occur together into subwords. For example, “d” and “e” may be merged into the subword “de,” which is common in many English words like “define,” “depend,” “made,” and “hidden.
BPEの例
「eating」という単語を分解すると以下のようになる。
1. 初期状態:["e", "a", "t", "i", "n", "g"]
2. 頻出ペア「in」を検出し、「ing」トークンを生成
3. 結果として ["eat", "ing"] という形に統合される
このように、BPEは頻出パターンを段階的に結合して語彙を構築する。
Denis Rothmanはその特徴を次のように整理している。
BPE begins with a vocabulary of individual characters. It then merges the most frequent pair of consecutive characters. A hyperparameter determines the number of times the process is repeated.
BPEの強みは未知語耐性にある。
未知の単語 “someunknownPlace” が出現しても、some + unknown + Place のように部分的に分解して扱える。
2. WordPiece
WordPieceはBERTやELECTRAなどのTransformer系モデルで使用される手法である。
BPEの単純な頻度ベースに対し、WordPieceは確率的な選択を行う。
Aurélien Géronは次のように述べている。
WordPiece improves upon BPE by utilizing a language model to choose the most likely pair of tokens to group up. This enforces a kind of intelligent choice when deciding the way to encode a particular word.
WordPieceは各結合候補のスコアを算出し、最も妥当なものを採用する。
スコアは以下のように計算される。
score(AB) = frequency(AB) / (freq(A) × freq(B) × len(vocab))
この方式により、単なる出現頻度よりも文脈的な意味を重視した分割が可能になる。
たとえば “awesome” は aw + ##esome に分割される。
「##」の接頭辞は「前の単語に続く部分」であることを示し、単語の連続性を保つ。
3. SentencePiece
SentencePieceはGoogleが開発した言語非依存のトークナイザーであり、
空白を含めたあらゆる文字列を統一的に処理できる。
Miroslaw Staronは次のように説明している。
SentencePiece is a more general option than BPE for one more reason: it allows us to treat whitespaces as regular tokens. This allows us to find more complex dependencies and therefore train models that understand more than just pieces of words.
SentencePieceは特に日本語のように空白を使わない言語に有効である。
空白を特殊記号「▁」として扱うため、
多言語間で統一的な処理が可能となる。
例
• 英語:「Hello world」 → ["▁Hello", "▁world"]
• 日本語:「こんにちは世界」 → ["▁こんにち", "は", "▁世界"]
SentencePieceはXLNetやALBERTなど、多言語対応モデルで多く採用されている。

LLMを効果的に使うための5つの原則
LLMを効果的に使うには以下の5つの原則を守って指示を出すと良いとのこと。
- 明確で具体的な指示を与える
抽象的な質問では曖昧な応答しか得られない。目的・文体・構成を具体的に指示する。 - コンテキストと制約を設定する
長すぎるプロンプトはノイズになる。出力形式・字数制限・視点などを明示する。 - 適切なモデルを選択する
Claudeは論理・安全性、GPTは汎用性、Geminiはマルチモーダル。目的に応じて最適化する。 - トークン使用量を最適化する
短く構造化されたプロンプトは、速度・コスト・品質のバランスを最適化する。 - 継続的に評価・改善する
AIの挙動は更新とともに変化する。プロンプトをPDCA的に改善し、学習効果を蓄積する。
まとめ
LLMはトークン列を予測し、統計的に整理する技術であるということがわかった。
AIを正しく使うには、このトークンの構造を理解し、意図に沿った入力を設計することが大事だと思う。
- LLMは確率的に次のトークンを予測するモデルである
- トークン化は自然言語と数値世界の橋渡しである
- 効果的な活用には5つの原則が不可欠である
AIの出力の質は、入力する言葉の精度と構造によって決まってくる。
なのでAIを使いこなすには指示を設計する力を磨いていく必要がある。
Discussion