大規模言語モデル(LargeLanguageModel:LLM)への入出力に使われているトークナイザーについて,下流タスクから評価した研究が複数行われているものの,タスク内容やモデルの種類など議論の難しい要素が非常に多く,実際の開発では経験的な決め打ちによってトークナイザーを作成している場合が多いと推察する.そこで,本研究ではトークナイザーの定量的な指標となる,評価用テキストをトークナイズしたときの1トークンあたりの平均文字数(LengthperToken:LPT)を複数の場合で調べた.結果として,LPTは語彙数に対していずれの言語でもlog的に増加し,ただしその係数は言語特性を強く反映することが明らかとなった.また,英語に比べて日本語の場合で特にLPTがデータセットのドメインに影響を受けることが明らかとなった.

近年,LLMの研究・開発が盛んに行われている.その中でトークナイザーはLLMにテキストを入出力するための不可欠な要素である.一方で,複数の研究結果[1,2]から,トークナイザーの語彙数は下流タスクに対して強く良く影響するものではないと判断できる.そのため,トークナイザーの語彙数を大幅に増やしたLLMは主流ではなく,現在は語彙数32,000程度のトークナイザーが広く用いられている.これは16-bitに収まる値でもある(<65,535).例外として多言語モデルではより多くの語彙数が必要とされる.実際に多言語モデルのQwen[3]では語彙数150,000となっており,最も小さい7Bモデルでは語彙数の影響を受けているパラメータが全体の8.9%を占めている.また,LLMの学習に用いるテキストはトークナイザーによってトークン数が変わる.以上のようにしてトークナイザー,特にその語彙数はLLMの学習コストに影響を与える.本研究ではそうした観点から,トークナイザーの性能評価として,評価用テキストをトークナイズしたときの1トークンあたりの文字数(LPT)を複数の場合で調べた.その結果について,特に以下の2点に注目して議論する.•語彙数・言語による影響•データセットによる影響1.1LengthperToken(LPT)LPTはCharactersperTokenとも呼ばれ,トークナイザーの性能を定量的に評価する指標である.与えられたテキストをトークナイズしたときに1トークンあたり何文字であるかを表しており,テキストの文字数をトークン長で割った値である.これはテキストの圧縮比の逆数に相当する.これが大きいほどトークン化効率が良いと言え,LPTが高いほど固定されたトークン数で扱える文字数が増える,とも言い換えられる.ここで,LPTは学習に用いていない評価用のデータセットをトークナイズしたときの1トークンあたりの平均文字数であり,トークナイザーの語彙辞書内の語彙の平均文字数ではない.LPTは下流タスクの性能を表すものではないが,コストの面でLLMと直接関係している.本研究ではトークナイザーの手法としてBytePairEncoding(BPE)を採用している[4].他の類似手法としてUnigram[5]もBPEと同等かそれ以上の性能を持つことが知られているが[6],本研究ではLlama[7]と同じBPEをSentencePiece[8]で実装した.