Hallucination (in LLMs)
LLMにおけるAIハルシネーションの原因とリスクを説明します。Ultralytics YOLO26でRAG、RLHF、groundingを使用して事実誤認を軽減する方法を学びます。
人工知能 (AI) の分野では、幻覚とは、確信に満ち、構文的には正しいものの、事実に反していたり、意味をなさなかったり、元の入力に忠実でなかったりするコンテンツを 大規模言語モデル (LLM) が生成する現象を指します。クラッシュや目に見える不具合を引き起こす可能性がある標準的なソフトウェアエラーとは異なり、幻覚を起こすモデルは説得力のある捏造者のように振る舞い、正しい事実と同じ権威性で偽の情報を提示します。これは、医療、法律、金融などデータの完全性が極めて重要な分野で 生成AI を導入する組織にとって、大きな課題となります。
なぜ幻覚は発生するのでしょうか?#
モデルが幻覚を起こす理由を理解するには、モデルの構築方法に注目すると役立ちます。LLMは通常、Transformer アーキテクチャに基づいており、高度な予測エンジンとして機能します。検証済みの事実を格納した構造化データベースを検索する代わりに、モデルは トレーニングデータ から導かれた統計的確率に基づいて、系列内の次の トークン を予測します。
この挙動を引き起こす要因はいくつかあります。
- 確率的な推測: モデルは事実性よりも流暢さと一貫性を優先します。特定の単語の系列が統計的に確率の高いものであれば、事実に反していてもモデルはそれを生成する可能性があります。この概念は、モデルが意味を理解せずに言語パターンを模倣する 確率的オウム に関する研究でよく議論されています。
- データ品質の問題: トレーニングに使用される膨大なテキストコーパスに、矛盾、古い情報、またはフィクションが含まれている場合、モデルはこれらの不正確さを再現する可能性があります。
- 出典の健忘: LLMは膨大な情報を モデルの重み に圧縮します。この過程で、特定の出典への紐付けが失われることが多く、異なる概念や出来事が誤って統合される「作話」につながります。
幻覚の実例#
幻覚は、無害な創作上の脚色から深刻な事実誤認まで、さまざまな形で現れます。
- 法律上の捏造: 法律専門家がAIを使用して準備書面を作成したところ、モデルが主張を裏付けるために 存在しない裁判例 や引用を捏造していたことが判明した事例が、これまでに記録されています。
- コード生成: AIアシスタントを使用する開発者は、「パッケージの幻覚」に遭遇することがあります。これは、標準的な命名規則に従った名前であるというだけの理由で、実際には存在しないソフトウェアライブラリのインポートや関数呼び出しをモデルが提案する現象です。
- 経歴情報の誤り: あまり著名でない人物について尋ねられた場合、モデルは誤った業績、出生地、または職歴を自信を持ってその人物に結び付け、実質的に複数の人物の詳細を混同することがあります。
軽減戦略#
幻覚の発生頻度を低減することは、AI Safety における主要な取り組みです。エンジニアや研究者は、モデルを現実に即したものにするため、複数の手法を用いています。
- 検索拡張生成 (RAG): この手法では、LLMを外部の信頼できるナレッジベースに接続し、多くの場合 ベクトルデータベース にインデックスを作成します。回答を生成する前に関連文書を取得することで、モデルの出力を実際のデータに基づくものに制約します。
- Chain-of-Thoughtプロンプティング: この プロンプトエンジニアリング 手法は、複雑な推論を中間ステップに分解して「推論過程を示す」ようモデルに促します。これにより、論理的な誤りが減ることがよくあります。
- 人間のフィードバックによる強化学習 (RLHF): ファインチューニングの段階で、人間の評価者がモデルの応答に順位を付けます。幻覚にペナルティを与え、真実性を評価することで、モデルは人間の期待により適切に沿うことを学習します。
コンピュータビジョンによるLLMのグラウンディング#
マルチモーダルAI システムでは、視覚データを使用してテキスト生成をグラウンディングできます。LLMにシーンの説明を求めると、存在しない物体を幻覚として生成する可能性があります。YOLO26 のような高精度の物体検出器を統合することで、開発者は実際に存在する物体の事実に基づくリストをLLMに提供し、検証済みの検出結果だけに出力を厳密に制限できます。
次の Python の例では、ultralytics パッケージを使用して検証済みの物体リストを抽出する方法を示します。このリストは、言語モデルのプロンプトに対する事実に基づく制約として利用できます。
from ultralytics import YOLO
# Load the YOLO26n model (latest generation, efficient and accurate)
model = YOLO("yolo26n.pt")
# Run inference on an image to get ground-truth detections
results = model("https://ultralytics.com/images/bus.jpg")
# Extract the class names of actually detected objects
detected_objects = [model.names[int(c)] for c in results[0].boxes.cls]
# This factual list prevents the LLM from hallucinating items
print(f"Verified Objects for Prompt Context: {detected_objects}")
# Output example: ['bus', 'person', 'person', 'person', 'person']関連概念との違い#
幻覚を、その他の一般的なAIエラーと区別することが重要です。
- AIにおけるバイアス との違い: バイアスは、出力における体系的な偏り(例: ある集団を別の集団より優遇すること)を指します。一方、幻覚は事実性の正確さが失われることです。応答にバイアスがなくても、幻覚である可能性があります(例: 「月はチーズでできています」)。
- 過学習 との違い: 過学習は、モデルがトレーニングデータを過度に忠実に記憶し、新しい入力に一般化できなくなったときに発生します。幻覚は、モデルがデータのない領域に 過度に 一般化しようとするときに起こることがよくあります。
- 誤分類との違い: 物体検出 では、車をトラックとしてラベル付けすることは分類エラー(正確さの問題)であり、幻覚ではありません。幻覚は、偽のコンテンツを生成的に作り出すことに特有の現象です。
下流工程でのエラーを防ぐため、高いデータ完全性を備えたデータセットの管理やモデルのトレーニングを検討している方に向けて、Ultralytics Platform はアノテーションとデータセット管理のための包括的なツールを提供しています。さらに、NIST AIリスクマネジメントフレームワーク のガイダンスは、本番環境でこれらのリスクを評価・軽減するための基準を提供します。









