こんにちは、LegalscapeのAIエンジニアのDannyです。
この前、日本の法律データを使っていくつかの実験を行い、そこで分かったのは「かなり強力なLLMであっても、重要な時間的・法律的情報が欠落している場合に、確実に回答を控えたり、不確実性に明示的に言及したりするわけではない」ということでした。
これがきっかけで、私は不確実性推定とabstention/calibrationについての研究を調べ、LLMにおけるメタ認知に関する研究領域にたどり着きました。
そこで気になったのが:
モデルが重要なコンテキストが欠けているにもかかわらず回答してしまうのは、そのギャップに本当に「気づいていない」からか?それとも内部では何かがおかしいと感知しているのに、そのシグナルを表出させたり、それに基づいて行動したりできていないのか?
この記事は、その問いについてのsmall-scaleな研究ノートです。
目的は厳密なメタ認知研究ではなく、もっと狭く実用的なもの、すなわち、「単純なトークンレベルのinternalなシグナル(logprobs)が、モデルが欠落情報を認識しているかのように振る舞うかどうか」を調べることです。
「メタ認知(metacognition)」とはLLMにとって何を意味するのか?
人間にとって、比較的直感的に理解できます。それは知識についての知識、つまり自分自身の不確実性、限界、strategy、習慣、起こりうるエラーへの気づきです。私たちは皆、これを直接的な感覚として持っています。
LLMの場合、話はやや複雑になります。
「自分の知識の限界を教えて」や「その情報は自分の知識なのか?」といった質問をして、その答えをそのまま信じるだけでは不十分です。モデルはプロンプトの表面的なパターンに従ったり、学習データを模倣したりすることで、もっともらしい自己内省的テキストを生成できます。複数の最近の論文が指摘しているように、自己報告(self-report)はメタ認知能力の信頼できる検証手段ではありません [1]。
これにより問題はよりnuancedなものになります。LLMのメタ認知を研究したいなら、一体何を調べようとしているのか?
最近の論文を読んで、レイヤーで整理してみます。
メタ認知研究:問題のレイヤー
- First-orderの能力
モデルはそもそもそのタスクをこなせるか? - 潜在的なメタ認知シグナル
モデルの内部に、正答可能性、不確実性、将来の回答、または自身の内部状態に関して有用な自己関連情報が含まれているか? - シグナルの起源
そのシグナルは、真の意味でのオンラインな自己監視から来ているのか、それとも表面的な手がかり、事前確率、学習済みヒューリスティクスといったより弱いproxyから来ているのか? - 行動への展開
モデルはそのシグナルを使って判断を変えられるか?例えば、回答を控える、委任する、戦略を変えるといった形で? - メタ認知的制御
モデルは二次情報に基づいて自身の内部状態にアクセスし、意図的に制御できるか?
理解の助けになった4本の論文
以下は、私にとって最も有益だった5本の論文を、先ほどのレイヤーの観点から簡潔にまとめたものです。
Do LLMs Know What They Know? Measuring Metacognitive Efficiency with Signal Detection Theory
この論文は、「モデルがどれだけ知っているか」と「信頼度がその知識をどれだけ追跡できているか」を厳密に分離する手法を提案するものです。通常のキャリブレーション指標だけでは不十分な理由を述べ、どのLLMの出力トークンのlogprobsが厳密に信頼度をエンコードしているのかについての結果が示されており、おすすめの論文です。[2]
関連レイヤー:
- Layer 1: 一次(first-order)タスクの感度
- Layer 2: 段階的なシグナルとしての信頼度
How do LLMs Compute Verbal Confidence?
この論文は、この5本の中で最もメカニズム寄りの内容です。主な主張は、信頼度に関連する情報が回答生成のタイミングで形成され、キャッシュされ、後で取得されるというもので、信頼度が求められた瞬間に一から作り出されるわけではないとしています。[3] logprobsなどではなく、行動(Verbal Confidence)の信頼性を直接評価するところはpracticalです。
関連レイヤー:
- Layer 2: 潜在的な信頼度に近い内部シグナルの存在を主張する
- Layer 3: そのシグナルが表面的なプロキシではなく、真の意味でのオンライン自己評価のように見えるかどうかを調査する
- Layer 4: 行動を直接評価する
Evidence for Limited Metacognition in LLMs
この論文は自己報告(self-report)に頼ることを避け、LLMにゲームをデザインしプレイさせ、行動(behavior)で、モデルが内部シグナルを活用できるかどうかを問います。[1]
関連レイヤー:
- Layer 3: 真の自己監視と弱い説明を区別しようとする
- Layer 4: 内部シグナルの行動への展開
Language Models Are Capable of Metacognitive Monitoring and Control of Their Internal Activations
モデルのさらにメタな能力、つまり、内部の活性化情報を報告・コントロールできるかどうかを調べる論文です。[4]
関連レイヤー:
- Layer 2: 自己関連の内部シグナル
- Layer 5: 内部状態に対する明示的な監視・コントロール
LLMのメタ認知を調べるということは、つまり「自分は今どの層(レイヤー)を探っているのか」を明確にする作業でもあります。一次能力なのか、潜在シグナルなのか、シグナルの起源なのか、行動的な活用なのか、それとも制御なのか。
実験:インスパイアされた実用的な問い
今回自分がやってみた実験のフォーカスは、メタ認知のrigorousな検証より、もう少し軽く、それでも実用性が保てるものにしたかったです。
コンテキストに依拠するよう求めた場合、モデルは、必要な裏付けが欠落しているときに内部的にそれを認識しているように振る舞うでしょうか?
もしくは:
重要な情報が欠けているとき、モデルはためらうのか?それとも事前知識や内部知識でギャップを埋めて進み続けるのか?
これは厳密なメタ認知テストではないが、文献のいくつかの関連する考えに接続しています:
- 信頼度・不確実性の監視(Confidence calibration、Knowledge of limitations)[5]
- エラーや失敗の監視(Error monitoring)[5]
- 回答が実際に外部コンテキストによって裏付けられているかどうかについての、ソース感度の高い判断(source judgments)[5]
モデルは提供された証拠から得られるものと、内部知識から補っているものを区別できるでしょうか?
ここからの実験はその問いに対する、部分的な調査になります。つまり、具体的には、外部の裏付けが劣化したときに内部シグナルが変化するかどうか、です。
使用モデルとセットアップ
生成トークンでのself-reportに頼らず、モデルの内部シグナルを見たいので、この2つのモデルを使用しました:
- Gemini-2.5-Flash:比較的小さめのクローズドモデルで、多くのAPIモデルでは未だ公開されていないトークンのlogprobsを公開しているため有用です
- Gemma 4 E2B:2026年4月にリリースされた非常に小さなオープンウェイトモデル
2つのperturbation(corruption)モード
2種類の異なるコンテキスト破損スタイルを使用しました。
1. missing_key_info(必要情報の欠落)
提供された法的コンテキストから、必須の法律スニペットを削除します。
2. query_time_removed(時間情報の削除)
ユーザーの質問や法的シナリオから、必須の時間的情報を削除します。
何のシグナルを測定したか?
回答トークンについて、シンプルなトークンレベルのシグナルを追跡しました:
- 最初のN個のトークンにわたる生成トークンのlogprobの平均
- 最初のN個のトークンについて、上位K個の次トークン候補に対する平均entropy
- 主に分布形状・集中度の探索的診断として、top-K mass
主要な評価指標のROC AUC
AUCが答えてくれるのは、次のような問いです。
「Cleanな例とcorruptedな例を1つずつサンプリングしたとき、指標がcorruptedな例の方をより『疑わしい』と正しく評価できる確率はどれくらいか?」
これは「シグナルが何かに気づいているか?」という実用的な問いに適した指標です。 他の統計も追跡しましたが、分離可能性のまとめとしてはAUCが最も明確でした。
ミニデータセットの作成
以前の実験で使用した50個の法的クエリを用意し、3つのパターンを作成してフィルタリングを行った結果、最終的に129のテストケースを構築しました。
次のようなプロンプトのペアを構築します:
- full-context版:明確に回答できる十分な情報を含む
- corrupted版:重要な情報が削除されている

