【LLMセキュリティ】ゼロリソースブラックボックスでの幻覚(ハルシネーション)検出

【LLMセキュリティ】ゼロリソースブラックボックスでの幻覚(ハルシネーション)検出
Photo by Will / Unsplash

こんにちは、Qualiteg研究部です。

今回は、データベースなど外部の情報を使用しない「ゼロリソース」状態での幻覚(ハルシネーション)検出の手法である以下論文について解説いたします。

SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models
https://arxiv.org/abs/2303.08896

背景 LLMが出力する「幻覚」の問題

近年、生成型大規模言語モデル(LLMs)は、多様なユーザープロンプトに対して非常に流暢な応答を生成する能力を持っています。
しかし、これらのモデルは事実を幻覚させたり、非事実的な発言をすることが知られており、出力への信頼性を損なう可能性があります。
この問題に対処するための既存のファクトチェック手法は、出力確率分布へのアクセスが必要だったり、外部データベースを使用した複雑なモジュールを必要としたりします。

本論文では、SelfCheckGPTと呼ばれる新しいアプローチを提案しています。このアプローチは、ゼロリソースでブラックボックスモデルの応答をファクトチェックするためのシンプルなサンプリングベースの手法です。
SelfCheckGPTは、LLMがある概念についての知識を持っている場合、サンプルされた応答が類似しており、一貫した事実を含んでいる可能性が高いというシンプルな考えに基づいています。しかし、幻覚された事実の場合、確率的にサンプルされた応答は異なることが多く、お互いに矛盾する可能性があります。

幻覚検出の仕組みをざっくりいうと、

まず原理を簡単に説明します。

  1. ある入力プロンプトでLLMに応答を出力させます。
  2. さらに、同じ入力プロンプトをつかってLLMに複数の応答を出力させます。
  3. 複数応答させた出力テキストと、もとの出力を比較し、どれも同じことを言っているなら、「幻覚なし」、出力どうしを比較すると内容がマチマチなら「幻覚あり」
  4. 出力がマチマチになっていないかどうか、の評価のことを「一貫性の評価」といいます。この一貫性の評価手法にはいくつかあり、それぞれの長所短所があるよ、ということが書いてあります。

それでは、もう少しこれを詳細にみていきましょう。

本手法を用いた幻覚検出の利点

以下のように、大それた仕組みが不要で幻覚検出ができる点がメリットとなります

  • 外部データベースが不要
    サンプリングのみでモデルの知識を評価できるため、外部リソースを使用しなくてもブラックボックスモデルに適用可能な点
  • ゼロリソースアプローチ:
    モデル内部の確率分布や外部データに依存せず、純粋に生成されたテキストの一致性・一貫性で評価できる点

サンプリングによる多様な応答生成

まず、与えられたユーザープロンプトに対してLLM(大規模言語モデル)から複数の応答を生成します。このとき、応答を確率的にサンプリングすることで多様性を持たせます。

(「サンプリング」とはここでは、同じプロンプトを使って複数の応答を生成することを指します。)

サンプリングの手順

  • 特定のプロンプトを言語モデルに与え、モデルが生成する応答を複数回取得します。これにより、応答にバリエーションが生まれます。
  • たとえば、「ジョン・スミスはどんな職業ですか?」というプロンプトを与えると、モデルは複数の異なる職業を生成するかもしれません。

温度パラメータ(temperature)の使用

  • サンプリングの際に、温度パラメータを調整することで、応答の多様性を制御します。温度を高く設定するとランダム性が増し、より多様な応答が得られます。
  • 論文では、主応答の生成には温度0.0で標準ビームサーチを用い、サンプル応答の生成には温度1.0を用いて多様な応答を生成しています。

一貫性の評価

生成された複数のサンプル応答を比較し、それらがどれだけ一貫しているかを測定します。一貫している情報は事実である可能性が高く、ばらつきがある情報は幻覚である可能性があります。

一貫性の評価には、BERTScore、質問応答、n-gramモデル、自然言語推論(NLI)、プロンプトによる評価などの手法が用いられます。例えば、BERTScoreでは応答内の文とサンプル応答内の文をBERTを用いて類似度を測定し、一貫性を評価します。質問応答では、主応答から自動生成された質問に対する回答がサンプル応答でも一致しているかを確認します。n-gramモデルでは、サンプルから作成されたモデルを使い、元の応答内の文の出現確率を評価し、出現確率が低い場合は幻覚である可能性が高いと判断します。また、NLIでは、応答がサンプルと矛盾しているかを評価し、矛盾が多い場合は幻覚とみなします。さらに、プロンプトによる評価では、LLMに対して文がサンプルによって支持されているかをYes/Noで評価させ、一貫性を測ります。

