SkillogyQiitaを読む
コラム一覧に戻る

生成AIのハルシネーション対策|業務利用で精度を保つ仕組みと評価方法

生成AIを業務に取り入れる際、多くの企業が最初にぶつかる壁がハルシネーションです。ハルシネーションは、生成AIが事実と異なる内容や、存在しない情報を、もっともらしい文章で出力してしまう現象を指します。

やっかいなのは、誤った回答も正しい回答と同じように自然な文章で返ってくることです。存在しない規程の条文、実在しない製品の型番、計算の合わない数字が、自信のある口調で書かれていると、読み手は誤りに気づきにくくなります。社内で試した段階では便利だと感じても、顧客対応や意思決定に使う段階になると、この問題が導入の判断を止めてしまいます。

一方で、ハルシネーションを完全にゼロにする方法は、現時点では存在しません。現実的な目標は、誤りが起きにくい仕組みを作ること、起きたときに気づける仕組みを作ること、そして業務に支障が出ない水準に抑えられているかを測り続けることです。

この記事では、ハルシネーションが起きる理由、業務ごとの許容水準の決め方、精度を保つための設計、評価の方法、運用での維持の仕方を、導入を判断する立場の方向けに解説します。

なぜハルシネーションが起きるのか

なぜハルシネーションが起きるのか

生成AIの中心にある大規模言語モデルは、与えられた文章に続く言葉として、もっともらしいものを順番に生成する仕組みで動いています。事実を記憶したデータベースを検索しているわけではないため、知らないことや曖昧なことについても、文章としては自然な続きを作ってしまいます。これがハルシネーションの根本的な原因です。

業務の現場では、次のような条件が重なると起きやすくなります。

  • モデルが学習していない社内固有の情報(自社の規程、製品仕様、顧客情報)について質問する
  • モデルの学習時点より新しい情報について質問する
  • 質問が曖昧で、複数の解釈ができる
  • 正確な数字、日付、固有名詞、条文の引用を求める
  • 参照させた文書に答えが書かれていないのに、答えることを求める

このうち、業務利用で特に問題になるのは最後の条件です。社内文書を検索して回答させる仕組み(RAG)を作っても、検索で適切な文書が見つからなかったときに、モデルが一般知識で「それらしい答え」を補ってしまうことがあります。利用者からは文書に基づく回答に見えるため、誤りが見過ごされやすくなります。

つまり、ハルシネーション対策はモデルの性能だけの問題ではありません。どんな情報を渡すか、答えられないときにどう振る舞わせるか、出力をどう確認するかという、システム全体の設計の問題として捉える必要があります。

業務ごとに許容できる誤りの水準を決める

業務ごとに許容できる誤りの水準を決める

対策を考える前に決めておきたいのが、その業務でどの程度の誤りなら許容できるかです。誤りがゼロでなければ使えない、と考えると導入はいつまでも進みませんし、逆にどんな用途でも同じ対策で済ませると、重要な場面で事故が起きます。

判断の軸は、誤りが起きたときの影響の大きさと、人が確認する工程があるかどうかです。

用途の例 誤りの影響 考え方
社内向け文書の下書き、議事録の要約 小さい。作成者が必ず読み直す 人の確認を前提に、比較的早く導入してよい
社内FAQ、規程の問い合わせ対応 中程度。誤った手続きで業務が滞る 根拠文書の提示と、答えられない場合の回答拒否を必須にする
顧客からの問い合わせへの回答 大きい。誤案内が信用や契約に関わる 当初は担当者が確認してから送る運用にし、評価で十分な水準を確認してから自動化を広げる
金額、法務、医療、安全に関わる判断 非常に大きい 生成AIは情報整理や候補提示にとどめ、最終判断は人が行う

この表のように、同じ「回答を作る」機能でも、用途によって必要な対策の重さが変わります。導入の初期は、影響が小さく人の確認が入る用途から始め、評価の仕組みと実績を作ってから影響の大きい用途に広げるのが安全です。

許容水準は、できるだけ具体的な言葉で決めておきます。たとえば「規程に関する質問で、根拠文書と異なる手続きを案内する誤りは、評価用の質問セットでゼロ件であること」「答えられない質問には、担当部署の窓口を案内すること」のように、後で評価できる形にしておくと、導入の可否を判断しやすくなります。

