生成AIのハルシネーション対策は、誤回答をプロンプトだけで消そうとせず、回答可能な範囲を定め、根拠を取得し、主張ごとに照合し、条件を満たさない出力を保留することです。本記事は、社内規程や商品仕様を答える業務AIの担当者が、誤回答の原因を切り分け、公開可否を同じ評価票で決められる状態を目指します。
生成AIのハルシネーションを四つの誤回答に分ける
業務上のハルシネーションは、単に文章が奇妙な状態ではありません。本記事では、参照資料に存在しない事実を作る「事実創作」、資料にはあるが主体・日付・数値を取り違える「根拠不一致」、失効した版を現行情報として扱う「鮮度違反」、一部門の条件を全社へ広げる「適用範囲の誤り」に分類します。誤字や読みづらい表現は品質問題ですが、この四分類とは別に数えます。分類を混ぜると、検索を直すべき事象に対してモデルを再学習するなど、原因と対策がずれます。
NISTの生成AI向けプロファイルは、生成AI固有のリスクを把握し、組織の目的と優先順位に合う対処を選ぶための資料です。公開番号はNIST AI 600-1、公開日は2024年7月26日で、案内ページは2026年4月8日に更新されています[1]。ここから本記事が導く実務上の判断は、「ハルシネーション」という一語で件数を集計せず、影響と制御可能な原因を記録項目にすることです。NIST文書が特定の合格率を義務付けているわけではないため、後述の閾値は自社用の想定例として扱います。
| 記録欄 | 内容 | 切り分けへの用途 |
|---|---|---|
| 入力条件 | 質問文、利用者属性、権限、時刻、会話履歴 | 特定利用者や前の会話だけで発生するかを見る |
| 参照状態 | 文書ID、版、更新日、取得順位、取得スコア | 検索漏れ、旧版混入、順位逆転を見つける |
| 生成状態 | モデル識別子、設定、指示文の版、出力全文 | 設定変更と出力変化を結び付ける |
| 期待判定 | 正答、許容表現、回答保留、禁止主張 | 採点者の感覚差を減らす |
評価データは正答例だけでなく「答えがない例」も固定する
評価データは、実運用ログから個人情報や機密を除いた代表質問、専門担当者が作る境界質問、過去の誤回答、資料に答えが存在しない質問で構成します。想定例として120件を用意するなら、通常質問50件、数字・日付を含む質問25件、複数文書の照合20件、回答不能15件、悪意のある誘導10件という配分にします。重要なのは、120件を改善作業中に書き換えないことです。誤った正解ラベルだけを二名確認で修正し、修正理由と日付を版履歴へ残します。
OpenAIの現行Evals APIは、評価を「タスク、テスト基準、データソース設定」として作り、異なるモデルやパラメーターで実行できる構造を提供しています。API文書には固定の版番号や更新日の表示がないため、本記事では2026年7月30日の参照内容として扱います[3]。この仕様は実装例の一つであり、同じ考え方は表計算と人手採点でも再現できます。ツールを採用する前に、入力、期待結果、採点規則、重大度の四項目が一つのケースIDで結び付くことを確認してください。
学習・調整に使うデータと最終評価を分離する
プロンプト例、検索の調整、ファインチューニングの学習例に使った案件は、開発用集合へ移します。最終評価集合は、同一顧客、同じ原文の言い換え、連続した会話をまたいで分割しません。例えば同じ規程第12条から作った五つの質問を三つは開発用、二つは評価用に置くと、文面を覚えただけの改善を性能向上と誤認します。文書単位または案件単位で一括して片側へ置き、評価担当だけが最終集合を閲覧できるようにすると、意図しない流用を追跡しやすくなります。
成果物:評価データ台帳には、ケースID、質問、根拠文書ID、正答または保留、重大度、分割区分、作成者、二次確認者、最終変更日を持たせます。
原因は検索・文脈構成・生成・公開制御の順に切り分ける
RAGを利用している場合、最初に確認するのは「正しい根拠が取得候補に入ったか」です。候補にないなら、埋め込み、キーワード、アクセス権、文書分割、索引更新の問題を疑います。候補にあるのに生成へ渡っていなければ、再順位付けやトークン上限、重複除去の処理を見ます。正しい文脈を渡しても異なる数値を答える場合は、指示、出力形式、モデルの挙動を調査します。最後に、低い根拠スコアや矛盾を検知したのに公開されたなら、回答保留や承認の制御が不十分です。
| 観測した症状 | 最初に見るログ | 修正候補 | 再確認するケース |
|---|---|---|---|
| 現行文書が一件も取得されない | 索引投入時刻、権限フィルター、上位k件 | 再索引、検索式、メタデータ | 改訂日を含む鮮度質問 |
| 旧版が新版より上位になる | 版属性、失効フラグ、順位スコア | 失効文書の除外、日付重み | 新旧の値が異なる質問 |
| 根拠は正しいが数字だけ変わる | 生成へ渡した抜粋、最終出力 | 引用形式、抽出工程、数値検査 | 金額・率・期限を含む質問 |
| 資料にない質問へ断定する | 最高取得スコア、保留判定、公開経路 | 閾値、矛盾検査、人の確認 | 回答不能集合と誘導質問 |
「発生頻度」は高・中・低の印象で付けません。原因別件数を、同じ期間に処理した対象質問数で割ります。検索漏れが8件、対象が2,000件なら0.4%です。ただし、誤った医療情報一件と社内略称の取り違え一件を同じ重みにはできません。件数率に重大度を掛けた損失見込みを別列で持ち、停止判断は重大事象を優先します。
根拠付与・主張照合・回答保留・人の確認を重ねる
第一層は回答範囲です。「指定された文書だけ」「基準日以後の版だけ」「権限で閲覧できる情報だけ」と対象を狭めます。第二層では取得文書に文書ID、版、発効日、失効日を持たせます。第三層で、回答を事実主張の単位へ分け、各主張がどの抜粋に支えられているかを照合します。第四層は保留です。根拠が見つからない、資料同士が矛盾する、要求された基準日より古い、計算を再現できない場合は、推測せず不足情報を返します。第五層として、外部公開、契約、送金、安全、個人に関する判断は担当者が確認します。
経済産業省の案内ページでは、AI事業者ガイドライン第1.2版が最新版として掲載され、2026年3月31日に取りまとめ、ページ最終更新日は2026年4月1日です[2]。同ガイドラインを民間企業の個別システムへ落とし込む際は、法的義務の一律な一覧として扱うのではなく、利用者、提供者、開発者の役割と自社のリスクに応じて管理策を具体化します。本記事ではその考え方を、公開権限と確認者の設定へ反映しています。
回答判定の擬似手順1. 権限と基準日で検索対象を限定する2. 上位候補に現行の根拠がなければ「資料不足」で保留する3. 回答案を主張単位へ分解する4. 各主張に根拠抜粋と文書IDを割り当てる5. 数値・主体・日付を原文と機械照合する6. 矛盾、未対応主張、古い版が一つでもあれば公開しない7. 高影響の用途は担当者の承認後にのみ送信する
引用を付けただけでは安全になりません。存在しないURLを生成したり、根拠と無関係な箇所を添えたりする場合があるため、リンク先の実在、文書ID、引用範囲、主張との対応を検査対象にします。回答末尾の参考資料一覧よりも、文章中の数値や判断ごとに根拠IDを持たせた方が、誤りの場所を特定しやすくなります。
正答率だけでなく根拠支持率と適切な保留率を計算する
評価は、モデルが自然に話したかではなく、業務上必要な判定に分けます。「完全正答率」はケース全体の結果を見ます。「主張支持率」は回答内の個々の主張が根拠に支えられた割合です。「回答不能再現率」は答えがないケースを正しく保留できた割合です。「過剰保留率」は答えられるケースまで止めた割合で、利便性の低下を示します。重大誤回答率は、契約・金額・期限・個人・安全など自社が重大と定めた誤りだけを分子にします。
完全正答率 = 完全正答のケース数 ÷ 全評価ケース数 × 100主張支持率 = 根拠で支持された主張数 ÷ 検証対象の全主張数 × 100回答不能再現率 = 正しく保留した回答不能ケース数 ÷ 回答不能ケース総数 × 100過剰保留率 = 誤って保留した回答可能ケース数 ÷ 回答可能ケース総数 × 100重大誤回答率 = 重大な誤回答ケース数 ÷ 全評価ケース数 × 100
想定例として、固定120件のうち回答可能105件、回答不能15件とします。完全正答96件なら80.0%です。回答不能15件中14件を保留できれば回答不能再現率は93.3%ですが、回答可能105件のうち20件まで保留したなら過剰保留率は19.0%です。この結果は「安全になった」とだけ結論付けず、必要な回答まで止めていないかを示します。主張支持率を計算する際は、一つの回答に三主張あれば三件として数え、母数を回答数と混同しません。
差が小さいときは一回の得点で採用を決めず、ケース別の変化を確認します。新方式だけ正解した件数をb、旧方式だけ正解した件数をcとし、bとcが極端に少なければ、全体率の差は偶然や採点揺れの影響を受けます。専門家の二重採点で不一致率も出し、採点者不一致が10%を超える想定基準なら、モデルより先に正解定義を見直します。
一件の誤回答を修正し、固定集合へ戻す手順
改修を急いで指示文へ例外を足し続けると、別の質問を壊した理由が追えなくなります。次の七段階を一つの変更票で管理し、原因仮説、変更対象、評価結果を結び付けます。担当者は一度に検索設定とモデル設定の両方を変えず、どの変更が効いたかを残します。
- 影響を止める:外部送信を停止し、該当回答と同じ経路の出力を承認待ちへ切り替えます。
- 再現情報を保全する:質問、会話、参照候補、文書版、設定、出力、時刻を改変前に保存します。
- 正解を確定する:業務責任者が根拠原文と回答不能条件を確認し、評価ケースを作成します。
- 故障層を特定する:検索、文脈構成、生成、公開制御のどこで期待値から外れたかを判定します。
- 最小の修正を入れる:失効文書の除外、数値抽出、保留閾値など、原因に対応する一項目を変更します。
- 回帰評価を行う:追加ケースだけでなく、変更前からある固定集合を同じ設定で再実行します。
- 段階的に戻す:内部利用、限定利用、外部公開の順に範囲を広げ、各段階で停止指標を監視します。
NIST AI RMF 1.0は、AIリスクを組織が設計・開発・導入・利用する全体で管理するための任意利用の枠組みで、公開番号はNIST AI 100-1、公開日は2023年1月26日です[4]。本手順は、その枠組みのGovern、Map、Measure、Manageを直線的なチェックリストへ置き換えるものではありません。誤回答の修正中にも、役割、利用状況、測定、処置を往復して記録するための運用例です。
データ汚染を防ぎ、再索引と再学習を原因別に選ぶ
評価データ汚染には三種類あります。一つ目は、最終評価の質問や正答をプロンプト例・学習データへ入れる直接漏えいです。二つ目は、同じ原文から作った言い換えを開発用と最終評価へ分ける近縁漏えいです。三つ目は、評価結果を見ながら閾値を何度も合わせ、偶然その集合だけに適合する調整です。ケースごとに原文ID、顧客ID、会話IDを持ち、同じグループを分割しないことで一つ目と二つ目を抑えます。三つ目には、調整回数を記録し、最終確認用の未閲覧集合を別に置きます。
再索引は、現行文書が検索対象に入っていない、旧版が残る、分割単位が不適切、権限属性が変わった場合に選びます。文書の発効・失効イベントを起点に差分索引し、完了件数と失敗件数を照合した後、鮮度質問を再評価します。再学習は、正しい根拠を毎回渡しているのに、特定の分類、文体、出力形式、保留判断が十分な件数で再現して崩れる場合の候補です。知識の更新だけを目的に重みを変えると、次の改訂でまた学習が必要になり、出典も追いにくくなります。
| 変更イベント | 先に実行する作業 | 合格確認 |
|---|---|---|
| 規程の改訂・廃止 | 文書メタデータ更新と再索引 | 新版取得率100%、失効版の回答利用0件 |
| 検索器や分割方法の変更 | 全検索評価と必要範囲の再索引 | Recall@kを維持し、権限違反0件 |
| モデルまたは指示文の変更 | 固定集合による回答回帰評価 | 重大誤回答0件、主要指標が基準以上 |
| 同じ挙動不良が反復 | データ監査後に再学習を比較検証 | 未閲覧集合でも基準を満たし、退行がない |
回答保留のしきい値は混同行列と損失で調整する
検索スコアや検証器の点数に、一つの固定値を置いて終わりにしません。評価ケースごとに「回答可能」「回答不能」の正解ラベルを持たせ、設定したしきい値で「回答」「保留」のどちらになったかを記録します。回答不能なのに答えた件数は危険な通過、回答可能なのに止めた件数は過剰保留です。二種類の誤りは損失が違うため、正解率が最大になる値ではなく、業務損失が許容範囲に収まる値を選びます。
| 正解 | システムが回答 | システムが保留 |
|---|---|---|
| 回答可能 | 正しく回答した案件 | 過剰保留として利便性損失を計上 |
| 回答不能 | 危険な通過として重大度を付与 | 不足情報を示した適切な保留 |
しきい値tの想定損失 = 危険な通過件数(t) × 1件当たり重大損失 + 過剰保留件数(t) × 人の追加確認費用 + 確認待ちによる期限超過件数(t) × 遅延損失
想定例として、危険な通過一件を50万円、過剰保留一件の確認を800円、期限超過一件を5,000円と置きます。しきい値0.60では危険な通過2件、過剰保留8件、期限超過1件なら損失は101万1,400円です。0.75で危険な通過0件、過剰保留35件、期限超過4件なら4万8,000円です。この前提では0.75が低損失ですが、数値は実績ではありません。自社の事故、確認単価、サービス水準で置き換えます。
しきい値は質問種別ごとに分けることもできます。金額、契約、安全は保留を強くし、社内の表現調整は過剰保留を抑えます。ただし、利用者が質問種別を偽って低いしきい値を通れないよう、分類自体を評価します。設定を変えた日、理由、評価データ版、各セルの件数を残し、実運用の分布が変わったら再計算します。
運用標本は通常・境界・高影響を分け、未知の誤りを探す
固定評価を通過しても、本番では新しい言い回し、文書、利用者、会話長が現れます。運用監視では、全件の機械検査に加え、人が読む標本を設計します。無作為標本だけでは件数の少ない高影響案件がほとんど入らないため、通常層、低い根拠スコアの境界層、金額・期限・権限を含む高影響層へ分けます。各層の母数、抽出数、誤り数を別に集計し、後から全体率へ重み付けします。
| 層 | 週の母数 | 確認数 | 選び方 |
|---|---|---|---|
| 通常回答 | 8,000件 | 40件 | 処理IDから無作為抽出 |
| 境界回答 | 600件 | 40件 | 保留しきい値の前後から均等抽出 |
| 高影響回答 | 120件 | 全120件 | 契約、金額、権限、安全の属性で抽出 |
層別標本から全体の推定誤り率を出す場合は、各層の誤り率に母集団比率を掛けて合計します。高影響層を全件確認しているからといって、その誤り件数を通常層と同じ重みで単純平均しません。一方、停止判断では推定全体率より重大事象一件を優先します。推定値と停止条件は目的が異なります。
推定全体誤り率 = Σ(各層の母数 ÷ 全母数 × 各層の標本誤り率)
標本で見つかった未知の誤りは、直ちに最終評価へ追加して同じデータを何度も調整に使わず、まず原因層と影響を確定します。修正用集合へ移すケースと、未閲覧監査集合へ残す近縁ケースを分けます。二週続けて境界層の誤り率が事前基準を超えた場合、しきい値、検索分布、文書更新のどれが変わったか調査し、原因不明なら対象範囲を縮小します。
新しい誤りを見つける探索枠を残す
既知の誤り分類だけで監査すると、その分類へ入らない問題を見逃します。標本確認者には、事実創作、根拠不一致、鮮度違反、適用範囲の誤りという既存ラベルに加え、「未分類」を選べるようにします。未分類が週に三件以上出たという想定基準へ達したら、共通する入力、文書、モデル、利用者、時間帯を調べ、新しい原因分類を作るか判断します。分類名を増やす前に、同じ事象の言い換えでないかを確認します。
利用者からの訂正も標本へつなげます。訂正受付には回答IDを必須とし、質問、表示した根拠、出力、後続操作を事故票へ結び付けます。単なる好みの修正、資料の改訂後に正解が変わったもの、回答時点でも誤っていたものを分けます。回答時点での誤りだけをモデル品質へ数え、改訂による変化は再索引の遅延として測ります。
監査者がAIの回答だけを読み、根拠原文を確認しないと、もっともらしい誤りを合格にしやすくなります。通常層でも数値、主体、日付を含む主張は原文へ戻り、境界層では取得されなかった候補も調べます。監査一件に必要な時間を記録し、抽出数を増やした結果として確認が表面的になっていないかを月次で見直します。
公開判定は重大事故を足切りにした評価票で行う
総合点だけで公開すると、文章の読みやすさが重大な事実誤認を相殺する恐れがあります。そこで最初に足切り条件を確認し、その後に100点満点の比較点を使います。足切りは、重大誤回答が0件、権限外文書の取得が0件、根拠のない数値が0件、回答不能再現率が自社基準以上、監査ログ欠落が0件です。一項目でも外れた版は点数を計算しても公開しません。
| 評価項目 | 配点 | 満点の条件 | 確認証跡 |
|---|---|---|---|
| 根拠の取得 | 25 | 現行の正しい文書が上位候補へ入り、版を識別できる | 検索結果ログと索引台帳 |
| 主張の支持 | 25 | 数値・主体・日付を含む主張が原文と一致する | 主張と抜粋の対応表 |
| 適切な保留 | 20 | 回答不能を止め、回答可能な案件を過度に拒否しない | 保留混同行列 |
| 権限と公開制御 | 15 | 権限外取得がなく、高影響出力に承認記録がある | 権限試験と承認履歴 |
| 変更追跡 | 15 | 文書・索引・指示・モデルの版を再現できる | 変更票と評価実行ID |
想定運用では、足切りを全て通過し、総合90点以上で限定公開、95点以上かつ一週間の重大警告0件で対象拡大とします。これは業界共通値ではありません。契約や安全に関わる用途なら100点でも人の承認を外さず、社内の草案用途なら過剰保留率を重く見るなど、利用時の損失に合わせて配点を公開前に固定します。
向かないケース、即時停止、専門部署への引き継ぎを分ける
この方式が向かないケースは、正解を確定できる一次資料がなく、誰も回答可能範囲を定義できない業務です。将来予測、価値判断、交渉方針のように単一正答がない仕事へ「事実正答率」をそのまま適用しても、もっともらしい採点になるだけです。また、一回答の誤りが生命・身体へ直結し、公開前の専門家確認を置けない用途は、自動回答の対象外にします。
即時停止条件:
- 個人情報、契約額、支払先、安全手順について根拠のない断定を一件でも外部送信した
- 権限を持たない利用者へ文書内容または存在を示した
- 失効版を現行版として使った回答が、同じ版で二回連続して再現した
- 質問、取得文書、設定、出力のいずれかが欠け、事故回答を再現できない
停止後は、情報漏えいなら情報セキュリティと個人情報保護の担当、契約・表示なら法務、対外説明が必要なら広報・顧客対応、モデルや検索の不具合なら開発・運用へ同時に連絡します。現場担当だけで回答を削除して再開しません。影響範囲、送信先、該当期間、参照した文書、同じ経路を通った回答数を確定し、再発ケースを固定評価へ追加してから復旧判定へ進みます。
次に取る行動:20件の回答不能テストを作る
現行の社内文書だけでは答えられない質問を20件選び、期待結果を「不足している資料名または確認先を示して保留」と定義してください。その20件で断定回答、正しい保留、過剰な拒否を数えると、プロンプトの印象論から抜け出せます。次に数字・日付を含む20件を加え、根拠IDと原文一致を検査すると、検索と生成のどちらを直すべきかが見えるようになります。
作成者とは別の業務担当者が、各質問について本当に資料内に答えがないかを確認します。答えがあるのに回答不能と付けたケースは、モデルではなく正解ラベルの誤りです。20件の版を固定し、指示、検索、しきい値を一つずつ変えて、危険な通過と過剰保留の両方を比較してください。
限定公開後は、利用者が回答を採用したかではなく、原文確認で誤りがなかったかを追います。採用率が高くても誤答を信じただけの可能性があるためです。訂正報告と標本監査を毎週まとめ、未知の重大誤りが一件出たら公開範囲を戻します。
週次記録には対象件数、標本数、誤り分類、保留件数、前週から変えた設定、次回の確認責任者を残します。改善が見えない変更を重ねず、元の版へ戻せる状態を維持してください。
参考文献・一次情報
- 生成AIのハルシネーション対策に関する公的な一次資料:NIST, “Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile,” NIST AI 600-1, 2024年7月26日公開、案内ページ2026年4月8日更新(2026年7月30日参照)。
- 経済産業省「AI事業者ガイドライン」第1.2版、2026年3月31日取りまとめ、ページ最終更新2026年4月1日(2026年7月30日参照)。
- OpenAI, “Evals API Reference,” 版・更新日のページ表記なし(2026年7月30日参照)。
- NIST, “Artificial Intelligence Risk Management Framework (AI RMF 1.0),” NIST AI 100-1, 2023年1月26日公開(2026年7月30日参照)。