【トークンヒーリング】

トークンヒーリング とは?

最終更新:
💡 入力の文字を保ちながら、補完の切れ目をつなぎ直す手法

LLMのテキスト補完で、入力末尾と続きの間に生じるトークンの切れ目の条件を緩める手法。末尾の1個以上のトークンを戻し、元の入力文字列を保つように生成を条件して、境界をまたぐトークンも選べるようにする。文章の正しさを保証するものではない。

📌 このページのポイント
入力の文字を保ち、切れ目をつなぐ 入力 http: / 続き // http : 末尾を戻す http :// 元の「:」を含む候補に制約する
Guidance資料のトークナイザー例。枠はトークンを表す。末尾の「:」を再生成して境界をまたぐ「://」を選べるようにし、入力文字列http:を保つ。モデルや実装で分割は異なる。
ひよこ ひよこ
どんな問題を直すの?
ペンギン先生 ペンギン先生
入力と続きは、別々にトークン化すると、完成した文字列をまとめてトークン化した場合と切れ目が変わることがあるよ。そのまま入力を固定すると、境界をまたぐ長いトークンが選べず、自然な続きの生成に影響する場合があるんだ。
ひよこ ひよこ
具体例は?
ペンギン先生 ペンギン先生
Guidanceの資料では、あるトークン分割器で `http:` を `http` と `:` に分ける例があるよ。続きが `//` なら、全体では `://` というトークンを使える。でも `:` を入力として固定したままでは、そのトークンを次に選べないんだ。
ひよこ ひよこ
入力を消してしまうの?
ペンギン先生 ペンギン先生
トークンとしては末尾を戻すけれど、再生成するときに元の末尾で始まるよう条件を付けるよ。例えば `:` を戻したなら、再生成部分も `:` で始まるようにする。元の文字列 `http:` を失わずに、境界をまたぐ候補を選べるんだ。
ひよこ ひよこ
必ず1トークンだけ戻す?
ペンギン先生 ペンギン先生
Guidanceの説明では1個以上を戻す方法として扱われているよ。戻す範囲や条件の実装は道具による。単に候補を採点し直せば必ず最適な文章になる、という手法ではないんだ。
ひよこ ひよこ
どこでも使える?
ペンギン先生 ペンギン先生
Guidanceでは、モデルの生成やトークンの選択を直接制御できる接続で使う仕組みだよ。外部APIへ文章を送るだけで、同じ制御ができるとは限らない。コードなどの補完に役立つ場合があるけれど、構文や事実の確認は別に必要だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「トークンヒーリング」って出てきたら「入力の文字を保ちながら、補完の切れ目をつなぎ直す手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Token Healing」 = トークンの修復
💬 Tokenは文字列を扱う単位、Healingは修復や癒しという意味だよ。入力の誤字を勝手に直すというより、補完の境界で生じる条件を扱う名前なんだ。

参考資料

← 用語集にもどる