チャットボットに乱数を選ばせてみると
人々はチャットボットに、同点の決着をつけたり、恣意的な選択をしたり、コイン投げの代わりをしたりするよう頼む。Samar Ansariは、これをキャリブレーションの問題として扱う。どの選択肢を好む理由もないモデルは、確率をすべての選択肢に広く配分すべきだ。どの答えにも有利な点がないときにモデルがどうふるまうかは、論文の言葉を借りれば「座興の手品ではなく、測定可能な性質」である。
以前の研究は答えを数えていた。同じ質問を100回ほど繰り返し、ヒストグラムを描くのだ。この方法では、モデル自身の好みと、デコーディング設定がモデルに及ぼす影響とが混ざってしまう。しかも100回の抽出では、細かな違いが見えなくなる。
サイコロを振らずに、正確な確率を
決まったプロンプトに対して、言語モデルは考えうるすべての続きに1つずつ確率を割り当てる。そこで著者は、サンプリングをする代わりに、モデルが1からNまでの各整数を書き、そこで止まる確率を計算する。最後の一歩が重要だ。それがなければ、「1」と書くことと「17」と書くことは別々の答えにならない。一方が他方の書き出しになっているからだ。
プロンプトは常に同じだった。「1以上[N]以下のランダムな整数を1つください。数字だけで答えてください。」 研究の対象は、18系統のオープンモデル(Qwen、Gemma、Llama、OLMoなど。いずれも80億パラメータ以下)、1〜5から1〜100までの5つの範囲、29通りのデコーディング設定、そして2台の異なるコンピュータである。あるモデルから実際にサンプリングした5,000個の答えと照合したところ、最も好まれる数は同じ15で、確率は計算で0.579、サンプリングで0.587だった。
チューニングが広がりを押しつぶす
物差しとなるのは、公平な抽選からの全変動距離である。これは「間違った」数に置かれている確率の割合を表す。ゼロは完全に均等であることを意味し、1から30の範囲では最大値は0.967だ。
15のモデルについて、研究は素の「ベース」版と、指示に従うようにファインチューニングされた版とを比べている。15組すべてで、チューニングは答えの均等さを下げた。 Gemma-3-4bは0.135から0.966になり、最大値まであとわずかだ。研究者が返答の冒頭を「Answer: 」と先に書いておくと、確率1.000で17と答える(自由に答えさせた場合は0.997)。一方、ベースモデルの中にはほぼ公平なものもある。OLMo-2-7Bは0.063にとどまる。
3つの癖
- 両端を避ける。 ベースモデルでもすでに、1や最大の数を答える頻度は、その間にあるどの数と比べても0.30〜0.60倍にすぎない。チューニング済みモデルは、ほとんど答えない。
- キリのいい数を避ける。ただしチューニング後にだけ。 両端を除けば、ベースモデルは10の倍数に公平な取り分を与えている。チューニング済みモデルが与えるのは、その0.00〜0.12倍だ。1から30の範囲では19分の1に落ちる。数がキリのいいものであるほど、避け方は強くなる。
- 奇数への傾き。 チューニング済みモデル全体ではっきり見られるのは1から100の範囲だけで、そこではチューニング済みの33の設定のうち27が奇数を好む。
これに対して、範囲の中央はほとんど避けられていない。
万能のお気に入りはない
チューニングは、あらゆるモデルに1つの魔法の数を植えつけるわけではない。チューニング済みモデルで最も多いお気に入りは、3(1〜5)、7(1〜10)、14(1〜20)、17(1〜30)、42(1〜100)だ。論文のタイトルはここから来ている。しかし範囲が10を超えると、42%を超える設定に共通するお気に入りはない。17の確率は、チューニング後に10組で上がり、5組で下がる。ベース版が17を好むQwen3-1.7Bは、最終的に15に0.993を置いている。
デコーダーのせいでもない。可能性の低い答えを切り捨てるというよくある設定は、公平な抽選からの距離を、中央値でわずか0.035増やすだけだ。偏りはモデルそのものに宿っている。
癖は借りもの、数は別もの
人間の選択についての古典的研究で、KubovyとPsotkaは通行人558人に0から9の数字を1つ求めた。それ以前の3つの研究と合わせると、1,770人のうち28.4%が7を選んだ。推測として示された彼らの説明では、人は両端、中央、偶数、3の倍数を避ける。チューニング済みモデルは1つ目の癖を完全に共有し、最も広い範囲では奇数への傾きも共有するが、中央を避ける癖は共有しない。そしてモデルの最も強い癖であるキリのいい数の回避は、人間についての説明には含まれていない。具体的な数が人間と一致するのは一度だけ、1から10の範囲での7である。
著者が強調するように、この失敗はノイズではなく、構造をもっている。いくつかの数から恣意的に選ぶチューニング済みモデルは、最初の選択肢、最後の選択肢、そしてキリのいい選択肢から離れていく。そこから実用的な助言が導かれる。言語モデルを乱数生成器として使ってはいけない。数はモデルの外で引き、その結果をモデルに渡すべきだ。