許容水準を決めるのは、開発会社ではなく業務を所管する部署です。開発会社は技術的にどこまで誤りを減らせるかを示せますが、どの程度の誤りなら業務上受け入れられるかは、業務の責任者にしか判断できません。導入の検討段階で、業務の責任者と情報システムの担当者、開発会社の三者で許容水準をすり合わせておくと、後の評価や合否判断で揉めにくくなります。誤りが起きたときに誰がどう対応するのか、利用者への周知や訂正の手順もあわせて決めておきましょう。

精度を保つための設計上の対策

精度を保つための設計上の対策

ハルシネーションを減らす設計には、いくつかの定石があります。単独ではなく、組み合わせて使うことで効果が出ます。

対策 内容 効果が出やすい場面
根拠となる文書を渡す(RAG) 社内文書を検索し、関連する部分を回答の材料として渡す 社内固有の情報や、最新の情報が必要な質問
出典の明示 回答のどの部分がどの文書のどこに基づくかを示させる 利用者が根拠を確認できるようにしたい場合
回答拒否の許可 根拠が見つからないときは「分からない」と答えるよう指示し、その振る舞いを評価する 誤答の影響が大きい問い合わせ対応
計算や検索を外部の処理に任せる 数値計算、在庫や価格の照会は、プログラムやデータベースで処理し、結果だけを文章化させる 数字や最新のデータが重要な業務
出力形式の固定と自動チェック 決まった形式で出力させ、必須項目の有無や値の範囲をプログラムで検証する 書類の項目抽出、データ入力の補助
人による確認工程 送信前、登録前に担当者が確認する工程を業務フローに組み込む 顧客向けや外部に出る文書

RAGを使う場合、精度を左右するのはモデルよりも検索の品質であることが多くあります。質問に対して正しい文書が検索で見つからなければ、どれだけ性能の高いモデルでも正しく答えられません。社内文書が古い版のまま複数残っている、PDFの表がうまく読み取れていない、といった文書側の問題も精度を下げます。回答がおかしいときは、まず検索結果に正しい文書が含まれていたかを確認すると、原因の切り分けが早くなります。

また、数字や在庫、価格のように正解がシステムの中にある情報は、生成AIに答えさせるのではなく、既存のシステムから取得した値を使わせる設計にします。生成AIの役割を「質問の意図を理解し、適切な処理を呼び出し、結果を分かりやすく伝える」部分に限定することで、ハルシネーションが入り込む余地を減らせます。

指示文(プロンプト)の書き方も、ハルシネーションの起きやすさに影響します。「必ず答えてください」「できるだけ詳しく」といった指示は、根拠がない部分まで推測で埋める方向に働きやすくなります。業務で使う場合は、次のような点を指示文に明記しておくと効果があります。

  • 回答は渡した文書の内容だけに基づくこと
  • 文書に記載がない場合は、推測せずに記載がないと答えること
  • 回答の末尾に、根拠とした文書名と該当箇所を示すこと
  • 金額や日付は、文書の表記をそのまま引用すること

ただし、指示文だけで誤りを防げるわけではありません。指示に従わない回答が一定の割合で出ることを前提に、出典の自動照合や人の確認工程と組み合わせて使うことが大切です。指示文を変えたときに効果があったかどうかも、次に説明する評価の仕組みで確かめます。

テスト用の質問セットで精度を評価する

テスト用の質問セットで精度を評価する

対策を入れても、効果を測らなければ精度が保たれているかは分かりません。何件か試して「よさそうだ」と判断するのではなく、評価用の質問セットを作り、同じ基準で繰り返し測ることが重要です。

評価用の質問セットは、次のような質問を組み合わせて作ります。

  • 実際に利用者から寄せられた質問、または寄せられそうな質問
  • 根拠文書に答えがあり、正解がはっきりしている質問
  • 根拠文書に答えがなく、回答を拒否するのが正しい質問
  • 言い回しを変えた質問や、誤字を含む質問
  • 過去に誤答が見つかった質問

それぞれの質問には、業務を知る担当者が正解と根拠文書を付けておきます。この作業は開発会社だけではできないため、発注側の協力が欠かせません。最初は数十件でも構いません。件数を増やすより、業務で起きうる質問の種類を偏りなく含めることを優先してください。

