Chain of Verification (CoVe)
検証の連鎖(CoVe)では、LLMが回答の草案を作成し、的を絞ったファクトチェックの質問を提示します。各質問に個別に回答した後、草案を修正します。
Chain of Verification(CoVe)は、モデルに自身の草案の事実確認をさせることで、大規模言語モデル(LLM)の出力におけるハルシネーションを減らすプロンプト手法です。モデルは最初の回答を作成し、記載された事実の主張を検証する短い質問を考えます。その質問に草案とは独立して回答し、検証によって裏付けられた主張だけを残して最終回答を作成します。Meta AIのShehzaad Dhuliawala氏らが、2023年の論文Chain-of-Verification Reduces Hallucination in Large Language Modelsでこの手法を発表しました。モデルは、同じ事実でも長い回答の中で述べる場合より、短く焦点を絞った質問に回答する場合のほうが正確です。この性質を利用しています。論文のリスト形式の質問を使った実験では、Llama 65Bが列挙した項目のうち正しかったのは約17%でしたが、同じモデルは個別の検証質問に約70%の正答率で回答しました。
Chain of Verificationの仕組み#
CoVeは同じモデルを使って、次の4つのステップを実行します。
- 基準となる回答の草案を作成: モデルがクエリに通常どおり回答します。ニューヨーク市生まれの政治家を尋ねると、ヒラリー・クリントン、ドナルド・トランプ、マイケル・ブルームバーグを挙げる可能性があります。
- 検証質問を計画: モデルが草案を読み、確認可能な主張ごとに質問を1つ作成します。たとえば、「ヒラリー・クリントンはどこで生まれましたか?」や「マイケル・ブルームバーグはどこで生まれましたか?」などです。
- 各質問に独立して回答: モデルは、草案を含まない新しいプロンプトで各質問に回答します。そのため、先ほどの誤りをそのまま繰り返すことはできません。クリントンはシカゴ生まれ、ブルームバーグはボストン生まれで、トランプはクイーンズ生まれです。
- 最終回答を作成して修正: モデルは検証結果と照らし合わせて草案を修正し、検証に失敗した主張を削除または訂正します。この例では、トランプだけがリストに残ります。
3つ目のステップで質問をどの程度厳密に分離するかが重要です。論文では4つのバリアントを比較しました。jointでは、草案を含む1つのプロンプト内で計画と回答を行います。two-stepでは、草案を含まない2つ目のプロンプトで、すべての質問に回答します。factoredでは、質問ごとに個別のプロンプトで回答します。factor+reviseでは、各回答と元の主張を明示的に照合するステップを加えます。検証用プロンプトから草案を除外したバリアントはすべて、jointよりハルシネーションが少なくなりました。自分の草案を参照できるモデルは、誤りを繰り返しやすいためです。
結果#
Llama 65Bでは、CoVeによりWikidataのリスト形式の質問に対する適合率が0.17から0.36に上昇し、クローズドブック形式のMultiSpanQAベンチマークにおけるF1も0.39から0.48に向上しました。長文の経歴文では、factor+reviseバリアントにより、Wikipediaで裏付けられた原子的事実の割合であるFActScoreが55.9から71.4に上昇し、ChatGPTで報告された58.7や、検索ベースのPerplexityAIの61.6を上回りました。こうした向上には推論レイテンシの増加が伴います。factoredバリアントでは、検証質問ごとにモデル呼び出しが1回追加で必要です。
CoVeと関連技術の比較#
- Chain-of-thought prompting:回答の前にモデルに段階的な推論を促す手法で、論理や数学の問題に有効です。CoVeは、草案ができた後に事実に関する主張を監査します。
- 検索拡張生成(RAG):最初から検索した文書に基づいて回答を生成します。元のCoVeはモデル自身の知識だけに依存しますが、検証質問への回答に検索エンジンや文書インデックスを使うと、両者を自然に組み合わせられます。
- 意味エントロピー:複数の回答をサンプリングし、その意味がどの程度食い違うかを測定することで、ハルシネーションの可能性を検出します。CoVeはさらに踏み込み、回答を修正します。
- AIディベート:2つのモデルが反対の立場を主張し、審判役のモデルが誤りを見つけられるようにします。CoVeは敵対者を使わず、1つのモデルが自らを検証します。
ツールを使った主張の検証#
検証質問への回答に、モデルの記憶を使う必要はありません。パイプラインは、正解情報を保持するツールに質問を振り分けます。たとえば、公開情報には検索エンジン、社内文書にはベクトルデータベース、画像に関する主張にはビジョンモデルを使います。ビジョン言語モデルが画像キャプションを生成する場合、Ultralytics YOLO26の物体検出モデルは、草案とは独立して、キャプションに関する「いくつあるか」という各質問に回答できます。
from collections import Counter
from ultralytics import YOLO
# Claims extracted from a draft caption: "A bus, four people, and a bicycle on a street"
draft_counts = {"bus": 1, "person": 4, "bicycle": 1}
# Answer each verification question with a detector that never sees the draft
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
detected = Counter(result.names[int(c)] for c in result.boxes.cls)
# Keep claims the detector confirms and mark the rest for revision
for name, claimed in draft_counts.items():
verdict = "keep" if detected[name] == claimed else f"revise to {detected[name]}"
print(f"How many '{name}'? Draft: {claimed}, detector: {detected[name]} -> {verdict}")出力される各行は1つの検証質問を表し、草案の主張、検出器による独立した回答、最終キャプションに適用する判定が示されます。
実際のアプリケーション#
- 医療:医学文献を要約するアシスタントは、医療従事者が要約を見る前に、薬剤名、用量、相互作用を個別の質問で検証します。
- 質問応答:検索アシスタントやサポートアシスタントは、リスト形式の回答、日付、経歴に関する事実を確認します。論文で最も大きな向上が測定されたのは、こうした種類の主張です。
- 製造レポート:シフトレポートを作成するLLMは、レポートを提出する前に、記載する不具合を検査システムのログと照合して検証します。
- 文書処理:契約書や請求書から抽出した値を、項目ごとに再度質問し、最初の抽出結果と比較します。
制限事項#
CoVeは、モデルが一貫しない形で起こす誤りを検出できますが、モデルがあらゆる状況で抱いている誤った信念は検出できません。独立した回答でも同じ誤りが繰り返されるためです。CoVeは事実に関する主張を検証しますが、正しい事実の間にある誤った推論は修正せず、回答ごとのモデル呼び出し数を増やします。論文で最も優れたバリアントでも、経歴文中の原子的事実の28.6%には裏付けがなく、これはFActScoreの71.4%に相当します。










