【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

【解説】Tekken トークナイザーとは何か? 〜 Mistral が採用する新世代トークナイザーの特徴

【解説】Tekken トークナイザーとは何か? 〜 Mistral が採用する新世代トークナイザーの特徴

こんにちは! 本日は、Tekkenについて解説いたします! 皆さま Tekken と聞いて何を思い浮かべますか? 格ゲーの鉄拳でしょうか? 私は、昔プレイした Age of Empires に登場する鉄剣戦士を思い浮かべました🤗 ちょっと古いかもしれませんが、名作です! さてつかみはこのくらいにして、、 LLMはご存じのとおり驚異的なスピードで進化しています。そんな中でひそかに注目されているのが、トークナイザーの改善です。 たとえば、Meta の Llama 系モデルのトークナイザーは Sentence Piece から BPE系へ進化するなど、LLM業界では従来よりも高効率なトークナイズ(テキスト分割)の方法を導入し始めています。 そして Mistral AI もまた、新たに「Tekken トークナイザー」という仕組みを採用し、大規模言語モデルの性能を底上げしています。 本記事では、Tekken トークナイザーの登場背景や技術的特徴、他のトークナイザーとの違い、さらには Mistral との関係などをわかりやすく解説していきます。 1. Tekken トーク

By Qualiteg プロダクト開発部
[AI新規事業創出]Qualitegオリジナル、アイディア評価、事業アイディア選定方法

[AI新規事業創出]Qualitegオリジナル、アイディア評価、事業アイディア選定方法

Qualiteg blogを訪問してくださった皆様、こんにちは。Micheleです。AIを活用した新規事業やマーケティングを手がけている私には、クライアントからよく寄せられる質問があります。AIを用いた事業展開を検討されている方々が共通して直面するであろう課題に対して、このブログを通じて私なりの解答をご提供したいと思います。 はじめに AI技術の急速な発展は、スタートアップから大企業まで、あらゆるビジネスに新たな可能性をもたらしています。クライアントとの会話の中でも、AIを活用した革新的な事業アイディアに関する相談が増えています。 しかし、多くの企業が「素晴らしいアイディアを思いついた!」と興奮しながらも、そのアイディアを具体化し、成功に導くための方法論に悩んでいるのも事実です。特にAIを用いた事業展開においては、従来のビジネスモデルとは異なる視点が必要となるため、その難しさはさらに増します。 本記事では、Qualitegオリジナルのアイディア評価、事業アイディア選定方法について解説します。特に、AIを用いた事業展開を検討されている方々が共通して直面するであろう課題に対して、

By Join us, Michele on Qualiteg's adventure to innovation
日本語対応!Mistral Small v3 解説

日本語対応!Mistral Small v3 解説

こんにちは! Mistral AIは2025年1月30日、新しい言語モデル「Mistral Small v3」を発表しました。このモデルは、24Bという比較的小規模なパラメータ数ながら、70B以上の大規模モデルに匹敵する性能を実現しています。また日本語対応も謳われており期待の高い小型モデルです! https://huggingface.co/mistralai/Mistral-Small-24B-Instruct-2501 動画 こちら本ブログの解説動画もご覧いただけます😊 きわだってるのは、レイテンシー最適化 Mistral Small 3のめだった特徴は、その処理性能とレイテンシーの絶妙なバランスではないでしょうか。 公開されている以下の性能評価のグラフによると、トークンあたり約11ミリ秒という業界最速レベルのレイテンシーを達成しています。これは、Qwen-2.5 32Bの約15ミリ秒やGemma-2 27Bの約14ミリ秒と比較して、明確な優位性を示しています。さらに注目すべきは、GPT-4o Miniと比較しても、より低いレイテンシーで同等以上の性能を実現し

By Qualiteg プロダクト開発部
[vLLM] To use CUDA with multiprocessing, you must use the 'spawn' start method の対処法

[vLLM] To use CUDA with multiprocessing, you must use the 'spawn' start method の対処法

WSLで vLLM を使用するとき、 tensor parallel を使って複数枚のGPUで1つのLLMをサーブしようとしたとき以下のようなエラーが発生しがちです RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method 遭遇するシーンとしてはvLLMの起動オプションに以下のようにテンソル並列化オプションを指定したときです。 --tensor-parallel-size 2 つまり、マルチプロセッシングでCUDA使うときは、 "fork"じゃなくて"spawn" 使ってね、というエラーです。 これを vLLM に教えるために、以下の2行目のように環境変数を設定してあげるとvLLMが "spawn" を使ってくれるようになります。 export

By Qualiteg プロダクト開発部