AIの好きな数字
AIに1から10の間で乱数を生成するよう依頼すると、7を選ぶ傾向があり、これは人間のバイアスと類似している。この偏りはLLMが人間のデータから学習した結果である。評価において、10段階のような連続スケールを使用すると同様のバイアスが生じ、スコアが歪む。本記事では、バイナリの真偽質問を使用して評価スイートを構築し、重み付け和で連続スコアを得る方法を推奨する。また、Yeo-Johnson変換などで分布を正規化し、下流モデルの最適化を改善することを提案している。
「1から10までのランダムな数字を生成してください」とAIに依頼すると、多くの場合、7が選ばれます。これは、人間が同様の質問に対して7を選ぶ傾向があることと驚くほど一致しています。この現象は、大規模言語モデル(LLM)が人間のデータから学習した結果であり、人間のバイアスがそのままモデルに反映されたものと言えます。同様の偏りは製品レビューにも見られます。5段階評価で4つ星に集中する分布は、GoogleのレストランレビューやUberドライバーの評価にも現れています。
このバイアスはAI評価にも影響を及ぼします。例えば、LLM-as-a-judgeを使ってエージェントのタスク完了度を10段階で評価させると、スコアは7付近に集中します。7/10を良いスコアと解釈すると、実際は平均的な評価であることに気づかないかもしれません。実際にGitHubのコードスニペットを評価させた実験では、100サンプル中で7が最頻値となりました。さらに、多肢選択式の質問では、最初の選択肢を選ぶ位置バイアスも存在します。
著者は、この問題を回避するために、評価をバイナリの真偽質問に分解することを提案しています。コードの評価であれば、「コードは適切に構造化されているか?」「意図は明確か?」「エラー処理は適切か?」といった質問を設定します。各質問に重みを割り当て、それらの合計を連続スコアとすることで、透明性が高く、バイアスの影響を受けにくい評価が可能になります。さらに、スコアの分布を理解し、必要に応じてYeo-Johnson変換などの手法で正規化することで、下流モデルがより効果的にスコアを利用できるようになります。バイナリ分解と分布制御は、信頼性の高いAI評価システムを構築するための重要な手法です。