井阪(ねぼすけAI)
はじめに
先日の関東Kaggler会で、「Data-Centric Kaggle」というタイトルで発表しました。内容としては、Kaggleで勝つためにデータをどう改善していくかという話をしました。

今日は、その発表の中で軽く紹介した「LLM-as-a-Judge」の話をします。特に、LLM-as-a-Judgeを大量に回すときに、どうやってコストを抑えるかというTipsの紹介をします。
具体的には、自分がソロ金メダルを獲得したコンペで、100万回のLLM-as-a-Judgeを実行したときに考えていたことを紹介します。
100万回のLLM-as-a-Judge!
まず前提として、2,000件のキーワードそれぞれに対して、500件の質問への回答を評価する必要がありました。 つまり、2,000 × 500 = 1,000,000。合計100万回の評価です。
これを何も考えずにLLM-as-a-Judgeで実行すると、かなりコストが高くなります。特に、出力側のトークンは入力側より高くなりがちなので、できるだけ短くしたいところです。
そこで、出力を1トークンに収めるために、max_tokens=1 に固定しました。
ただし、そのためにはタスク設計も工夫する必要があります。モデルには、回答を次の4種類だけで返すように指示しました。
そのうえで、unsure と irrelevant は後処理で tie としてまとめます。最終的には、各キーワード・質問・回答の組み合わせに対して、次の3値のスコアを持つテーブルを作るイメージです。