一貫性の評価手法のまとめ

以下は一貫性=内容のばらつきの有無を確認する 評価の手法を以下にまとめました

手法 概要 利点 評価
BERTScoreを用いた手法 応答内の文をサンプル応答内の文と比較し、BERTを用いて類似度を測定 BERTを使用し、文の意味的な類似性を高精度で評価可能 他の手法に比べて劣ることがあるが、一部のケースで有用
質問応答を用いた手法(QA) 自動生成された選択肢付き質問を使用し、応答の一貫性を評価 質問応答の形式で情報を具体的に検証し、一貫性の高い情報を特定可能 中程度の性能で、特に詳細な情報検証が必要な場合に効果的
n-gramモデルを用いた手法 サンプルからn-gramモデルを作成し、応答内の文の出現確率を評価 簡単で計算コストが低く、トークン出現の確率を利用して幻覚を検出 大規模データで効果的だが、単独では限界がある
自然言語推論(NLI)を用いた手法 文がサンプルと矛盾しているかをNLIモデルで評価 文間の論理的一貫性を評価することで、幻覚検出に高い精度を示す 非常に高い性能を示し、実用的な選択肢
プロンプトを用いた手法 LLMに対して、文がサンプルによって支持されているかをプロンプトを使ってYes/Noで評価 直感的でシンプルな方法で、特に最新の言語モデルを利用する場合に有効 最も高い性能を示し、全体的に優れた方法

幻覚スコアの計算

こうして得られた一貫性の情報を基に、各文に幻覚スコアを計算します。このスコアは0.0から1.0の範囲で、0.0に近いほど事実に基づいており、1.0に近いほど幻覚であることを示します。検出の基本原理として、LLMが特定の情報について正確な知識を持っている場合、サンプリングされた応答は類似しており、一貫した事実を含む傾向があります。逆に、幻覚された事実はサンプル応答の間でばらつきがあり、矛盾が生じやすくなります。このように、SelfCheckGPTは応答の一貫性を基に幻覚を検出するアプローチを採用しています。

結論とおすすめの手法

  • 最も効果的な手法
    論文の結果から、プロンプトを用いた手法(SelfCheckGPT with Prompt)は最も高い精度を示しており、特に新しい言語モデル(例えばGPT-3.5やそれ以上)を用いる場合において最適です。この手法は、一貫性の高い評価を行うため、幻覚検出において最も信頼性が高いと報告されています。
  • 複数手法の組み合わせ
    それぞれの手法が異なるアプローチを提供するため、複数の手法を組み合わせることで、検出の精度をさらに向上させることができます。特に、プロンプト手法とNLI手法の組み合わせは、性能と計算コストのバランスが良く、幅広いシナリオに対応可能であることがわかりました。

まとめ

実際の利用シナリオによって、計算コストや利用可能なリソースが異なるため、どの手法を選択するかは状況によりますが以下のポイントを考慮して選択することが最終的に必要になるのではないでしょうか。

  1. 高精度を求める場合:
    プロンプト手法をメインに、必要に応じてNLI手法を補完的に使用。
  2. 計算コストを抑えたい場合
    n-gram手法やBERTScore手法を組み合わせて利用。
  3. 細かい検証が必要な場合:
    質問応答手法を利用して、詳細な一貫性評価を行う。

LLM-Audit ™のご紹介

Qualiteg では、LLMのセキュリティソリューション「LLM-Audit™」を開発・提供しております。
LLMがビジネス活用されるにつれ、LLMへの各種攻撃が活発化しています。
一方で、これまでのWebセキュリティとはまた異なったLLMへの攻撃についてはまだ知見も乏しく防衛手段も確立していません。

(株)Qualiteg では、LLMサービス開発・運営を通して得た経験・知見を集めた LLM防衛ソリューション 「LLM-Audit™」※をご提供しています。

※本論文にある SelfcheckGPTによるハルシネーションの検出にも対応しています。

また、悪意ある入力プロンプトのブロック、LLMによる不適切な出力の監査を強力に実行しLLMの安全、安心を実現することができます。

OpenAI API 互換サーバーとして貴社LLMをラッピングするだけで利用できますので非常に小さな導入コストで高度化したLLMセキュリティを実現することが可能です。

