LLM に「もう一度見直して」は効くのか。正解つき 160 件で測ったら、初回が 159/160 で天井だった

結論

  1. 初回判定が 160 件中 159 件正解で天井に張り付き、「見直させると誤りを直せるか」は測れなかった。測れたのは「正しい判定を維持できるか」だけ。
  2. 二段階レビュー(叩き台を渡す)と独立再実行の差は、確認 120 件で 118 対 117、全 160 件で 156 対 156 の同点。食い違いは 1〜2 件で、差を論じる検出力が無い。
  3. 再監査は 160 件中 157 件で初回のまま。動かした 3 件はすべて正解→誤り。反転は独立再実行でも同じく 3 件起き、再監査固有ではない。
正解つき 160 件の同一人物判定A 初回159B 独立再実行156C 見直し(叩き台あり)156C は 160 件中 157 件で初回のまま動かした 3 件はすべて正解→誤り。反転は B でも 3 件天井では「直せるか」は測れない → 初回 75〜90% の題材を選ぶ

前提

  • 誰向け: AI が出した判定を「もう一度 AI に確認させれば安全になる」と考えている人。
  • 題材: 日本人サッカー選手 160 件の同一人物判定(久保建英Takefusa Kubo は同じ人か)。真マッチ 80・非マッチ 80。モデルに渡すのは氏名とクラブ在籍歴だけ。生年月日・ID・URL は渡さない。
  • 正解: リンク用 ID とは別の独立属性(生年月日)で検証。機械照合 157/160、残り 3 件は個別確認、ラベル矛盾 0 件。
  • 3 条件: A 初回判定/B 独立再実行(A と同じプロンプトを、A の出力を見せずにもう一度)/C 二段階レビュー(A の出力を叩き台として渡し、KEEP か CHANGE を選ばせる)。
  • 事前登録した主役の比較は「確認セット 120 件での C 対 B」。

手順

  1. 開発セットと評価セットを分け、主要評価項目・信頼区間の出し方・予測を走行前にコミットする。
  2. 160 件 × A/B/C の 480 呼び出しを実行し、生の判定と正解を run_results.json に残す(誰でも精度を再計算できる)。
  3. C 対 B の対応表(McNemar)と、初回 A からの反転(正解→誤り)を数える。

うまくいかなかったこと

  • 非マッチが簡単すぎた。 最初は「同姓の別人」で作ったら、日本語側が一貫して年上(平均 3.5 歳差)で、年代だけで切り分けられた。生年差が最小のペアに選び直した(平均 1.8 歳差)。
  • それでも「クラブを照合しないと切れない」は言い過ぎだった。 非マッチ 80 件のうち 79 件は「同姓・読みが違う given name」(彩艶 が Zion と読めれば Zion ≠ Kaito)で、読みだけで分かる。A は 79 件を全問正解。
  • 唯一の誤りが、唯一の「本当に難しい型」に集中した。 荒井悠汰 / Yuta Arai はローマ字が完全一致する同名異人で、氏名の読みでは分けられない。この型が 160 件中 1 件しかなく、1 件では層にならない。
  • 天井では修正能力を測れない。 初回 159/160 では「直すべき誤り」がほぼ無い。変更対象を無作為に 3 件選んでも、3 件すべてが初回正解から選ばれる確率は 98.1%。「動かした 3 件が全部改悪」という事実だけでは、モデルが正解を選んで壊した証拠にならない。
  • 出力の不整合。 C で action=CHANGE と出しながら最終判定は A と同じだった件が 2 件。初回用と再監査用で同じ出力スキーマを流用した曖昧さが原因かもしれないが、判別できない。

数値

対象 A 初回 B 独立再実行 C 二段階レビュー
確認 120 120 117 118
難例 40 39 39 38
全 160 159 156 156
確認 120 件の対応表 C 正解 C 誤り
B 正解 117 0
B 誤り 1 2
  • 初回 A からの反転(正解→誤り): A→B 3 件、A→C 3 件(分母 159・各 1.9%、Wilson 95% CI 0.64〜5.4%)。
  • C の最終判定は 160 件中 157 件で A と同一。
  • コスト: 480 呼び出しで約 $0.45(A $0.142・B $0.141・C $0.162)。C は叩き台を入力に足すので B より約 15% 高く、それで得られた差は観測上無かった。

まとめ

「見直させれば安全」は、この題材・このモデルでは測れませんでした。持ち帰りは評価セットの設計則です。①本走行の前に開発セットで初回誤り数を確認する(狙う初回精度は 75〜90%)②難例は直感でなく失敗機構別(読み・情報欠損・同名異人・表記崩し)に構成する③難易度調整は開発セットだけで行い、評価セットはモデル出力を見る前に凍結する④同名異人・情報欠損・表記揺れをそれぞれ十分な件数の別層として入れる。

元の記事(手順の全文・データ・再現手順): Qiita(技術版・事前登録と run_results.json)・2026-07-11

AI の判定を正解つきの合否基準で測る設計は Works で受けています

この記事での AI の利用

被験モデルは gpt-5.4-mini(reasoning_effort=low)で、判定そのものが測定対象。実験計画の下書きと集計コードに生成 AI を使った。主要評価項目・信頼区間の出し方・予測は走行前に公開リポジトリへコミット(事前登録)し、正解ラベルは独立属性(生年月日)で人間が検証した。文章は人間が決めた。