トークン
トークンとは、文章をモデルが理解できる最小の単位に分解したものです。
自然言語処理の世界では、文をそのまま扱うのではなく、小さな単位に切り分けて処理します。その「切り分けられたかけら」がトークンです。
例:「私は薬剤師です。」
→「私」「は」「薬」「剤」「師」「です」「。」のように切り分けられる。
(実際にはモデルや分割方式によって異なります)
生成AIが文章を生成する際、単語そのものではなく、トークン単位で確率的に次の出力を予測しています。例えば「おはよう」と入力したとき、次に来るトークンが「ござい(『ございます』のかけら)」なのか「。」なのかを確率で判断して出力します。これにより文が自然につながるようになっています。
トークンの大きさ
トークンは必ずしも「1文字=1トークン」「1単語=1トークン」とは限りません。
- 英語では短い単語(例:”cat”)は1トークン。
- 長い単語(例:”pharmacist”)は2~3トークンに分割されることがあります。
- 日本語の場合は複雑で、ひらがな1文字で概ね1〜2トークン、漢字1文字で概ね1〜3トークンになるケースが多いです。
API経由でモデルを使う場合には、トークンが重要となる
ChatGPTやGeminiなどのサービスをAPI経由で組み込む場合は、その利用料金はトークン数に比例して決まることがほとんどです。入力トークンと出力トークンの合計で計算されるため、長文を扱うとその分料金が高くなります。
ブラウザやアプリで直接使用する場合は、それほどトークンのことを気にしなくても良いのですが、各モデルには「最大トークン数」が存在し、それを超えると入力や出力が切り捨てられるため、注意が必要です。
まとめ
- トークン=各モデル(LLM)が扱う最小の言語単位
- 単語や文字を分解したもの。英語は数文字単位、日本語はひらがな1文字で概ね1〜2トークン、漢字1文字で概ね1〜3トークンになるケースが多い。
- モデルはトークンごとに次の出力を予測して文章を生成している。