LLMセキュリティやLLM-Audit™ にご関心がおありの場合は以下までご連絡くださいませ。またLLMセキュリティコンサルティングや製品デモについてもどうぞお気軽にこちらのお問い合わせフォームまでご連絡くださいませ。

Read more

Pythonの落とし穴:__len__メソッドを実装したらオブジェクトの真偽値判定が変わってしまった話

Pythonの落とし穴:__len__メソッドを実装したらオブジェクトの真偽値判定が変わってしまった話

こんにちは! Pythonでカスタムクラスを作成していて、 「オブジェクトは存在するのにif文でFalseと判定される」 という不可解な現象に遭遇したことはありませんか? この記事では、__len__メソッドを実装することで生じる、予期しない真偽値判定の挙動について解説いたします! 実際に遭遇したバグ ユーザーの投稿を管理するクラスを実装していたときのことです class PostManager: """ブログ投稿を管理するクラス""" def __init__(self, user_id): self.user_id = user_id self._posts = [] self._cache = {} def __len__(self): """投稿数を返す""" return len(self._posts) def add_post(

By Qualiteg プロダクト開発部
CEATEC 2025に出展します!フォトリアルAIアバター「MotionVox🄬」の最新版を実体験いただけます

CEATEC 2025に出展します!フォトリアルAIアバター「MotionVox🄬」の最新版を実体験いただけます

株式会社Qualitegは、2025年10月14日(火)~17日(金)に幕張メッセで開催される「CEATEC 2025」に出展いたします。今回の出展では、当社が開発したフォトリアリスティックAIアバター技術「MotionVox🄬」をはじめ、最新のAI技術とビジネスイノベーションソリューションをご紹介いたします。 出展概要 * 会期:2025年10月14日(火)~10月17日(金) * 会場:幕張メッセ * 出展エリア:ネクストジェネレーションパーク * ブース番号:ホール6 6H207 * CEATEC内特設サイト:https://www.ceatec.com/nj/exhibitor_detail_ja?id=1915 見どころ:最先端AI技術を体感できる特別展示 1. フォトリアルAIアバター「MotionVox🄬」 テキスト入力だけで、まるで本物の人間のような動画を生成できる革新的なAIアバターシステムです。 MotionVox🄬は自社開発している「Expression Aware🄬」技術により日本人の演者データを基に開発された、

By Qualiteg ニュース
その処理、GPUじゃなくて勝手にCPUで実行されてるかも  ~ONNX RuntimeのcuDNN 警告と対策~

その処理、GPUじゃなくて勝手にCPUで実行されてるかも ~ONNX RuntimeのcuDNN 警告と対策~

こんにちは! 本日は、ONNX RuntimeでGPU推論時の「libcudnn.so.9: cannot open shared object file」エラーの解決方法についての内容となります。 ONNX Runtimeを使用してGPU推論を行う際、CUDAプロバイダの初期化エラーに遭遇することがありますので、このエラーの原因と解決方法を解説いたします。 エラーメッセージの詳細 [E:onnxruntime:Default, provider_bridge_ort.cc:2195 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1778 onnxruntime::Provider& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load

By Qualiteg プロダクト開発部
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第3回 クライアントとサーバーのドメイン参加

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第3回 クライアントとサーバーのドメイン参加

こんにちは、今回はシリーズ第3回クライアントとサーバーのドメイン参加について解説いたします! はじめに こんにちは!シリーズ第3回「クライアントとサーバーのドメイン参加」へようこそ。 前回(第2回)では、Active Directoryドメイン環境の構築手順について、ドメインコントローラーのセットアップからDNS設定まで詳しく解説しました。ドメイン環境の「土台」が整ったところで、今回はいよいよ実際にコンピューターをドメインに参加させる手順に進みます。 「ドメインユーザーアカウントを作ったのに、なぜかログインできない」「新しいPCを追加したけど、ドメイン認証が使えない」といった経験はありませんか?実は、Active Directoryの世界では、ユーザーアカウントを作成しただけでは不十分で、そのユーザーが使用するコンピューター自体もドメインに「参加」させる必要があるのです。 本記事では、このドメイン参加について、単なる手順の説明にとどまらず、「なぜドメイン参加が必要なのか」「裏側で何が起きているのか」という本質的な仕組みまで、初心者の方にも分かりやすく解説していきます。Win

By Qualiteg コンサルティング