生成AIの効果をどう測るか — 最初の数字に騙されない「測定の罠」
1. はじめに — いままでの向きを、一度ひっくり返す
どーもりょうさんです。自分はQAエンジニアで、普段のテスト設計に生成AI (Claude) を使っています。
本連載ではここまで8本にわたって、生成AIをどう扱うか——どう読み・どう振る舞い・どこでハルシネーションを起こすか、入力・出力をどう設計し、各工程で何を出すか——を書いてきました。ぜんぶ「AIの側」の話です。
今回は向きを一度ひっくり返します。テーマは「AIの効果を測るあなた自身」。
AIを業務に入れると、必ず「効いたのか?」を測りたくなります。「この工夫でテスト観点が増えた」「このプロンプトで精度が上がった」。そして最初に出た数字を、つい額面で信じてしまう。
ところが——本連載がずっと「AIの出力を額面で信じるな」と言ってきたのとまったく同じ理由で、自分の測定も額面で信じてはいけない。AIの出力が流暢で間違うように、測定も"それっぽい数字"を出して間違う。今回は、自分のツールを測っていて実際に一度ひっくり返された話を2つ、正直に出します。読後感を先に言うと——
これは連載の姉妹軸です。第1〜8本が「AIをどう扱うか(読み手としてのリテラシー)」なら、本稿は「AIの効果をどう測るか(評価者としてのリテラシー)」。そして対策は、結局これまでと同じ——公平な条件・複数回の試行・独立した検算で、最初の見かけを反証可能にすることです。
2. 罠A:交絡 — 「仮説が反証された」ように見えた話
検証したかったこと
LLMには「Lost in the Middle」という癖があります(Liu et al. 2023、arXiv:2307.03172)。長い文書を渡すと、冒頭と末尾はよく読むのに、中盤が薄くなる。仕様書が長いと、中ほどの要件が静かに読み飛ばされる。
そこで一つの仮説を立てました。「観点ごとに1人ずつ"専従の読み手"を立てて合成すれば、1人が中盤を取りこぼしても、別の読み手が拾って、中盤の薄さを補えるのではないか」。これは人間のレビュー技法 Perspective-Based Reading(Basili et al. 1996)を、AIの読みに翻訳したものです。「1回の通し読み」より「視点を分けた複数の読み」の方が、中盤に強いはず——という見立てです。
測ったら、逆が出た
まず短い仕様(約200行)で測ると、中盤で拾える行はベースライン(普通に1回読む)に対して**+2行だけ**。「△、効果は限定的」。
次に長い仕様(約470行、中央1/3=中盤を切り出して計測)で、3つの専従読み手を立てて測りました。すると——
ベースライン(1回読み)の方が、中盤を広くカバーしていた。 専従読み手の合成が中盤で拾った行(=ベースラインが拾えなかった中盤の要件行)が少なく、数字の上では「仮説が反証された」ように見えたのです。
ここで「やっぱり独立読み手は中盤に効かないのか」と結論したら、それは間違いでした。
正体は交絡だった
立ち止まって条件を見直すと、比較がフェア(公平)ではありませんでした。ベースラインは8つの観点を一度に見ているのに、専従読み手は3観点ぶんしか立てていなかった。つまり「中盤を何行カバーするか」は、独立読み手の効果ではなく、観点の数(読み手の人数)に支配されていた。3対8で人数が違えば、カバー行数は人数の多い方が勝つに決まっている。これが交絡です——測りたかった効果(独立読み手)とは別の変数(観点数)が、結果を作っていた。
(よくある例えが「アイスの売上が増えると水難事故が増える」。でも本当は「気温(夏)」が両方を押し上げているだけで、アイスと事故に直接の関係はありません。この「気温」のように、測りたい原因と結果の両方にこっそり効く別の変数を交絡因子と呼びます。罠Aでは「観点数」がその"気温役"でした。)
そこで8観点に揃えて公平に再計測しました。読み手側も全8観点を立て、カバー幅をベースラインと同じ土俵に乗せる。すると結果がひっくり返りました:
- 中盤で、合成側がベースラインの取りこぼし26行を追加で捕捉
- 逆に、ベースラインだけが拾った中盤行は0行(中盤での一方向の優越)
=独立読み手は中盤を補える、という当初の仮説を支持する方向に、結論が反転したのです。最初の「反証されたように見えた数字」の方が、交絡が作った蜃気楼でした。(ただしこれも仕様1件・1回の計測で、しかも「拾えた量」だけを見た片側の数字。だから「確認された」でなく「反転した/支持された、要追試」まで。罠Bで戒める断定を、自分でしないために。)
この罠の教訓
測定が仮説を否定して見えたとき、いちばん最初に疑うべきは仮説でなく、測定の公平性。 比べている2つは、本当に測りたい変数だけが違うのか?それとも、別の変数(ここでは観点数)がこっそり効いていないか。AIの効果検証は、条件が少しずれるだけで簡単に符号が反転します。言い換えると——ちゃんと統制されたA/Bテストになっているか(A群とB群で、変えたい1要因以外は揃っているか)。「1要因ずつ変える、他は固定」というコントロール実験の基本を破った瞬間、効果検証はこんなふうに"逆"を指します。
3. 罠B:少数試行の揺らぎ — 「決定的に効いた」ように見えた話
別の介入、別の罠
もう一つ、別の工夫を測ったときの話です。テスト設計の判断工程の末尾に「待った。もう一度、該当する仕様を読み直してから判断せよ」という一文("Wait" の差し込み)を入れる、という介入です(着想は Muennighoff et al. 2025 s1、arXiv:2501.19393 の budget forcing から借りました。あちらは推論モデルの思考を "Wait" で延ばす手法で、本稿のはプロンプトに一文足すだけの簡易版——機構は別物で、発想だけ拝借)。狙いは「判断前に原典へ戻らせ、推測で進むのを防ぐ」。
最初の1ペアは「決定的」に見えた
ON(差し込みあり)とOFF(なし)を1回ずつ回して比べると、ONがOFFを明確に上回りました。「効果は決定的」——そう書きたくなる差でした。
回数を増やしたら、地面が揺れた
ここで結論せず、**各条件5回ずつ(n=5)**に増やしました。同じ上流の出力に固定し、最後の一文だけを変えて。すると——
- ON:5回中5回、安定して良い(毎回ちゃんと原典に戻って判断を引き直していた)
- OFF:2つのモードに割れた。5回中2回はたまたま普通に原典へ戻れていて、3回は推測で進んでいた
「原典に戻る/戻らない」の二択に出力が分岐し、温度(ランダム性)が毎回どちらに転ぶかを振り分けていた。つまりOFFは「運次第で良かったり悪かったり」。最初の1ペアでたまたま「悪いOFF」を引いていたから、差が決定的に見えただけ。n=1の結論は、確率的な揺らぎを実力差と取り違えていたのです。
正直に統計を当てると——方向は複数の指標すべてで一致し、逆転はゼロでした。が、いずれも従来の有意水準(5%)には届きませんでした(同じ上流に固定して5回ずつ比べ、複数の検定で片側 p はおよそ 0.06〜0.13)。ここで p 値とは「この差がたまたまで出てしまう確率」——5%を下回れば「偶然じゃなさそう」と判断するのが慣習ですが、今回は 0.06〜0.13 でまだ偶然を否定しきれない。OFFが二極に割れている分、5回では揺らぎを抑えきれない。だから誠実な結論は「やはり効いている」ではなく——「方向は良いが、現データでは"効いた"とは言えない。断定には回数(n=6〜7)が要る」。1ペアで見えた"決定的な差"は、ここで**"判断保留"に変わった**のです。
この罠の教訓
少数試行の"決定的な差"は、たいてい揺らぎ。 とくにAIは温度(ランダム性)で出力が振れるので、1回や2回の比較は、実力差と運の差を区別できない(コインを2回投げて2回表でも「表が出やすいコイン」とは言えないのと同じ。回数を増やせば本当の確率に近づく)。QAの言葉なら、AIの出力は**"flakyなテスト"**——1回グリーンでも安定とは言えず、何度か回して安定性を見る、あれと同じです。「効いた!」と感じたら、まず回数を増やす。そして差が消えなくても、消えなかったことを正直な統計で確かめる(方向が一致しても有意水準に届かないなら、"効いた"とは書かない)。
4. 共通の正体と、対策
2つの罠は別物に見えて、根は同じです。最初の測定は、測りたかったものを測れているとは限らない。 罠Aは別の変数(交絡)が、罠Bは偶然(揺らぎ)が、それっぽい数字を作っていた。
そして怖いのは、**どちらも"もっともらしく見える"**こと。交絡した数字も、揺らいだ数字も、グラフにすれば綺麗だし、結論を書けば説得力がある。本連載で繰り返してきた「構造化されるほど誤りが立派に見える」が、測定の側でも起きるわけです。AIの流暢な誤りと同じで、滑らかな数字ほど、額面で信じると危ない。
対策は、これまでの連載と地続きの3つです:
- 公平な条件(交絡を潰す) — 比べる2つは、測りたい変数だけが違うか。他の変数(観点数・入力量・上流の差)を揃えたか。揃えてから測り直す。
- 複数回の試行(揺らぎを潰す) — 1回や2回で結論しない。回数を増やし、結果が二極に割れていないか(運で良し悪しが分かれていないか)見る。差が残っても、正直な統計で「どれだけ確からしいか」を出す。
- 独立した検算(自分の測定を、別の手で確かめる) — 数字を出した本人が「効いた」と言うだけにせず、別の指標・別の計測器・できれば別の人/別コンテキストで再計算する。
これ、本連載がAIに対して言ってきたこと——自己申告を信じず、別コンテキストで独立検証し、根拠を反証可能にする——の、評価者バージョンです。AIの出力を額面で信じないのと同じ規律を、自分の測定にも向ける。測定もまた、検証アーキテクチャを必要とする出力なのです。
5. まとめ — 測る側のリテラシー
- 最初の測定を額面で信じない。 仮説を否定して見えても(罠A)、肯定して見えても(罠B)、まず交絡と揺らぎを疑う。
- 罠A:交絡。 「反証された」ように見えた数字が、別の変数(観点数)の産物だった。公平条件で測り直したら結論が反転し、仮説を支持する方向へ振れた(1仕様・要追試)。
- 罠B:揺らぎ。 「決定的」に見えた差が、少数試行の運だった。回数を増やすと二極の割れが露呈し、**現データでは有意水準に届かず="効いた"とは言えない(判断保留)**に落ち着いた。
- 対策=公平な条件・複数回の試行・独立した検算。 =AIに向けてきた「自己申告を信じず反証可能にする」規律を、評価する自分にも向ける。
AIの効果を測るのは、AIにテスト設計させるのと同じくらい、やり方次第で結論が変わる仕事です。最初の数字は仮説でなく、まだ検証していない主張。そこから交絡と揺らぎを潰して初めて、その数字は「効いた/効かない」を語れます。
——本連載はここまで「AIをどう扱うか」を書いてきました。本稿はその鏡として「AIをどう測るか」を置きます。扱う側も測る側も、結局は同じ一つのこと——滑らかな出力(AIの文章でも、自分の数字でも)を、額面で信じない——に行き着きます。
参考文献
- Liu et al. 2023「Lost in the Middle: How Language Models Use Long Contexts」(arXiv:2307.03172)— 長文中盤の読み飛ばし。罠A の対象現象
- Basili et al. 1996「The Empirical Investigation of Perspective-Based Reading」(Empirical Software Engineering 1(2)、DOI:10.1007/BF00368702)— 視点別読解(Perspective-Based Reading)、独立読み手手法の源流
- Muennighoff et al. 2025「s1: Simple test-time scaling」(arXiv:2501.19393)— budget forcing("Wait" 差し込み)。罠B の介入の着想元(機構は別物、発想を借用)
Discussion