CoVe論文
論文情報
タイトル:Chain-of-Verification Reduces Hallucination in Large Language Models
発行日:2023年9月
著者:Shehzaad Dhuliawala, Mojtaba Komeili, Jing Xu, Roberta Raileanu, Xian Li, Asli Celikyilmaz, Jason Weston
所属:Meta
論文を読んで感じたこと
https://scrapbox.io/files/65b0556043ab530024c2873b.png
CoVeの主要なステップは以下の4つ。
ある入力に対するLLMから回答を得る
検証のための質問を計画
それぞれの検証質問に独立して回答
最終的な検証済みの回答を生成
日本のCoVeのプロンプト例で以下の説明がある
質問: 〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇?
まずは上記の問いに対して、回答の初稿を作成してください。
・ 回答を細かく分解して複数の小さな検証質問を生成してください。
・それぞれの小さな問いに対して細かく回答してください。
・小さな問いの答えから、もう一度、質問に対して答えてください。
しかしこれは、プランニングと検証の両方のステップを1つのプロンプトで共同で行うCoVeの例であり、推奨されない。
検証結果が幻覚を見たり、バイアスの影響を受けたりする可能性があるため
CoVeを使うのであれば、分割(factored: モデルの注意を制御して、以前の回答に注意を向けないこと)、および2ステップ(2step)にするとパフォーマンスが向上する(Table1-3)
2ステップ:このステップは、「共同」ステップの単純な逆である。最初のステップで検証用の質問が生成され、2番目のステップで検証用の質問に答える。
分割:一つの大きな回答を使用するのではなく、それぞれの質問に別々に回答する。こうすることで、回答がベースライン回答の単なるコピーにならずに済む。このアプローチはまた、異なる質問間の混乱を避けるのに役立ち、計算コストはかかるかもしれないが、より多くの検証質問を扱うことができる。
長文生成タスクでは、CoVeの「分割+改訂」方法で明示的な推論をつけると、さらに幻覚が減少する(Table 1)
PerplexityAIは、珍しい質問に対してCoVeベースのLlamaを上回るが、より一般的な質問に対しては、CoVeが上回る。すごい!
https://scrapbox.io/files/65b07992625d75002478d6de.png
長文形式の回答では、LLMは多くの幻覚を生成する傾向があるが、実は、個々の事実について特定に問われた場合、LLM自体はこれらの幻覚が間違っていることを知っている。
17%のみが正しい回答の質問も、CoVeの検証質問を通すと、70%の正解になる
Langchainを使った実装例
https://scrapbox.io/files/65b096655c51cf0024ce18ba.png
実際に使うには?
プロンプトはどうする?
CoVeの共同はおすすめできない
実用性を考えると、2Stepか。
custom instructionsにセットできる?
難しそう、1promptに収める共同は、推奨されていない。
概要
大規模言語モデルにおける誤った事実情報の生成、すなわち幻覚問題は未解決の課題です。我々は言語モデルが自身の反応を見直し、誤りを訂正する能力について研究しました。我々はCoVe (Chain-of-Verification)という方法を開発しました。この方法では、モデルがまず(i)初期の回答を作成し、次に(ii)そのドラフトをファクトチェックするための検証の質問を計画し、(iii)それらの質問に独立して回答することで、他の回答によるバイアスを避け、そして(iv)最終的な検証済みの回答を生成します。実験では、COVEがウィキデータからのリストベースの質問、クローズドブックのMultiSpanQA、長文テキスト生成など、さまざまなタスクにおいて幻覚を減少させることを示しました。 1 はじめに
大規模言語モデル(LLM)は、数十億のテキストトークンを含む巨大なテキスト文書でトレーニングされています。モデルパラメータの数が増えると、クローズドブックQAなどのタスクの精度が向上し、より多くの正確な事実陳述を生成できることが示されています(Radford et al., 2019; Petroni et al., 2019)。しかし、最大のモデルであっても、トレーニングコーパスで比較的まれに発生する事実については、特に失敗することがあります。誤った場合、モデルは代わりに通常はもっともらしい代替の回答(例えば、似ているが間違った実体)を生成します。これらの事実上誤った生成物は幻覚と呼ばれます(Maynez et al., 2020)。さらに、複数の文や段落を生成する長文タスクでは、exposure biasの問題により幻覚問題が悪化することがあります(Wang & Sennrich, 2020)。 現在の言語モデリング研究の波は、次の単語の予測を超え、モデルの推論能力に焦点を当てています。推論タスクのパフォーマンスは、言語モデルが応答する前に内部の思考や推論チェーンを最初に生成することを奨励することによって改善されることがあります(Wei et al., 2022; Adolphs et al., 2021; Wang et al., 2022; Lanchantin et al., 2023)、さらに自己批判を通じて初期の回答を更新することもあります(Press et al., 2022; Self-Refine論文)。この作業では、言語モデルに基づく推論が幻覚を減らすためにどのように、そしていつ使用できるかを研究するために、この研究の流れに従います。 我々は、与えられた初期ドラフト応答に対して、まず作業をチェックするための検証質問を計画し、次にそれらの質問に体系的に回答することで、最終的に改善された改訂応答を生成するアプローチ、CoVe (Chain-of-Verification)を開発しました。我々は、独立した検証質問は、元の長文の回答よりも正確な事実を提供する傾向があり、全体的な回答の正確性を向上させることを発見しました。我々はこのレシピのさまざまな変化を、リストベースの質問からクローズドブックQA、長文テキスト生成までの一連のタスクにわたって研究しました。まず、全体の検証チェーンを左から右に生成する共同アプローチを提案し、これによりベースライン言語モデルと比較してパフォーマンスが向上し、幻覚が減少しました。しかし、自分の生成物のコンテキストから既存の幻覚に注意を払うモデルは、幻覚を繰り返す傾向があります。したがって、どのコンテキストに注意を払うかの点で、検証チェーンステップを分離するファクタードバリアントをさらに導入し、これらのファクタードバリアントが考慮された3つのタスクすべてでさらなるパフォーマンス向上を示します。 2 関連研究
幻覚は、要約(Maynez et al., 2020)からオープンドメインの対話(Roller et al., 2020)に至るまで、多くのタスクで現れる言語モデル生成の一般的な問題であり、トレーニングデータやモデルサイズを単に拡大しても解決されていません(Zhang et al., 2023)。幻覚問題に関する調査については、Ji et al. (2023)を参照してください。幻覚を減少させるための方法の大部分は、大まかには3つのカテゴリーに分けることができます:
トレーニング時の修正、生成時の修正、および拡張(ツール使用)を通じて。
トレーニング時の修正方法では、エンコーダ・デコーダまたはデコーダのみの言語モデルの生の左から右への生成を改善するために、モデルの重みをトレーニングまたは調整して、幻覚生成の確率を減少させる試みが行われています。これには、強化学習(Roit et al., 2023; Wu et al., 2023)、コントラスト学習(Chern et al., 2023b; Sun et al., 2023b)、その他の方法(Li et al., 2023)が含まれます。
生成時の修正では、基本的なLLMの上に「推論決定」を行うことが一般的なテーマであり、それによってより信頼性を高めることができます。例えば、生成されたトークンの確率を考慮することによって(Mielke et al., 2022; Kadavath et al., 2022)。Manakul et al. (2023)では、幻覚を検出するためにモデルから複数のサンプルを抽出しています。Varshney et al. (2023)では、幻覚は低い信頼スコアを使用して特定され、その正確性は検証手順を通じてチェックされ、軽減され、その後生成が続行されます。信頼スコアを使用する代わりに、LLMの出力の矛盾を利用して幻覚を検出する方法もあります。Agrawal et al. (2023)は、複数のサンプルと一貫性検出を使用し、直接的および間接的なクエリを尋ねることによって幻覚された参照をチェックします。Cohen et al. (2023)は、LM vs LMと呼ばれる方法を導入し、これは2つのLLMが相互に検査する対話的なセットアップをシミュレートし、出力が繰り返しのクロス検査を通じて一貫性があるかどうかをテストします。Cohen et al. (2023)は、QAタスクで一貫性を使用することが、幻覚検出のための信頼スコアの使用よりも優れていることを示しています。COVEも関連する自己一貫性アプローチを使用していますが、複数エージェント(複数LLM)の議論コンセプトは含まれていません。
3番目のアプローチは、言語モデル自体の能力にのみ依存するのではなく、外部ツールを使用して幻覚を軽減することです。例えば、事実文書を使用して基盤とすることにより、リトリーバル強化生成が幻覚を減少させることができます(Shuster et al., 2021; Jiang et al., 2023b; Yu et al., 2023)または思考の連鎖検証(Zhao et al., 2023)。その他のアプローチには、ファクトチェックのためのツールの使用(Chern et al., 2023a; Galitsky, 2023; Peng et al., 2023)、または外部ドキュメントへのリンクと帰属(Menick et al., 2022; Rashkin et al., 2023; Gao et al., 2023)が含まれます。
論理的および数学的なタスクのための推論を改善する関連作業も多数ありますが、これらは明示的に幻覚の減少に対処していません。システムによる拡張された推論ステップを使用するいくつかのアプローチが結果を改善することが示されています。例えば、思考の連鎖(Wei et al., 2022)、演繹的検証(Ling et al., 2023)、自己検証(Miao et al., 2023; Jiang et al., 2023a; Weng et al., 2022)。後者は、数学の問題に対して、答えが与えられた(マスクされた)質問を予測し、それを正しい解決策であるという証拠として使用します。
我々のアプローチは、幻覚に傾く可能性があるにもかかわらず、一般的な指示に対してFew-ShotまたはZero-Shotの方法でプロンプトされる基本的なLLMにアクセスできることを前提としています。我々の方法の重要な仮定は、適切にプロンプトされた場合、この言語モデルは自分自身を検証する方法を生成し、実行し、最終的にこの分析を改善された応答に組み込むことができるということです。 1. ベースライン応答の生成:クエリが与えられた場合、LLMを使用して応答を生成します。
2. 検証計画:クエリとベースラインの応答の両方を考慮して、元の応答に誤りがあるかどうかを自己分析するのに役立つ検証の質問のリストを生成します。
3. 検証の実行:各検証の質問に順番に回答し、その答えを元の応答と比較して矛盾や誤りをチェックします。
4. 最終的な検証済み応答の生成:発見された矛盾(もしあれば)を考慮して、検証結果を取り入れた改訂応答を生成します。
これらのステップは、望ましい応答を得るために同じLLMに異なる方法でプロンプトを与えて実行されます。ステップ(1)、(2)、(4)は単一のプロンプトで呼び出すことができますが、ステップ(3)の変化について、共同、2段階、分割版を含めて調査します。これらのバリアントは、単一のプロンプト、2つのプロンプト、または各質問ごとに独立したプロンプトを含み、より洗練された分解により改善された結果をもたらすことができます。以下でこれらのステップについて詳細に説明します。このアプローチの概要はFigure 1に、そして付録の図3に図示されています。
https://scrapbox.io/files/65b0552e726355002390dcae.png
Figure1:Chain-of-Verification(CoVe)方式。ユーザーのクエリが与えられると、大規模な言語モデルがベースライン応答を生成する。ここではChatGPTで失敗したクエリを示す(詳細はセクション9を参照)。これを改善するために、CoVeはまず、質問する検証質問のセットの計画を生成し、次に、それらに答え、したがって一致をチェックすることによって、その計画を実行します。我々は、個々の検証質問が、通常、元の長文生成における事実の精度よりも高い精度で回答されることを発見した。最後に、修正された回答は検証を考慮に入れている。CoVeのファクタリングされたバージョンは、元の回答に条件付けできないように検証の質問に答え、繰り返しを避け、パフォーマンスを向上させる。を回避し、パフォーマンスを向上させる。
3.1 ベースライン応答
クエリが与えられた場合、我々は通常通りLLMを使用して左から右に生成します。これはCoVeパイプラインの最初のステップであると同時に、実験で改善を目指すベースラインとしても機能します(つまり、このベースライン応答を我々の全体的な方法からの最終検証済み応答と直接比較します)。
このようなベースライン生成は通常、幻覚に傾きやすいため、CoVeはこれらの幻覚を特定し、次のステップで修正しようとします。
3.2 検証計画
元のクエリとベースライン応答に基づいて、モデルは元のベースライン応答の事実的な主張をテストする一連の検証質問を生成するようにプロンプトされます。例えば、長文モデル応答の一部に「米墨戦争は1846年から1848年にかけてアメリカ合衆国とメキシコの間で行われた武力紛争であった」という文が含まれている場合、その日付を確認するための検証質問として「米墨戦争はいつ始まり、いつ終わったか?」という質問が可能です。検証質問はテンプレート化されておらず、言語モデルはこれらを自由に表現することができ、また元のテキストの表現と密接に一致する必要もありません。
実験では、LLMに(response, verification)のデモンストレーションをFew-Shotのプロンプトとして提供することにより、このような検証計画を行います。セクション8で、実験で使用する数ショットのプロンプトについて説明します。十分に性能の高い指示に従うLLMを使用すれば、これはZero-Shotで実行することも可能です。 3.3 検証の実行
計画された検証質問が与えられた場合、次のステップは、幻覚が存在するかどうかを評価するためにそれらに回答することです。このプロセスで検索エンジンを介した検証など、リトリーバル強化などの技術を使用することもできますが、この作業ではツール使用は検討しません。代わりに、CoVeのすべてのステップでLLM自体のみを使用し、モデルは自分自身の作業をチェックするために使用されます。我々は、共同、2段階、分割、分割+改訂と呼ばれる検証実行のいくつかのバリアントを調査します。
共同
共同方式では、計画と実行(ステップ2および3)は単一のLLMプロンプトを使用して達成され、数ショットのデモンストレーションには検証質問とそれに対する回答が質問の直後に含まれています。このアプローチでは別々のプロンプトは必要ありません。
2段階
共同方式の潜在的な欠点は、検証質問がLLMコンテキストのベースライン応答に条件付けされる必要があり、方式が共同であるため、検証回答も初期の応答に条件付けされる必要があることです。これにより繰り返しの可能性が高まるかもしれません。これは、検証質問が元のベースライン応答と同様に幻覚する可能性があることを意味し、目的に反します。したがって、我々は代わりに計画と実行を別々のステップに分け、それぞれに独自のLLMプロンプトを用います。計画プロンプトは最初のステップでベースライン応答に条件付けされます。計画から生成された検証質問は第二段階で回答され、ここで重要なのは、LLMプロンプトに与えられるコンテキストは質問のみを含み、元のベースライン応答は含まず、したがってそれらの答えを直接繰り返すことができないということです。
分割
より洗練されたアプローチは、すべての質問に対して、独立したプロンプトとして答えることです。再び重要なことですが、これらのプロンプトには元の基本的な回答が含まれていないため、単にコピーしたり繰り返したりすることにはなりません。この分割されたアプローチは、基本的な回答だけでなく、回答コンテキスト間の潜在的な干渉を取り除くというさらなる利点を持ち、ラダクリシュナンらによる2023年の最近の(同時期の)サブクエスチョン回答のための分割分解に関する研究にも関連していますので、私たちは彼らの命名を採用しています。これはまた、検証の質問をより多く処理する可能性もあります。それらがすべて同じ単一のコンテキストに収まる必要はありません。これは、多くのLLMプロンプトを実行する必要があるため、計算上はよりコストがかかる可能性がありますが、それらは並列に実行され、バッチ処理されるため、実行できます。これを行うためには、まず、セクション3.2から生成された質問のセットを取り、個別の質問に分解する必要があります。これは、私たちが提供する少数ショットのデモンストレーションが示すように、コンマで区切られたリストとして生成されるべきであるため、比較的簡単な作業です。次に、それらを個別のLLMプロンプトに分割できます。
分割 + 改訂
検証の質問に答えた後、CoVeパイプライン全体は、それらの回答が元の回答と矛盾するかどうかを暗黙的にも明示的にもクロスチェックする必要があります。Factor+Reviseアプローチでは、これを意図的なステップとして、追加のLLMプロンプトを介して実行します。これにより、最終システムがこのステップについて明示的に推論することが容易になるかもしれません。検証の質問に答えることとは異なり、クロスチェックフェーズは、基本的な回答と検証の質問と回答の両方に条件付けする必要があります。したがって、私たちはこれを個別のLLMプロンプトとして実行し、「クロスチェック」プロンプトはそれぞれの質問に対して、また、望ましい出力を示す少数ショットのデモンストレーションがセットされています。たとえば、元の基本的な回答が「それは1845年のアメリカによるテキサスの併合の後を追った...」というフレーズを含み、CoVeが「テキサスはいつメキシコから独立したか?」という検証の質問を生成し、その回答が1836年であった場合、このステップによって矛盾が検出されるべきです。
3.4 最終的な検証された回答
最後に、検証を考慮に入れた改善された回答が生成されます。これは、すべての前の推論ステップ、基本的な回答と検証の質問と回答のペアを考慮に入れたコンテキストで、最終的な少数ショットのプロンプトによって実行されます。セクション3.3のFactor+Reviseアプローチが使用された場合、矛盾の検出の出力も提供されます。
4. 実験
幻覚の減少におけるCoVeの有効性を測定するために、様々な実験ベンチマークを使用し、いくつかのベースラインと比較します。
4.1 タスク
私たちが使用するベンチマークは、求められる回答が一連のエンティティであるリストベースの質問から、複数の自由形式の文で構成される長文生成まで幅広いものです。
4.1.1 ウィキデータ
まず、Wikidata APIを使用して自動生成された質問セットでCoVeをテストします。たとえば、「【都市】で生まれた【職業】は誰か?」という形のリスト質問を作成します。これらの質問への回答は一連のエンティティであり、ゴールドリストはWikidataナレッジベースから取得されます。これにより、各々が通常約600の既知のゴールドエンティティを含む56のテスト質問が生成されますが、LLMは通常より短いリストを生成します。私たちは、生成された正と負のエンティティの平均数を報告するとともに、マイクロ平均で精度メトリックを測定します。
4.1.2 ウィキカテゴリーリスト
次に、より困難なセット生成タスクに進みます。Wikipediaカテゴリーリストを使用して作成されたQUEST(Malaviya et al., 2023)データセットを使用します。これらのカテゴリー名を「名前を挙げる」という単純な前置詞で質問に変換します。このタスクでは、各質問が8つの答えを持つ55のテスト質問を作成し、ウィキデータタスクと同様に、マイクロ平均で精度を測定し、生成された正と負のエンティティの平均数を報告します。
4.1.3 マルチスパンQA
次に、読解ベンチマークであるMultiSpanQA(Li et al., 2022)でアプローチをテストします。MultiSpanQAは、複数の独立した回答を持つ質問(Natural Questionsデータセットからの質問から派生し、テキストの複数の連続しないスパンから成る一連の回答)を含みます。私たちはクローズドブックの設定を考慮し、支援文書を提供せず、基本的なLLMが回答する可能性が高い事実に基づく質問のサブセットを考慮します。したがって、アイテムごとに最大3トークンの短い回答を持つ418の質問のテストセットを使用します。たとえば、Q:最初の印刷機を発明したのは誰で、その年は?、A:ヨハネス・グーテンベルク、1450。 4.1.4 伝記の長文生成
次に、長文テキスト生成におけるCoVeのパフォーマンスを検証します。この設定では、Min et al.(2023)によって提案されたベンチマークを採用して伝記を生成する方法を評価します。ここでは、モデルに「<エンティティ>の伝記を教えて」というプロンプトを与えて伝記を生成させます。その作業で提案されたFACTSCOREメトリック(Min et al., 2023)を使用して、私たちのアプローチの有効性を評価します。これは、リトリーバル強化された言語モデルを使用して応答をファクトチェックし、人間の判断とよく相関することが示されています。
4.2 ベースライン
私たちは、Llama 65B(強力なオープンモデル)を基本的なLLMとして使用し、すべてのモデルに対して貪欲なデコーディング戦略を使用します。Llama 65Bは指示に微調整されていないため、各タスクのパフォーマンスを測定するために、各タスクに特有の数ショットの例を使用します。これは、CoVe (Chain-of-Verification)が改善しようとしている主要なベースラインとして機能します。CoVeは同じLlama 65Bベースを使用しますが、同じFew-Shotの例に、検証質問と最終的な検証済みの回答のデモンストレーションを含めています。したがって、同じLLMの元のベースライン応答を改善する能力を測定します。CoVeでは、特に共同および分割バージョンの異なるバリアントをすべてのタスクで比較します。 私たちはまた、Llama指示微調整モデルと比較します。そのために、Llama 2(Touvron et al., 2023b)を使用します。私たちは、タスクのゼロショットパフォーマンス、または「ステップバイステップで考えよう」とゼロショットプロンプトに追加することで思考の連鎖を使用して、ゼロショットパフォーマンスを測定します。私たちは、Instruction Tuningされたモデルがクエリに対して余分なコンテンツを生成する傾向があることを発見しました。これは特にリストベースのタスクで問題になる可能性があります。これに対処するために、プロンプトに追加の行を追加します:「コンマで区切って答えのみをリストにします」。また、この問題を回避するために、市販のNERモデルを使用して回答を抽出する別のレイヤーのポストプロセッシングを追加します。ただし、Multi-Span-QAのようなタスクでは、回答がすべて名前付きエンティティではなく、数ショットの例がタスクのドメインを効果的に示しているため、特にこれが改善することを期待しています。 伝記の長文生成についても、Min et al.(2023)で報告された複数の既存モデルの結果と比較します。特にInstructGPT、ChatGPT、およびPerplexityAIと比較します。 4.3 結果
我々は、以下の研究質問に経験的に答えることに関心を持っています:
RQ1 COVEはLLMが生成する幻覚的コンテンツの割合を効果的に減らすことができるか?
RQ2 COVEは、正しいコンテンツの量を減少させることなく、誤った生成を修正または削除するために使用できるか?
4つのベンチマークタスクにわたる主な結果は、表1、表2、表3に示されており、主な発見は以下の通りです。
リストベースの回答タスクにおいて、CoVeは精度を向上させる
CoVeがリストベースのタスクで大幅な精度向上を提供することがわかりました。例えば、Wikidataタスクにおいて、Llama 65Bの数ショットベースラインから精度を2倍以上向上させています(0.17から0.36へ)。正および負の内訳から、幻覚された回答(負:2.95 → 0.68)の大幅な減少と、非幻覚回答(正:0.59 → 0.38)の比較的小さな減少が見られます。
https://scrapbox.io/files/65b07498af888f0022d66f55.png
クローズドブックQAにおいてCoVeはパフォーマンスを向上させる
また、一般的なQA問題においても、CoVeが改善をもたらすことがわかりました。これは、MultiSpanQAで測定され、数ショットベースラインに比べてF値/F1スコアが23%向上(0.39から0.48)しています。この改善は精度とリコールの両方の向上から来ています。 https://scrapbox.io/files/65b074ba60538100243d0cca.png
長文生成においてCoVeは精度を向上させる
これらの結果は長文生成にも拡張され、QA設定よりも大きな向上が見られます。FACTSCOREは数ショットベースラインから28%増加(55.9から71.4)し、提供される事実の平均数は比較的少なく減少しています(16.6から12.3)。また、Figure 2で事実の改善の内訳を示しており、CoVeが希少な事実とより頻繁な事実の両方で結果を改善していることがわかります。
https://scrapbox.io/files/65b075491dc88e002286b1eb.png
https://scrapbox.io/files/65b0759f48b7d0002462a831.png
事前訓練されたLlamaモデルを使用したFew-Shotベースラインが、すべてのタスクで指示調整されたモデルであるLlama 2 Chatを上回っていることがわかりました。数ショットの例は、モデルにタスクに期待される出力を生成させますが、一般的な指示調整はより多くの幻覚または誤った出力を生成します。標準的な思考の連鎖(CoT)プロンプトも、これらのタスクの結果を改善することはできませんでした。CoTは推論タスクに役立つことが証明されていますが、この作業で測定する幻覚の問題には適していないようです。 分割および2ステップCoVeはパフォーマンスを向上させる
共同CoVeと比較して、分割CoVeアプローチを適用することで、すべてのタスクにわたって一貫したパフォーマンスの向上が見られます。例えば、長文生成におけるFACTSCOREの改善(60.8から63.7)。同様に、WikidataおよびWiki-Categoryリストタスクでテストされた2ステップアプローチも、共同アプローチを上回ります。Wikidataでは2ステップが最良の結果を出し、Wiki-Categoryでは分割が最良です。これらの結果は、検証の質問が元のベースライン応答に注意を払うべきでないという仮説を支持しています。なぜなら、それらは繰り返す可能性があるからです(共同方式ではそうすることができます)。
さらに明示的な推論が幻覚を取り除くのに役立つ
長文生成タスクでは、CoVeの「分割+改訂」方法で、より洗練された推論ステップをさらに探求しました。これは明示的に検証回答が元の回答との矛盾を示しているかどうかをクロスチェックします。このさらに明示的な推論から、FACTSCOREメトリックで大幅な向上が見られます(分割から71.4(分割+改訂)へ)。これは、適切で明示的な推論がLLMで幻覚を軽減する改善をもたらす可能性があることをさらに示しています。
CoVeベースのLlamaはInstructGPT、ChatGPT、PerplexityAIを上回る
長文生成タスクにおいて、我々のベースラインである数ショットLlama 65Bは、FACTSCOREメトリックの観点からChatGPTおよびPerplexityAIモデルに上回られています。しかし、CoVeをベースラインLlama 65Bに適用すると、ChatGPTおよびPerplexityAIを超えるとともに、InstructGPTも上回ります。これは、事実をリトリーバル強化でサポートできるPerplexityAIと比較して特に印象的ですが、CoVeは検証(verification)を通じて改善された推論を伴うベース言語モデルのみを使用しています。しかし、Figure 2で見ると、PerplexityAIはリトリーバルが不可欠な非常に希少な事実においてCoVeを上回っていますが、より頻繁な事実においてはCoVeがPerplexityAIを上回っています。
https://scrapbox.io/files/65b07992625d75002478d6de.png
いくつかのモデルは他のモデルよりも全体的に少ない事実を生成することに留意する必要がありますが、FACTSCOREメトリックは正規化されており、モデル間で比較可能です。我々は、すべてのモデルの中で最も多くの出力を持つLlama 2 70Bチャットの出力をクリッピングして、より少ない事実を提示する実験を行いましたが、これはFACTSCOREに大きな変化をもたらしませんでした(例えば、10文にクリッピングすることでスコアが41.3から42.7に増加)。数ショットベースのモデルの生成の長さは、実質的に数ショットの例によって制御され、それはさらにコンテキストの長さによって制約されています。
短文形式の検証質問は長文形式のクエリよりも正確に回答されることが多い
長文形式の回答では、LLMは多くの幻覚を生成する傾向があります。しかし、個々の事実について特定に問われた場合、LLM自体はこれらの幻覚が間違っていることを知っている場合がよくあります。これは、長文生成の残りの部分とは独立しています(図1、図3、セクション9を参照)。これは、Wikidataタスクで定量的に見ることができます。ここでは、Llamaの数ショットベースライン回答のエンティティの約17%のみがリストベースの質問で正しいです。しかし、個々のエンティティを検証質問を通じて問い合わせると、約70%が正しく回答されていることがわかります。
LLMベースの検証質問はヒューリスティックを上回る
私たちの方法であるCoVeでは、検証質問はタスクに応じてLLMによって生成されます。これらの質問の品質を、LLMの質問を「Xが質問に答えるかどうか」という形式のテンプレート化されたイエス/ノー質問に置き換えることによって、ヒューリスティックに構築されたものと比較して測定します。Wiki-Categoryタスクでの結果は、表4に示されており、ルールベースの検証質問により精度が低下しています。長文生成では、必要な検証質問の種類がより多様になる可能性があり、LLMベースの検証がさらに必要になるため、この差はより大きくなると思われます。
開放型の検証質問はイエス/ノー型の質問よりも優れている
私たちの主な実験では、期待される回答が真実の事実である検証質問を使用しています。代替案としては、検証質問の一部として事実を含め、イエス/ノー回答形式で尋ねることです。この違いを表4で評価し、CoVeの分割版に対して、イエス/ノー型の質問が劣っていることがわかります。ChatGPTでの逸話的な例が付録のセクション9に含まれており、モデルはイエス/ノー質問形式で、事実が正しいか間違っているかにかかわらず、事実に同意する傾向があることがわかります。
5 結論
我々は、Chain-of-Verification(CoVe)というアプローチを導入しました。これは、大規模言語モデルが自身の回答を熟考し、自己修正することによって幻覚を減らす方法です。特に、モデルが検証質問に対して元のクエリよりも高い精度で回答できること、そして検証をより単純な質問のセットに分解することを示しました。第二に、検証質問のセットに回答する際、モデルの注意を制御して、以前の回答に注意を向けないようにする(分割CoVe)ことが、同じ幻覚をコピーすることを軽減するのに役立つことを示しました。全体として、私たちの方法は、同じモデルに自分の答えを熟考(検証)するように求めるだけで、元の言語モデルの回答よりも大幅なパフォーマンス向上を提供します。我々の作業への明白な拡張は、検証実行ステップでリトリーバル強化を使用するなど、CoVeにツール使用を装備することであり、これによりさらなる向上が期待されます。
6 限界
我々のChain-of-Verification(CoVe)方法は幻覚を減らすことを目指していますが、生成物から完全にそれらを取り除くわけではありません。これは、CoVeがベースラインを改善するとしても、特定のクエリに対して誤った情報または誤解を招く情報を引き続き生成する可能性があることを意味します。また、実験では、直接的な事実的不正確さの形での幻覚のみに対処しました。しかし、幻覚は、間違った推論ステップの間や、意見の一部など、他の形でも発生する可能性があります。また、CoVeが生成する生成物には検証が含まれており、ユーザーがこれを見ると、その決定に対する解釈可能性が高まりますが、出力により多くのトークンを生成するため、計算コストが増加するという代償が伴います。これは、思考の連鎖などの他の推論方法と似ています。
我々の方法は、大規模言語モデルが自分自身の間違いを特定するためにより多くの時間をかけて、改善された回答を生成するようにすることを目指しています。この方法が明確な改善をもたらすことを示しましたが、改善の上限は明らかにモデルの全体的な能力によって制限されています。例えば、何を知っているか、何を特定できるかについてです。この点で、セクション2で議論されたような、言語モデルが外部ツールを使用して、その重みに格納された情報を超えたさらなる情報を得るための直交する研究ラインがあります。この作業ではその道を探求していませんが、ここでの発見と組み合わせると、それらの技術はおそらく有益でしょう。