powered by TechFeed
表示モード
Deep Dive

LLMの出力検証レイヤーを重ねても精度は上がらない — CADECベンチマークで示された「差し止め」という実態

11月10日、InfoQが「LLM Reliability Layers Under Test: Accuracy, Yield, and the Limits of Verification」と題した記事を公開した。LLMの出力を検証・修正するための複数の「信頼性レイヤー」を実際にベンチマークした結果、それらが精度向上ではなく出力の抑制にしか機能しないという実証知見を詳しく報告している。「レイヤーを重ねれば精度は加算的に上がる」という直感に反する結論であり、LLMを運用システムに組み込む設計を考える上で無視しにくい。

11月10日、InfoQが「LLM Reliability Layers Under Test: Accuracy, Yield, and the Limits of Verification」と題した記事を公開した。LLMの出力を検証・修正するための複数の「信頼性レイヤー」を実際にベンチマークした結果、それらが精度向上ではなく出力の抑制にしか機能しないという実証知見を詳しく報告している。「レイヤーを重ねれば精度は加算的に上がる」という直感に反する結論であり、LLMを運用システムに組み込む設計を考える上で無視しにくい。


「レイヤーを重ねれば精度が上がる」という前提が崩れた

LLMの出力を運用で使えるレベルに引き上げるため、多くのシステムが「検証レイヤー」を積み重ねる構成を採る。誤りを検出して再試行させる、複数回サンプリングして多数決をとる、別モデルに評価させる——これらを組み合わせれば精度は加算的に上がるはず、というのが暗黙の前提だ。LLMの信頼性をどう担保するかは業界全体の課題であり、LLMOpsやGuardrailsのような枠組みもこの発想を背景に発展してきた。

InfoQが紹介するこの研究は、その前提を実験で検証した。題材はCADEC(CSIRO Adverse Drug Event Corpus)——薬剤副作用に関する1,250件のフォーラム投稿に、反応の記述範囲(スパン)とSNOMED CTコードのアノテーションが付いたベンチマークデータセットだ。医療NLP分野で広く使われる公開コーパスである。なお、以下で示す実験結果はすべてこのCADECデータセット上の知見であり、他のドメインやタスクへの汎化については元記事も慎重な立場をとっている点は留意が必要だ。

結果は明快だった。6つのレイヤーを実装・計測したが、どれも「回答を修正」することはほぼなく、「疑わしい回答を差し止める」だけだった。 レイヤーは精度の階段ではなく、一本のダイヤルだった。


何を試して、何がわかったか

パイプラインの構成はシンプルだ。モデルが副作用の記述をフォーラム投稿から引用し、SNOMED CTの227,554件のキーワード-コード対応表から埋め込み検索で上位20件の候補を提示、モデルがその中から選ぶ。コードを記憶から生成させる方式も試したが、13〜18%は実在しないコードを「作り上げた」。メニューから選ばせる方式はF1スコアで約10倍優れていた。

その上に積まれた6つのレイヤーの実測結果が以下だ(開発セット40件、3回実行の範囲):

レイヤー コスト 効果
語彙チェック(Vocabulary check) 0トークン 回答をREJECT/ACCEPT/BANDに分類。答えは変えない
自己修正(Self-correction) 約1,500トークン REJECTのみ発火。1〜2回/実行で修正件数はゼロ
多数決(Voting) 411,000〜432,000トークン 約27件のコードを変更、正解→誤りと誤り→正解がほぼ同数で差し引き±1
第2モデル評価(Judge) 84,000〜88,000トークン メニューを見せると3.4〜4.2倍の識別精度。ただし後続レイヤーがその判定を使わない
差し止め(Refusal) 0トークン ACCEPTのみ通過させると21〜23%のレコードが精度0.74〜0.82で通過
人間レビュー 未計測 差し止められた回答を人間が確認

有償の3レイヤー(自己修正・多数決・第2モデル評価)を除去してRefusalだけを再実行したところ、差は最初の実行で1件、残り2回の実行では0件だった。 合計数十万トークンを費やしたレイヤー群が、このベンチマーク上ではほぼ寄与していなかったことを意味する。


「精度」が隠すもの:Yieldという指標

この研究が強調する概念がYieldだ。元記事の定義に従えば、Yieldは「自動処理を通過した正解の割合」——すなわち差し止めによって正解が捨てられるコストを可視化する指標だ。全レコードのうち自動処理を通過し、かつ正解だったものがどれだけあるかを示すため、分母は全レコード数となる。

精度(Accuracy)だけを見ると、差し止めレイヤーは常に「改善」に見える。疑わしい回答を除けば残ったもののうち正解率は上がるからだ。しかしYieldは下がる——差し止めによって正解まで捨てているからだ。

実験での最も厳しい差し止め設定(ACCEPT判定のみ通過)では、128件の誤りを除去する代わりに49件の正解も失い、177件が人間レビューへ送られた。 差し止めは精度を高めるが、自動処理できる正解の絶対数を減らす。これが「精度向上ではなく出力抑制」の実態だ。


本当のボトルネックは「読み取り」にある

図4が示す通り、パイプラインの信頼性問題はコード選択ではなくスパン抽出(フォーラム投稿中から副作用の記述箇所を切り出すステップ)にある。正しいスパンが見つかれば、正しい概念がメニューに入る確率は93%、モデルがそこから正解を選ぶ確率は81%だ。

問題はアノテーション済みの226件の言及のうち、ほぼ半数がモデルに正しく引用されない点だ。医療知識の欠如ではなく、単語の境界のずれ(余分な形容詞が混入)、慣用表現のリテラル読み、単語単位の見落としが原因だった。このスパン抽出ステップの改善を目的として、BioMistral-7BやSapBERTなどドメイン適応モデルも試されたが、いずれも改善しなかった。効いたのは、具体的なプロンプト例と「否定された反応を含めない」というルールだった。

「いかなるレイヤーも、見落とされた言及を追加することはできない」——これが記事の核心的な結論だ。検出器が見逃したものは、どのレイヤーを重ねても取り戻せない。最大の改善は、ドメイン適応ではなくコーパスのアノテーション規則に合わせることから得られた。


多数決と第2モデル評価の「正しい使い方」

記事は、多数決と第2モデル評価を「修正」に使うのではなく「診断」に使うべきだったと振り返っている。

  • 票が割れた回答はモデルが安定して出力できない不確実な答えを示す
  • 第2モデルが「メニューに正解がない」と判定した回答は、取得ステップの失敗(埋め込み検索がそもそも正しい候補を返せていない)を示す

これらのシグナルをフィードバックループに組み込む設計にすれば、診断情報として有効だった可能性がある。今回の実験では、その判定を受け取るレイヤーが存在しなかった。


決定論は保たれたか

温度0での決定論性も検証された。5つのモデルファミリーのうち4つ(llama3.1:8b、mistral:7b-instruct、qwen3:8b、granite4:micro-h)は3回実行でバイト単位の完全一致を示した。唯一の例外はMixture-of-Experts構造を持つgpt-oss:20bで、3回のうち1回が異なる出力を返し、F1も4ポイント高かった。同一モデルの実行間でF1が4ポイント変動したという事実は、単回実行でレイヤー効果を評価することの危うさを示している。


詳細はLLM Reliability Layers Under Test: Accuracy, Yield, and the Limits of Verificationを参照していただきたい。