ステージ1:シグナルと欠落情報の関連度を見る
推論を実行し、トークンレベルのシグナルが2つの条件を分離できるかどうかを確認します。 つまり、モデルの実際の出力テキスト(生成内容)は見ずに評価します。
結果からはいくつかのパターンが見えます。
まず、最も明確にaligned(正方向)なシグナルを示したのは2つのGeminiのrunです。
次に、Gemmaのモデルは主に逆方向(reversed)で分離しています。
そして、2つのcorruptedモードに対して、モデルは明らかに異なる反応を示しています。
missing_key_infoは非常に早いタイミング(例:avg_topk_mass_1)でピークを迎えることが多いquery_time_removedはもっと長いトークン軸(例:avg_entropy_8やavg_topk_mass_16)でピークを迎える
つまり、法律スニペットの欠落は、回答の分布を即座に乱すことが多い。一方、シナリオにおける時間的構造の欠落は、回答が展開されるにつれて後から現れる傾向があります。
Non-reasoningとreasoningの比較
次に、reasoning(推論)トークンを加えることで回答トークンのシグナルがどうなるか、が気になりました。
モデルが先に「考える」ならば、最終的な回答はより明白になり、不確実性の情報が希釈されるかもしれない、と考えていました。
ただ結果は、それとはやや違う状況を示唆しています。
推論テキストを破棄して最終回答トークンのみを分析した場合でも、reasoningはシグナルを明確に変化させます。しかし、その変化の方向はモデルと破損タイプによって異なります。
例えば:
- Gemini + reasoningは
query_time_removedにおいてalignedな分離が逆に強くなった - Gemma + reasoningはreversedの領域にとどまり、場合によってはその反転がより強くなった
つまり、
test-time reasoningはlogprobsシグナルの形と現れる場所を変える。そしてその効果はモデルによって大きく異なる。
これはまた、私が文献において気づいたギャップにも合致しています。可視的なtest-time reasoningをこうしたメタ認知的な問いに結びつける直接的な研究は、まだ多くありません。




