2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLM-as-a-Judgeの節約術、320件測ったらサイコロで選ぶのと同じ

2
Last updated at Posted at 2026-11-12

RAG の回答を LLM Judge(採点役の LLM)で全件チェックすると、費用がかさみます。なので、どこかで間引きたくなります。

RAG 評価の記事に、こんなコメントをもらいました。「Judge は高いので、もっともらしさのスコアが 0.7 を超えた回答にだけ回している。呼び出しは 60% 減って、重大な失敗の検出は落ちていない」。

怖い作り話はもっともらしいほうだから、そこにだけお金をかける。筋の通った工夫です。手元で測ってみました。

結果は、私の測り方では、もっともらしさで絞るのは無作為に間引くのとほぼ同じでした。Judge の呼び出しは減りますが、減ったぶんだけ見逃しが増えます。

LLM Judge の回し方ごとの、作り話の検出率と Judge に回した割合。もっともらしさで絞ると無作為と同じ35%前後

回し方 作り話の検出率 Judge 呼び出し
① 全件に Judge 85.6% 100%
② もっともらしさ(9b) > 0.7 だけ 35.6% 50%
参考: 無作為に 40% だけ 34.2% (期待値) 40%
③ 安い照合が割れたものだけ 93.1% 58%

データは人手で作り話のラベルが付いた公開データセット RAGTruth の QA 320件、モデルはすべて手元の Ollama(Qwen 3.5)です。前提と限界は末尾の「測定条件」にまとめています。

コラム: RAGTruth とは

RAG の回答のうち「どこが作り話か」に、人が印を付けた公開データセットです(GitHub、MIT ライセンス)。

イメージは、赤ペンの入った答案の束です。資料を渡して GPT-4 や Llama-2 などに答えさせた回答が約1.8万件あり、人が「ここは資料に書いていない」「ここは資料と食い違う」と書き込んでいます。

よく使われるのは、RAG の作り話を見つける仕組みの学習や性能比べです(LettuceDetect などの検出器も、このデータで学習して比べています)。私も今回のように、RAG の精度をチェックする指標の1つとして使っています。

この記事では質問応答の回答だけを使い、赤ペンが1つでも入った回答を「作り話あり」としました。正解が人の目で付いているので、Judge やもっともらしさのスコアが作り話を当てられたかを、別の LLM の判定に頼らずに数えられます。

比べた3つの回し方

構成 Judge を回す対象 残りの扱い
① 全件 すべて なし(基準)
② もっともらしさで絞る もっともらしさ > しきい値 「問題なし」とみなす
③ 段階的にふるう 1文照合と固有名詞の照合で判定が割れたもの 1文照合の判定を使う

コメントには「もっともらしさ」の定義が書かれていなかったので、こちらで決めました。質問と回答だけを小さいモデルに見せて(文書は見せない)、「この回答はもっともらしいか」を Y か N の1文字で答えさせ、Y の確率を取る。資料を確かめずに回答を読む人の感覚に寄せた定義です。コメント主と同じものを測れているとは限りません。

椅子にもたれて回答の紙だけを読む人。机の上の資料のバインダーは閉じたまま

ほかの部品は次のとおりです。

  • 1文照合: 回答を文に分け、1文ずつ「文書から言えるか」を Y/N で答えさせる。一番低い確率を回答のスコアにする(qwen3.5:4b)
  • 固有名詞の照合: 回答に出てくる数字と固有名詞のうち、文書に出てくる割合。モデルは使わない
  • Judge: 文書・質問・回答を見せ、「回答はすべて文書に裏付けられるか」を Y/N で答えさせる(qwen3.5:9b)

確率は Ollama の logprobs から取っています。1トークンだけ出させて、Y と N の確率を正規化する方式です。

もっともらしさは、作り話の有無と関係がなかった

まず、もっともらしさのスコアが作り話をどれだけ上に並べられるかを AUROC で見ました。0.5 なら偶然と同じ、1.0 なら完全に分けられます。

コラム: AUROC とは

「作り話の回答を、普通の回答より怪しいと並べられるか」を、0〜1 の1つの数で表したものです。

イメージは、くじ引きです。作り話の回答と普通の回答を1件ずつ引いて、スコアが作り話のほうを「怪しい」と当てられた割合が AUROC です。1.0 なら毎回当たり、0.5 ならコイン投げと同じです。

しきい値(0.7 など)をどこに置くかに左右されないので、「そもそもこのスコアに見分ける力があるか」を確かめるのに向いています。

部品 AUROC
もっともらしさ (qwen3.5:2b) 0.491
もっともらしさ (qwen3.5:4b) 0.499
もっともらしさ (qwen3.5:9b) 0.549
1文照合 (4b) 0.792
固有名詞の照合 0.592
Judge (9b) 0.869

3つのモデルとも 0.49〜0.55 です。文書を見ずに読む限り、作り話の回答は普通の回答と同じくらいもっともらしく見えます。

考えてみると当然で、RAG の作り話は「文書に書いていないことを、それらしく書く」ものです。文書を見なければ、それらしさしか判断材料がありません。

なので②は、Judge に回す対象を無作為に選ぶのとほぼ同じになりました。9b で 0.7 を超えたのが半分(Judge 50%)で、検出率は 35.6%。上位 40% に絞ると 28.1%。無作為に 40% を選んだときの期待値 34.2% と変わりません。

