指示に従わせる ── 指示チューニングと嗜好最適化
第8章で、予算を と にどう割るかまで来ました。できあがったものは続きを当てる器です。質問を入れれば、その続きとして尤もらしい文字列が出てきます。
ただ「尤もらしい続き」は「役に立つ応答」ではありません。この章は、事前学習の次に来る2段——指示チューニングと嗜好最適化——を、損失関数の側から見ます。
どちらも新しい仕掛けではなく、的の置き方を変えただけです。そのことを式で確かめます。
1. 事前学習が一度も的にしていないもの
第8章の第6節で的の数を数えました。1,000トークンの文書から999個。全部「次のトークンは何か」です。
「良い応答はどちらか」という的は、1個もありません。
これは能力の話ではありません。第2章から繰り返している通り、損失に入っていないものは学習されません。事前学習の損失は次の形でした。
ここに「読む人の役に立ったか」は入っていません。だから「質問の続き」として、答えではなく
- 同じ形式の別の質問(問題集の続きなら、そうなります)
- 「という問題が去年の試験に出た」
- 選択肢の列
が出てきても、損失の上では何も間違っていません。学習データにそういう続きが実際にあったのだから、分布を当てる仕事としては正しいのです。
2. 第1段:指示チューニング ── 損失は同じ、数える場所が違う
指示チューニング(SFT, supervised fine-tuning)でやることは2つだけです。
- データを〈指示, 応答〉の対にする
- 損失を応答の部分だけで取る(指示の部分は数えない)
損失そのものは第0部第4章の交差エントロピーのままで、新しい式は出てきません。変わるのはどこを数えるかです。
数えないと、どこへ行くか
対のうち指示が トークン、応答が トークンだとします。全トークンで損失を取ると、応答が占める割合は です。
| 指示 | 応答 | 応答の割合 | マスクすると |
|---|---|---|---|
| 200 | 50 | 20.0% | 100% |
| 500 | 20 | 3.8% | 100% |
| 1,000 | 200 | 16.7% | 100% |
| 100 | 100 | 50.0% | 100% |
、 の対——よくある形です——で全部数えると、勾配の96.2%は「指示文の続きを当てる」ことに向かいます。それは事前学習をもう一度やっているだけで、指示に従う練習ではありません。
同じデータ・同じ損失の式でも、数える場所を変えると学習の中身が変わる。 指示側をマスクするのはそのためです。
的の数はどれだけあるか
桁を見ます。対が5万件、応答が平均200トークンなら、的の数は次の通りです。
第8章の例では事前学習に トークン(=ほぼ同数の的)を流していました。比は です。
3. SFT で足りないもの ── 順序を教えていない
交差エントロピーは「見せた応答の分布に合わせろ」という命令です。ここに弱点があります。
同じ指示に対して、良い応答と悪い応答を1本ずつ見せたとします。 データ上の頻度は 1:1。最尤推定はそれに素直に従い、0.5 / 0.5 に合わせます。モデルから1本引いたとき、良いほうが出る確率は 0.5——当て推量と同じです。
| 引く回数 | 悪いほうが少なくとも1回出る確率 |
|---|---|
| 1回 | 50.0% |
| 3回 | 87.5% |
| 5回 | 96.9% |
の裏返しです。SFT は模倣なので、見せたものの平均が出てきます。 データに混ざった分だけ、混ざって出ます。
直す道は2つあります。
- 悪い応答をデータから消す。 ただし「何が悪いか」を言語化できないと消せません。文体が硬い、結論が先にない、聞かれていないことを足している——どれも書き手によって線が違います。
- どちらが良いかだけを言ってもらう。 応答を書き起こす必要はなく、2本並べて選ぶだけです。得られるのは「良い応答の本文」ではなく順序です。
後者が嗜好最適化(preference optimization)の入口です。問題は、順序をどうやって損失にするかです。
4. 比較を点数に変える ── Bradley–Terry
比較しか手元にないので、まず「点数があったとしたら比較はこう出るはず」という置き方を決めます。応答 が より好まれる確率を、次のように置きます。
点数の差がそのままロジットになるという仮定です(Bradley–Terry モデル)。これを置くと、比較のデータからロジスティック回帰で を当てられます。
差と勝率の対応は計算できます。
| 報酬差 | 勝率 |
|---|---|
| 0 | 50.0% |
| 0.5 | 62.2% |
| 1 | 73.1% |
| 2 | 88.1% |
| 3 | 95.3% |
| 5 | 99.3% |
逆向きにも読めます。人の意見が7割で一致する程度の差は、 です。9割なら 2.197。一致率が上がっても報酬差はゆっくりしか伸びません。
について決まるもの・決まらないもの
この置き方では、 の原点が決まりません。全部に同じ定数を足しても差は変わらないからです。実測:、 で勝率 0.710950。両方に しても 0.710950。
一方で倍率は効きます。差を2倍にすると 0.858149 になります。
5. 報酬を上げるだけでは壊れる ── 第2のつまみ
点数が手に入ったので、あとはそれを最大にすればよさそうです。やってみると困ります。
だけを最大にする方針は、報酬が最大の応答を毎回出すものです。分布としては1点に潰れます。そして は人の比較から推定した量なので、推定が甘い場所に全部寄ります。良い応答を探しているのではなく、報酬モデルの穴を探していることになります。
だから第2の項を足します。参照方針 (SFT を終えたモデル)から離れた分を罰します。
は第0部第4章で出てきた「ずれの量」です。 は1ずれるごとに何点ぶん罰するかの交換レートです。
解を手で出す
応答が有限個なら、この最大化はラグランジュで解けます。やることは2つで、 の制約を付けて目的関数を書き、 で偏微分して 0 に置くだけです。
コメント
コメントにはログインが必要です