😶‍🌫️

生成AIにおけるハルシネーション防止するには?

に公開

こんにちは
今回は、生成AI、特に大規模言語モデル(LLM)の利活用において避けて通れない課題である「ハルシネーション」について、私が実践している具体的な対策を社内LT会で発表しましたので共有をします!
先に言っておくと、魔法の銀の弾丸はありませんが、現実的かつ再現可能なアプローチをご紹介します。


ハルシネーションとは

ハルシネーションとは、AIが誤った情報を「幻覚」のようにユーザーに認識させてしまう現象を指します。
最大のリスクは、誤情報を“正しい”かのように提示してしまう点にあります。
特に、重要な意思決定が絡むケースでは、出力内容の信頼性を担保するための工夫が必須です。


ハルシネーションの主な原因

  1. コンテキスト長オーバー

    Transformer系モデルは、一度に参照できるトークン数に上限が設けられています。
    たとえば多くのモデルでは「例えば4,096トークン」といった制約があり、これを超過すると古い情報が自動的に切り捨てられます。

    • 問題点: 初期プロンプトや前提条件が失われ、モデルが欠落部分を“勘”で埋める
    • 結果: ユーザー意図とズレた情報生成が発生しやすくなる
  2. 誤情報の連鎖

    生成AIは常に「直前の出力」を次の入力として利用します。
    もし最初の応答で小さな誤りが生じると、その誤りを前提に次の回答が作られてしまいます。

    • 問題点: 小さなミスが雪だるま式に拡大
    • 結果: 一度生じた誤情報の修正が極めて困難になる

ハルシネーションへの対策

以下の3つのステップを組み合わせることで、ハルシネーションのリスクを大幅に低減できます。

  1. 定期的なチャット履歴リセット

    長い対話では必ずコンテキスト長オーバーが発生するため、定期的な履歴整理が重要です。

    • 実施方法: 50~100メッセージごとに「要点まとめ」を実行し、古いチャット履歴を要約テキストに置き換える
    • 効果: トークン数を抑制しつつ、重要な前提情報を維持できる
  2. プロンプト脱出

    一度のプロンプトに頼りきらず、情報を段階的に整理・検証する手法です。

    • プロセス:

      1. 通常プロンプトで回答を取得
      2. 回答に対し「ここまで要点まとめて」と指示し、議論のキーポイントを抽出
      3. 要点を再プロンプトとして入力し、抜けや誤りがないかをチェック・追記
    • 効果: トークン抑制と情報欠落防止を同時に実現

  3. 思考過程の可視化(Chain-of-Thought)

    モデルに「なぜその答えに至ったか」をステップごとに出力させる手法です。

    • 方法: 「ステップごとに理由を説明して」とプロンプトに追加
    • 効果: 各推論ステップを人間がレビュー可能となり、小さなズレや論理飛躍を早期に発見できる

最後に

生成AIは驚異的な表現力を持つ一方で、ハルシネーションというリスクを抱えています。今回ご紹介した以下の3ステップを組み合わせることで、より信頼性の高いAI出力を得ることが可能かも、しれないです()

  1. 定期的なチャット履歴リセット
  2. プロンプト脱出
  3. 思考過程の可視化(Chain-of-Thought)

ぜひこれらを日々のプロンプト設計や運用プロセスに取り入れ、安全かつ効果的に生成AIを活用して見てください!
この記事が、あなたのハルシネーション防止の一歩目になれば嬉しいです。

株式会社アクティブコア

Discussion