0.7 の意味は、モデルで変わる

同じ「0.7 超」でも、モデルによって Judge に回る量がまったく違いました。

もっともらしさのモデル 0.7 超の件数 検出率
qwen3.5:2b 175 (55%) 45.6%
qwen3.5:4b 6 (2%) 2.5%
qwen3.5:9b 159 (50%) 35.6%

4b は全体に辛口で、もっともらしさの中央値が 0.13 でした。0.7 を超えるのは320件中6件だけで、Judge にはほとんど何も回りません。しきい値の数字は、使うモデルとプロンプトの組でしか意味を持ちません。他人の「0.7」をそのまま持ち込むと、こうなります。

もっともらしくない作り話は、全部素通りした

コメントを読んで最初に気になったのは、もっともらしくない作り話は素通りしないか、という点でした。

もっともらしさ (9b) 件数 うち作り話 ① で検出 ② (> 0.7) で検出
0.0〜0.3 60 37 36 0
0.3〜0.7 101 49 44 0
0.7〜1.0 159 74 57 57

0.7 以下の作り話は 86件あり、全件に Judge を回せば 80件拾えました。② ではその全部が素通りします。もっともらしさが低い回答は人間が勝手に疑ってくれる、という前提が立つなら許せる見逃しですが、自動の評価パイプラインでは誰も読んでいません。

段階的にふるう方式は、拾えるが安くない

③は、安い照合2つ(1文照合と固有名詞の照合)の判定が割れたものだけを Judge に回す方式です。検出率は 93.1% で、全件に Judge を回した① (85.6%) より高くなりました。1文照合が Judge と違うところで作り話を拾うためです。ただし誤検知も 30.0% から 43.8% に増えます。

問題は費用でした。「安い照合」のはずの1文照合が、Judge より高くついています。

部品 呼び出し数 合計秒 入力トークン
もっともらしさ (4b) 320 307 79,083
1文照合 (4b) 2,564 1,364 1,058,277
Judge (9b) 320 473 181,219

1文照合は文の数だけ呼び出し、そのたびに文書を送り直します。入力トークンは Judge 全件の 5.8倍でした。③の合計は 1,637秒・約116万トークンで、① の 3.5倍の時間、6.4倍のトークンです。

モデルが小さくても、呼び出し回数と送る量が増えれば安くなりません。段階的にふるって節約したいなら、1文照合には NLI(含意関係の判定)専用の小さいモデルのような、本当に安い部品が要ります。この実験ではそこまでは試していません。

Judge のコストは、そもそも大きいのか

今回の Judge 1件の入力は平均 566トークンでした。これを Claude API の Judge に置き換えた場合の目安です。Qwen のトークン数で計算しているので、数え方の違いの分だけずれます。

Judge のモデル 入力 / 出力 ($/1M トークン) 320件 1,000件あたり
Claude Haiku 4.5 1 / 5 $0.183 $0.571
Claude Sonnet 5 2 / 10 $0.366 $1.143
Claude Opus 5.5 4 / 20 $0.731 $2.285

文書が短い QA なら、Haiku で1,000件 0.6ドルほどです。社内文書のように1回の文脈が数千トークンになると、ここが数倍から十数倍になります。間引きたくなるのはそういう規模の話で、そのときに「もっともらしさで絞る」と、費用と一緒に検出率も同じ割合で落ちます。

私ならどうするか

測った範囲から言えることは3つです。

  • 間引くなら、抜き取り検査だと割り切る。もっともらしさで絞っても無作為と同じなら、無作為に抜くほうが「見逃し率もそのぶん増える」と説明しやすい
  • しきい値は自分のモデルで決め直す。0.7 のような数字は、どのモデルにどう聞いたかとセットでしか意味がない
  • 安い照合は、本当に安いもので組む。LLM を文の数だけ呼ぶと、Judge 1回より高くつく

コメント主の環境(機密データ、別の定義のもっともらしさ)では効いていた可能性もあります。この記事は「その方法が間違い」という話ではありません。少なくとも、もっともらしさを「文書を見ずに読んだ印象」で測ると絞り込みの役に立たなかった、という記録です。

測定条件

  • 環境: RTX 4070 12GB、Ollama(Qwen 3.5 の 2b / 4b / 9b)
  • データ: RAGTruth の質問応答 320件(作り話あり 160 / なし 160。生成モデルの内訳はそろえた)
  • 英語の短い文書だけで測っています。日本語の RAG や長い社内文書にそのまま当てはまるとは言えません
  • Judge は qwen3.5:9b の1つだけです。Judge 自体も誤検知が 30% あり、正解ではありません

Faithfulness(回答が文書に基づいているか)を他の評価軸の2倍の重みで見る理由と、正解データなしで測る方法は、こちらに書いています。

RAG評価はFaithfulnessを50%に

RAG・MCP・ローカルLLM を実際に動かして測った記事を書いています。続きが気になる方は Qiita でフォロー してもらえると、次の記事が届きます。

評価の3軸と、Faithfulness を測る3つの手法の組み合わせは、拙著の「エンタープライズRAG」の章にまとめています。

LLMを「嘘つき」から「専門家」に変える技術 Context Engineering 実践入門

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?