Chain of Verification (CoVe)
Chain of Verification(CoVe)がLLMのハルシネーションを低減する仕組みを学びます。Ultralytics YOLO26でこのプロンプトエンジニアリング手法を使用し、事実の正確性を向上させる方法をご紹介します。
検証チェーン(CoVe)は、大規模言語モデル(LLMs)の出力における不正確さや事実誤認を減らすために設計された、高度なプロンプトエンジニアリング手法です。人工知能システムが複雑になるにつれ、もっともらしく誤った情報を生成する傾向、つまりLLMの幻覚として知られる現象は、依然として大きな課題となっています。CoVeは、ユーザーに最終回答を提示する前に、モデル自身の初回応答を体系的にファクトチェックするよう強制することで、この問題に対処します。この自己修正メカニズムにより、さまざまな業界の生成AIアプリケーションの信頼性が大幅に向上します。
検証プロセスの仕組み#
CoVeの手法では、生成プロセスを明確に区別された4つの連続したステップに分けます。この構造化されたアプローチは、人間のファクトチェックワークフローを反映しており、AIの安全性とアラインメントの向上を目的として、主要なAI組織で活発に研究されています。
- 初回応答を下書きする: モデルはユーザーの質問に対するベースラインとなる回答を生成します。この下書きには、検証されていない主張や幻覚による主張が含まれる場合があります。
- 検証用の質問を計画する: モデルは自身の下書きを分析し、初回テキストに含まれる事実に関する主張を検証するための、具体的で対象を絞った質問のリストを生成します。
- 独立した検証を実行する: モデルは、元の下書きのコンテキストに依存せず、検証用の質問に独立して回答します。これにより、モデルが自身のバイアスや過去の誤りを単に肯定することを防ぎます。
- 検証済みの最終出力を生成する: 新たに検証された事実を使用して、モデルは初回の下書きを修正し、不正確な内容を削除したうえで、洗練された正確な回答を提示します。
CoVeと関連手法の違い#
CoVeはChain-of-Thoughtプロンプティングと比較されることが多い一方で、両者の目的は異なります。Chain-of-Thoughtは、問題を解決するために複雑な論理的推論を段階的な構成要素に分解し、モデルに「推論過程を示す」よう促します。これに対して、Chain of Verificationは、下書きの生成後に主張を監査して修正することで、特に事実の正確性を対象とします。さらに、CoVeは検索拡張生成(RAG)パイプラインと組み合わせることができます。この場合、検証ステップでは、モデルの内部重みにのみ依存するのではなく、外部のベクトルデータベースからグラウンドトゥルースデータを取得します。
実世界での利用例#
CoVeは、事実の正確性が重要となる分野で非常に有用です。この自己チェックループを組み込むことで、開発者はより高いリスクを伴うタスクを人工知能システムに任せられるようになります。
- 医療・ヘルスケアアシスタント: AIが患者の症状や医学文献を要約する際、CoVeにより、システムは推奨事項を提示する前に、薬物相互作用、用量、診断基準を確立された医学知識と照合して検証できます。
- 自動化された産業レポート作成: スマートファクトリーでは、LLMが外観検査ログに基づいて概要レポートを生成する場合があります。CoVeをコンピュータービジョンモデルと組み合わせることで、言語モデルは最終的な日次メンテナンスレポートを確定する前に、特定の欠陥が組立ラインで実際に検出されたかどうかをビジョンシステムに問い合わせて検証できます。
ビジョンモデルによるグラウンディング検証#
CoVeの「実行」ステップを強化するために、開発者は信頼できる機械学習モデルに問い合わせてグラウンドトゥルースデータを取得できます。たとえば、Ultralytics YOLO26を物体検出に使用すると、LLMは画像に関する物理的な主張を検証できます。チームは、直感的に操作できるUltralytics Platformを使用して、これらのデータセットを効率的に管理し、これらのビジョンモデルをデプロイできます。
次のPythonの例では、ultralyticsパッケージを使用して検証済みのオブジェクト一覧を抽出する方法を示します。この一覧は、Chain of Verificationステップを実行するLLMの事実に基づくグラウンディングソースとして機能します。
from ultralytics import YOLO
# Load the YOLO26n model to act as a factual verification source
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 for CoVe grounding
detected_objects = [model.names[int(c)] for c in results[0].boxes.cls]
# Pass this factual list to the LLM during its verification execution step
print(f"CoVe Ground Truth Facts: {detected_objects}")
# Output example: ['bus', 'person', 'person', 'person', 'person']PyTorchのような高性能ビジョンフレームワークによる決定論的な出力をCoVeパイプラインに統合することで、開発者は生成エラーを大幅に削減し、堅牢で信頼性の高いマルチモーダルAIアプリケーションを構築できます。









