大規模言語モデルは、テキストを「トークン」に切り分けてからTransformerに入力するのが一般的だ。ただ、トークナイザーには語彙外の単語や、言語によってトークン化の効率が異なる問題、バイト列を無理やり分断してしまう欠陥がある。最近はこの仕組みを捨てて、生のバイト列を直接入力にする無トークナイザー路線がじわじわ注目されている。入力は動的な長さの「パッチ」にまとめられ、モデル自身がテキストの区切り方を学ぶ。
このアプローチには利点が多い一方、欠点もある。パッチが空白のような単純なものか、複雑な意味を持ったまとまりかに関係なく、フィードフォワード層は同じ密な計算を実行してしまう。パッチは数バイトしかないこともあれば、数十バイト以上の情報を含むこともあり、情報密度はまちまち。固定の計算量で処理するのは、資源の使い方としてどう考えてももったいない。
ルーティングの合図は「エントロピー」
arXivに公開されたプレプリントで提案されたEntropyMoEは、この無駄をMixture-of-Expertsで解消する。具体的には、グローバルパッチTransformerの中にある密なFFNを、Top-Kエキスパート層に置き換える。
ルーティングの最小単位は動的パッチで、信号に使うのは追加のembeddingではなく、パッチを作るときに計算したエントロピー。パッチにどれだけ情報が詰まっているかを、そのまま専門家ネットワークの選び分けに使うわけだ。
計算資源を各パッチに均等に振り分けるのをやめ、情報量に応じて配分する。複雑なパッチには多くのエキスパートを割り当て、単純なパッチには少ない計算で済ませる。
ここがポイントで、パッチのエントロピーとパッチ長を組み合わせてルーティングの特徴空間を作る。パッチがカバーするバイト範囲が負荷計算の重みになり、バイト単位に細分化した際の断片化を防ぎつつ、動的パッチの解釈もしやすくしている。
結果はbits-per-byteに表れている
論文の実験は、EntropyMoEがマッチする密なモデルと疎なモデルのベースラインを、すべて下回るbits-per-byteを達成したと報告する。下流タスクの精度は従来と同じ水準を保っている。bits-per-byteはモデルの圧縮効率を示す指標で、低いほどデータ規則性をうまく捉えている。
具体的な工夫は次の3点にまとめられる。
- 動的パッチごとにTop-Kエキスパートを選び、バイト範囲に応じて負荷を計算
- 密なFFNを疎なMoE層へ置き換え、活性化する専門家を限定
- ルーティングにパッチのエントロピーのみを使い、追加の分類ヘッドが不要
エントロピーという「パッチ構築と同源」の量をルーティングに使うことで、新たに表現を学習するコストを避けつつ、計算の重点を情報量の多いパッチへ移している。この設計はかなり理にかなっている。
無トークナイザー型LLMの今後を占う
MoEの研究はこれまで、固定トークンを単位にすることが多かった。一方で無トークナイザー型にはトークン境界が存在せず、動的パッチ上でどうルーティングするかが課題だった。EntropyMoEの「エントロピー」という解は、長いコンテキストや低リソース言語を扱いたい研究・実務の現場に刺さる。
ただし、現時点で公開されているのはプレプリントの要旨レベル。実装の詳細や訓練規模、アブレーションの完全なデータはまだ確認できない。実際の導入を視野に入れるなら、正式版かコードが公開されてから、自分の扱うデータ領域で評価するのが良さそうだ。











コメント
コメントはまだありません
最初のコメントを書きましょう