3行でいうと
- Anthropicの文書は、基本の3手として、分からないと言う許可、逐語引用、主張ごとの引用による検証を挙げています。
- 同じ文書は、これらは幻覚を大きく減らすが、なくしはしないので、重要な情報は必ず確かめるよう書いています。
- Anthropicの引用機能は、答えが提供した文書の位置を指すことを保証しますが、引用が主張を支えているかは別の確認が要ります。
- 評価の側が「拒否」に点を与えないと、AIは当て推量を選びやすくなる、と論文は述べています。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や論文を読んでまとめたものです。
先に結論
- ハルシネーションを「ゼロにする」設計は、公式の文書にはありません。Anthropicの文書は、技術で「大きく減らす」が「完全にはなくならない」ので、重要な判断では必ず確認するよう書いています。
- 減らす設計は、4つの層に分けて考えると整理できます。(1) 根拠になる資料を渡す、(2) 指示で拒否と引用を求める、(3) 出力を後から検証する、(4) 運用で人間が確認する。
- 見立てです。高リスクの用途ほど、4層すべてを入れ、1層だけに頼らないのが現実的だと思います。逆に、気軽な下書きなら、(1)と(2)だけで足りる場面が多いと思います。
前提:なぜ起きるのか
ハルシネーションは、AIが事実と違う内容を、もっともらしく書くことです。OpenAIとジョージア工科大学の研究者による論文「Why Language Models Hallucinate」(arXiv 2509.04664)は、2つの原因を述べています。
- 事実と間違いを見分けられない場合、統計的な圧力で、間違いが生まれる。
- さらに、多くの評価は「正解なら1点、不正解と『分からない』は0点」という採点なので、当て推量が得をする。論文は、これを「テストを受けるときの生徒」にたとえています。
見立てです。AIが「分かりません」と言いにくいのは、指示で拒否を許していないことと、評価が拒否に点を与えないことの両方が関わっているのだと思います。以降の設計は、この点を踏まえています。
設計1:資料を渡し、外部知識を制限する
Anthropicの文書の「External knowledge restriction(外部知識の制限)」は、提供した文書の情報だけを使い、AI自身の一般知識を使わないよう指示する方法です。RAG(資料を探してからAIに答えさせる方式)では、これが土台になります。
OpenAIの安全に関する文書にも、近い考え方があります。検証済みの資料から答えを返せるなら、新しく生成した文章よりも安全なことがあり、例として、質問に答える代わりに、最も合う既存のサポート記事へ案内する方法を挙げています。
設計2:指示で拒否と引用を求める
Anthropicの文書は、基本の3つの手を挙げています。
| 手 | 文書の説明 | 使う場面 |
|---|---|---|
| 分からないと言う許可 | 不確かなら認めてよい、と明示する。「偽の情報を大きく減らせる」と書かれている | すべて |
| 逐語引用で根拠づけ | 長い文書(2万トークン超)では、先に文書から一字一句の引用を抜き出させ、その引用だけで分析させる | 長い資料の分析 |
| 引用による検証 | 主張ごとに根拠の引用を付けさせる。後から主張ごとに裏づけの引用を探させ、見つからなければ撤回させる | 文書の作成・要約 |
「長い文書(2万トークン超)」の数字は、Anthropicの文書の記述です。トークンは、AIが文章を数える単位です。
指示文の書き方の例(僕らが組んだ例)
次は、Anthropicの文書の考え方を元に、僕らが組んだ指示文の例です。公式文書そのままではなく、動かして確かめてもいません。
- 資料は
<documents>の中にあるものだけを使う。AI自身の知識は使わない。 - 手順1:質問に関係する箇所を、一字一句そのまま、番号付きで抜き出す。見つからなければ「関係する引用なし」と書く。
- 手順2:その引用だけを根拠に答える。主張ごとに、引用の番号を付ける。
- 引用が足りず答えられない部分は、「資料からは分かりません」と書く。推測で埋めない。
Anthropicの文書の例は、このほかに、「下書きの後で各主張に裏づけの引用を探し、見つからない主張は削除して、削除した位置に空の[]を残す」という書き方も示しています。
見立てです。「分からないと言う許可」だけを入れると、答えられる質問まで拒否しすぎることがあると思います。拒否の割合も、評価で数えておくと安全です(後述)。
設計3:API の引用機能を使う
Anthropicには、プロンプトで引用を頼む方法とは別に、API側の引用機能(Citations)があります。文書にcitations: enabledを指定すると、答えの各部分に、元の文書の位置が付きます。公式文書の説明です。
- プロンプトで引用を頼む方法に比べて、費用の面で有利になりうる、と書かれています。引用された文章の本文(
cited_text)は、出力トークンの数に数えられません。入力側は、文書の区切りなどで少し増えます。 - 引用は、提供した文書への有効な参照になることが保証される、と書かれています。公式の評価では、プロンプトだけの方法より、関連が深い引用を選びやすい、とされています。
- 文書の種類によって、引用の単位が違います。プレーンテキストとPDFは文単位に自動で区切られ、引用の位置は文字位置(テキスト)かページ番号(PDF)で返ります。RAGの断片ごとに引用したいときは、断片ごとに別の文書にするか、「カスタム内容」の文書で自分で区切りを決めます。
- 画像の引用は未対応です。文字が取り出せないスキャンのPDFは、引用できません。
- 構造化出力(出力を決まったJSONの形に縛る機能)とは併用できません。両方を指定すると、APIがエラー(400)を返します。
見立てです。「参照が有効」と「その引用が主張を本当に支えている」は別の話です。前者は仕組みで保証されますが、後者は、人間か別の検証で確かめる必要があると思います。文書も、検証を勧めています。
OpenAIのファイル検索(File search)は、答えの文章にfile_citationという注記(annotation)を付けて返します。注記には、ファイルのIDとファイル名、本文中の位置が入ります。検索で取れた資料の中身は、既定では返ってこず、includeで指定すると含められる、と書かれています。
設計4:出力を検証する
Anthropicの文書の「高度な手法」には、次の3つがあります。
- Best-of-N検証:同じ質問を何度も実行して、出力を比べる。食い違いがあれば、幻覚の兆候かもしれない。
- 反復的な見直し:出力を次の質問に入れて、「この内容を確認して」と頼む。矛盾を見つけやすくなる。
- 思考の確認:答えがおかしいとき、AIの考えの要約を読んで、誤った前提や推論を探す。
学術的な対応する研究もあります。
- Chain-of-Verification(CoVe)(arXiv 2309.11495)は、(1)下書きを作る、(2)検証用の質問を計画する、(3)その質問に、下書きの影響を受けず独立に答える、(4)確認済みの最終回答を作る、という手順です。論文は、複数の課題で幻覚が減ったと報告しています。
- SelfCheckGPT(arXiv 2303.08896、EMNLP 2023)は、AIが本当に知っていることなら、何度答えさせても内容が似て、幻覚なら食い違うという考えで、サンプリングした複数の回答の一貫性から検出する方法です。外部のデータベースを使わない(zero-resource)のが特徴です。
費用は増えます。僕らの計算です。同じ質問をN回実行する方法は、出力の費用がおよそN倍になります(入力も含めて同じ設定で実行する場合)。検証の一手を追加する方法は、少なくとも1回分の呼び出しが増えます。回数を増やすほど確実になる、という保証もありません。
運用:人間の確認と、評価に拒否を入れる
OpenAIの安全に関する文書は、可能な限り、出力が実際に使われる前に人間が確認するよう勧めています。高リスクの分野とコード生成では特に重要としています。確認する人が、元の資料にすぐ戻れる(例:要約なら元のノートに簡単に当たれる)ようにしておくことも書かれています。
評価(このシリーズの評価の記事を参照)の側にも設計が要ります。前述の論文は、評価の指示に信頼度の目標を書く案を出しています。例は、「自信がtを超えるときだけ答えよ。間違いはt/(1−t)点の減点、正解は1点、『分からない』は0点」です。
僕らの計算です。この式で、答えたほうが得になる境目は、答えが当たる確率がtを超えるときです。
| t | 間違いの減点 | 答えると得になる確率 |
|---|---|---|
| 0.5 | 1点 | 50%超 |
| 0.9 | 9点 | 90%超 |
なお、論文の本文はt=0.75の減点を「2」としていますが、式から計算すると3になります。論文の誤記の可能性があり、確認できていません。この表では載せていません。
見立てです。自分の評価セットに、「資料から答えられない質問」を一定割合入れ、拒否したら正解、当て推量で答えたら不正解とするのが、実用的だと思います。拒否しすぎ(答えられる質問まで拒否する)も数えて、両方を見ます。
よくあるつまずき
- 拒否の許可だけ入れて、過剰に拒否される。 答えられる質問の拒否率も測ります。
- 引用が実在するかを確かめない。 プロンプトで引用を頼む方法では、存在しない引用を作ることがあります。引用文が元の資料に実在するかを、機械的に文字列で照合できます(見立てです)。API の引用機能は、この照合を仕組みで行う形です。
- 引用機能と構造化出力を併用してエラーになる。 併用できません。引用を優先して、後から別の呼び出しで整形する方法などを検討します。
- 検索で必要な資料が取れていないのに、答えさせる。 資料がなければ「分からない」が正しい答えになる設計にします。探す段階の評価は、前の記事を見てください。
- 資料自体が古い、誤っている。 資料の通りに答えても、現実とは違います。資料の更新日と出所を管理します。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。幻覚がどれだけ減るかの数字は、読んだ公式文書にありませんでした。文書は「大きく減らす」とだけ書いています。
- 各社の文書は、モデルの更新で内容が変わります。引用機能の対応範囲(構造化出力との併用など)も、変わる可能性があります。
- 論文の方法(CoVe、SelfCheckGPT)は、当時のモデルでの結果です。今のモデルや日本語で同じ効果が出るかは、確認できていません。
- 引用の強制は、資料が正しく、必要な資料が取れていることが前提です。
- 医療・法律・金融などの重要な判断に使う場合は、AIの出力に頼らず、専門家の確認を取ってください。この記事は、判断の助言ではありません。
- 社内の資料や個人情報を外部のAIに渡す場合は、契約や社内規則を確認してください。
出典
- Reduce hallucinations(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Citations(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Safety best practices(OpenAI API、OpenAI、2026年10月22日確認)
- File search(OpenAI API、OpenAI、2026年10月22日確認)
- Why Language Models Hallucinate(arXiv 2509.04664、2026年10月8日確認)
- Chain-of-Verification Reduces Hallucination in Large Language Models(arXiv 2309.11495、2026年10月8日確認)
- SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models(arXiv 2303.08896、2026年10月8日確認)
更新履歴
-
2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
-
2026年10月22日 公式の資料を読み直しました。書いてあることに変わりはありませんでした。
