
拓海先生、最近「語彙外サンプリング」とやらが話題だと聞きましたが、正直私にはちんぷんかんぷんでして、簡単に教えていただけますか。

素晴らしい着眼点ですね!大丈夫、一緒に整理しますよ。端的に言えば、ある小さなモデルが提案できない語彙(単語)を賢く補って、本命モデルの確認回数を増やせる手法なんです。

なるほど。でも実務で言うと、何が困っているんでしょうか。小さいモデルを使えば速くなるのは分かるのですが、その代わり品質が落ちるのではないですか。

素晴らしい着眼点ですね!要点は三つあります。第一に、小さいモデル(drafter)は速いが語彙が限られるため本命(target)に受理されない提案が増えること、第二に、それが受理率(acceptance rate)を下げて効率を損なうこと、第三に今回の手法はその穴を埋めて効率を回復できることです。

受理率という言葉が出ましたが、それは「どれだけ下流のモデルが上流の提案を受け入れるか」という意味で合っていますか。具体的には現場で何が改善されると考えれば良いですか。

素晴らしい着眼点ですね!現場では応答速度、サーバーコスト、ユーザー待ち時間が変わります。受理率が上がれば本命モデルの確認回数が減り、総合的な遅延と計算コストが下がるのでトータルで得するのです。

それなら安心できますが、従来の方法では語彙が交差する部分だけ使うんですよね。Token-Level Intersection(TLI)というやつですか。これだと受理率が低いと聞きましたが、なぜそうなるのですか。

素晴らしい着眼点ですね!Token-Level Intersection(TLI)とは、上流と下流の語彙の共有部分だけ提案するやり方です。これだと上流が提案しない多くの候補をそもそも作れないため、特に語彙の重なりが小さければ受理率が下がるのです。

なるほど。ここで聞きたいのですが、これって要するに、語彙が小さいドラフターでも実用上の受理率を回復できるということ?

その通りです!要点は三つに整理できます。第一に、Redistributing Drafter Kernels(RDK)という手法は語彙外(out-of-vocabulary, OOV)トークンを仮想的に復元すること、第二に、トークン間の親和性を使って確率を再配分すること、第三に、この処理は追加の推論遅延をほとんど生まない点です。

親和性というのは学習データ上で一緒に出やすい単語のつながりという理解で良いですか。実装に手間はかかりますか、前処理が必要だと聞きましたが。

素晴らしい着眼点ですね!親和性(token-affinity)とはトークン同士のつながりを数値化した行列です。これを一度代表的なデータで作る前処理が必要ですが、そのコストは一回限りで、以降のデコードで何度でも使える点が実務的です。

なるほど、では最後に要点を私の言葉でまとめます。語彙の小さい高速ドラフターでも、このRDKを使えば重要な候補を仮想的に復元できて、全体の効率が改善するという理解でよろしいですか。ありがとうございました、拓海先生。