評価の観点は、単純な正答率だけでは足りません。

評価の観点 確認する内容
正確さ 回答の内容が正解と一致しているか
根拠との一致 示した出典に、回答の内容が実際に書かれているか
回答拒否の適切さ 答えるべきでない質問に、推測で答えていないか
重大な誤りの件数 業務上の事故につながる誤りがいくつあるか

採点は、最初は人が行うのが確実です。件数が増えてきたら、別の生成AIに採点させる方法もありますが、その採点自体が正しいかを人の採点と比べて確かめてから使う必要があります。

評価の結果を導入の判断につなげるには、合格の基準を事前に決めておく必要があります。たとえば社内FAQであれば「重大な誤りがゼロ件で、回答拒否すべき質問の大半で正しく拒否できること」、顧客向けの下書き支援であれば「担当者の修正が軽微な範囲に収まること」のように、前の章で決めた許容水準を評価の観点に落とし込みます。基準を後から決めると、結果に合わせて基準を緩めてしまいがちです。

評価の仕組みを作っておく最大の利点は、変更の影響を比較できることです。指示文を変えた、検索の方法を変えた、モデルを新しいものに切り替えた、といったときに、同じ質問セットで測り直せば、精度が上がったのか下がったのかを数字で判断できます。

運用で精度を維持する仕組み

運用で精度を維持する仕組み

リリース時に十分な精度があっても、運用を続けるうちに精度は変化します。社内規程が改定されたのに参照文書が古いまま、利用者の質問の傾向が変わった、モデルの提供元が古いモデルの提供を終了して切り替えが必要になった、といった変化は避けられません。

精度を維持するためには、次のような運用の仕組みを用意しておきます。

  • 質問と回答、参照した文書をログとして記録する
  • 利用者が「役に立たなかった」「誤っていた」と報告できるボタンや窓口を用意する
  • 報告された誤答を定期的に確認し、原因(検索、文書、指示文、モデル)を分類する
  • 見つかった誤答を評価用の質問セットに追加する
  • 参照文書の更新手順と担当者を決めておく

誤答の原因を分類しておくと、打つべき手が明確になります。文書が古いなら文書の更新、検索で見つからないなら検索の改善、文書は見つかっているのに誤るなら指示文やモデルの見直し、というように対処を切り分けられます。

モデルの切り替えには特に注意が必要です。生成AIの提供元は新しいモデルを次々に公開し、古いモデルは一定期間の後に提供を終了します。新しいモデルの方が全体的な性能は高くても、自社の質問セットでは特定の種類の質問で精度が下がることもあります。切り替えの前には必ず評価用の質問セットで測り直し、問題がないことを確かめてから本番に反映してください。

組織としての方針づくりには、総務省と経済産業省が2025年3月28日に公表した「AI事業者ガイドライン(第1.1版)」が参考になります。AIを開発する事業者だけでなく、AIを業務で利用する事業者も対象としており、利用者として取り組むべき事項が整理されています。社内の利用ルールを作る際の確認用として目を通しておくとよいでしょう。

明日からできることは、生成AIで扱いたい業務について、実際の質問とその正解を20件ほど書き出すことです。それが評価用の質問セットの出発点になり、開発会社と精度の目標を話し合う際の共通の物差しにもなります。

参考:AI事業者ガイドライン(第1.1版)/総務省・経済産業省

まとめ

まとめ

ハルシネーションは、生成AIがもっともらしい言葉を生成する仕組みから生じるもので、完全になくすことはできません。業務で使うためには、誤りが起きにくく、起きても気づける仕組みを作り、その水準を測り続けることが必要です。

まず業務ごとに誤りの影響を整理し、許容できる水準を具体的に決めます。そのうえで、根拠文書の提示、回答拒否の許可、計算や照会の外部処理化、人による確認工程などを組み合わせて設計します。精度は評価用の質問セットで測り、変更のたびに測り直すことで、改善か悪化かを判断できます。

運用開始後も、ログと利用者からの報告をもとに誤答の原因を分類し、文書や検索、指示文を改善し続けることで、精度を保ったまま利用範囲を広げていけます。