グラフの読み方
- X軸(N): シグナル測定に使用した、出力の先頭からのトークン数。
- 各曲線: 選択したシグナルの種類(
uncertainty_logprob、avg_entropy、avg_topk_mass)。- Y軸(ROC AUC): 向きを揃えたシグナル値を使って、
complete_context(完全な情報)と情報欠落版のケースを分類した際の精度。この値が高いほど、そのトークン位置における内部シグナルが「重要な情報の欠落」を正しく感知できていることを意味します。
Stage 2:正解した回答にもまだ欠落した裏付けのシグナルが残っているか?
まずはデータ作成。 Stage 1と違って、ここはモデルの出力トークンを見ます。データセットのクエリはほとんど「はい・いいえ」で回答することができるもののため、出力トークンを簡易的にparseすることで正解かどうかを判断し、判断できないものは除外します。
| モデル | Parsed yes/no | Correct-only kept |
|---|---|---|
| Gemini | 129 | 64 |
| Gemini + reasoning | 129 | 82 |
| Gemma | 98 | 53 |
| Gemma + reasoning | 87 | 48 |
(データ量・parsed/keptのカウントが少なくなりました)
Stage 2では、回答が実際に正解だったケースのみのサブセットで分析を再実行しました。
つまり: モデルが正しい回答に辿り着いた場合でも、内部・出力分布のシグナルは欠落した時点情報に反応するか?
データは小さくなりますが、興味深い結果になります:
Correct-only casesにおける強い指標
missing_key_info
| モデル | Best metric | AUC | Direction |
|---|---|---|---|
| Gemini | avg_topk_mass_1 |
0.7775 | aligned |
| Gemini + reasoning | avg_topk_mass_1 |
0.6872 | aligned |
| Gemma | avg_topk_mass_1 |
0.1828 | reversed |
| Gemma + reasoning | avg_entropy_1 |
0.1282 | reversed |
query_time_removed
| モデル | Best metric | AUC | Direction |
|---|---|---|---|
| Gemini | avg_entropy_8 |
0.6522 | aligned |
| Gemini + reasoning | avg_topk_mass_16 |
0.6923 | aligned |
| Gemma | avg_topk_mass_1 |
0.3789 | reversed |
| Gemma + reasoning | avg_entropy_3 |
0.2549 | reversed |
ステージ2で何が変わったか
Geminiのrunでは、correct-onlyフィルタリングがalignedシグナルを強化しています。これらの指標が単に回答が正解か不正解かを追跡しているわけではないことを示唆します。
例えば:
- Gemini、
missing_key_info、correct-only:avg_topk_mass_1 = 0.7775 - Gemini + reasoning、
query_time_removed、correct-only:avg_topk_mass_16 = 0.6923
Stage 1と比較してより明確なシグナルになっています。
一方で、correct-onlyフィルタリングはGemmaの方向性の問題を解消しません。実際、Gemma + reasoningについては、反転のパターンがより強くなっています。
これは、GemmaがGeminiのようにcorruptedな入力に対して高い不確実性を示していないことを意味します。逆に、サイズの小さいGemmaは、corruptされた例に対してより高い信頼度で反応してしまっているのです。
Gemmaのシグナルの反転について
直接的なメカニズム的な調査ではなく、あくまで仮説ですが:
小さいモデルは、情報欠落に対して「ためらう」のではなく、priorに基づいた回答へと急速に収束・fallbackすることで反応する傾向がある。
これは最初の実務上の問題にとっては高い関連性があります。証拠の欠落が常に可視的な不確実性として現れるわけではなく、時には自信を持ったfallbackとして現れる場合があります。
まとめ
必要な外部証拠が欠落しているとき、単純なトークンレベルのシグナルがメタ認知的な振る舞いをするかどうかを探ること
本記事では、メタ認知の概念にインスパイアされ、この問題について調査しました。
文献と実際のシステムの振る舞いを橋渡しする有用なものだと思います。
メタ認知の論文は、次のことについて考えるためのフレームワークを与えてくれました:
- 潜在的な不確実性に近いシグナル
- それらのシグナルのクオリティは
- 行動的に活用されるかどうか
- アクセスや制御が可能かどうか
この実験はそのチェーンの前半部分にしか触れていません。しかし、それだけでも実用的な問いをより明確にします。
実用的なシステムにとって、ステージ1はすでに有用かもしれません。
シンプルなlogprobsが「ここで重要な何かが欠けているかもしれない」という形で例をランク付けできるなら、それはすでに実務において意味のあるシグナルでしょう。
ステージ2はもう少しmetaの方向へ踏み込んでいます。モデルが内部的に裏付けの劣化を「感知」しているかどうかについて、何かを教えてくれているかもしれません。
ほかにテストできること
メタ認知能力の表現として、モデルは次のことを行える場合があります:
- 自身の不確実性や内部状態を監視する
- その監視結果を報告する
- 外部の判断に活用する
- それに基づいて自身の内部状態を制御する
モデルは使えそうな内部の不確実性シグナルを持ちながら、それを言語化できない場合もあります。あるいは、特に優れた内部監視を伴わずに、表面的なパターンから生成した注意喚起テキストを出力する場合もあります。
この実験の延長として、例えば次のような行動的(behavioral)なテストを行うことも考えられます:
モデルが情報の欠落についての内部的なヒントを持っているとしたら、実際にそれを言及するでしょうか?
- モデルはテキストの中で不確実性に言及するか?
- より頻繁にabstainするか?
- より多くのコンテキストを求めるか?
- これらの内部シグナルに基づいて行動することを学べるか、ただ黙って持ち続けるのではなく?
最後に
証拠の欠落は、常に可視的な(行動的に)不確実性として現れるわけではありません。
時には内部シグナルの「ためらい」として現れます。時には即座にではなく、回答が展開されていく中で後から現れます。そして時には、特に小さなモデルにおいては、「自信を持ったfallback」に近い形で現れるかもしれません。
これは実務においても、もっと一般的にLLMのメタ認知についての考え方においても、面白いlessonになったと感じています。
参照情報
[1] Ackerman, C. (2026). Evidence for limited metacognition in LLMs. arXiv. https://arxiv.org/html/2509.21545v2
[2] Cacioli, J.-P. (2026). Do LLMs know what they know? Measuring metacognitive efficiency with signal detection theory. arXiv. https://arxiv.org/pdf/2603.25112
[3] Kumaran, D., Conmy, A., Barbero, F., Osindero, S., Patraucean, V., & Velickovic, P. (2026). How do LLMs compute verbal confidence? arXiv. https://arxiv.org/pdf/2603.17839
[4] Li, J.-A., & Xiong, D. (2025). Language models are capable of metacognitive monitoring and control of their internal activations. arXiv. https://arxiv.org/html/2505.13763v2
[5] Burnell, R., Yamamori, Y., Firat, O., Olszewska, K., Hughes-Fitt, S., Kelly, O., Galatzer-Levy, I. R., Morris, M. R., Dafoe, A., Snyder, A. M., Goodman, N. D., Botvinick, M., & Legg, S. (2026, March 16). Measuring progress toward AGI: A cognitive framework. Google DeepMind Blog. https://blog.google/innovation-and-ai/models-and-research/google-deepmind/measuring-agi-cognitive-framework/
Appendix シグナルと指標の計算方法
3つの内部シグナル
すべての指標は、回答の最初のN個のトークンを対象に計算されます。
uncertainty_logprob_N- 計算: 最初のNポジションにおいて、モデルが実際に選択(生成)したトークンのlogprobを平均し、その符号を反転(マイナスをかける)させます。
- 直感的な意味: 値が大きいほど、モデルが自身の出力に低い確率しか割り当てていない、つまり「生成に対する不確実性が高い」ことを示します。
avg_entropy_N- 計算: 最初のNポジションそれぞれについて、次トークン候補の上位K個(
top_k)のlogprobを確率(p = exp(logprob))に変換します。そこから各位置のエントロピー(-Σ p log p)を算出し、Nトークン間で平均します。 - 直感的な意味: 値が大きいほど、次トークンの確率分布が広く分散している、つまり「複数の候補で迷っており、不確実性が高い」ことを示します。
- 計算: 最初のNポジションそれぞれについて、次トークン候補の上位K個(
avg_topk_mass_N- 計算: 各ポジションの上位K個の確率の合計を求め、Nトークン間で平均します。
- 直感的な意味: 値が大きいほど、上位$K$個の選択肢に確率のマス(重み)が集中していることを示します。今回のコードベースでは、これが「自信を持っており、情報欠落のない(corruptされていない)状態に近い」というシグナルとして扱われます。
AUC算出のための「向き」の統一
グラフのY軸を計算する前に、すべての指標の方向を揃える必要があります。
一貫して「スコアが高い = corruptされている(情報欠落が疑わしい)」という意味になるように調整します。
* uncertainty_logprob と avg_entropy はそのまま(+1 をかける)。
* avg_topk_mass は「自信」を表す指標なので、反転させるために(-1 をかける)。
We Are Hiring!
Legalscapeでは、単に汎用的なLLMを導入するにとどまらず、リーガルという「一分の隙も許されない」高度な専門領域において、AIの限界を特定し、それを克服するための挑戦を続けています。法制度の複雑さに技術で挑み、信頼できるリーガルAIを社会に実装していく。この技術的挑戦を共に楽しんでくれる仲間を募集しています!