FacTool:大規模言語モデルが生成する情報の信頼性を検証する新しいフレームワーク
3つの要点
✔️ 大規模言語モデルが生成した情報をファクトチェックする新しいフレームワーク「FacTool」を提案。
✔️ 様々なツール(Google検索、Google Scholar、Pythonなど)を利用して大規模言語モデルが生成した情報の誤りを検出。
✔️ 多様なタスクやシナリオに適用可能であり、高い拡張性を持つ。
FacTool: Factuality Detection in Generative AI -- A Tool Augmented Framework for Multi-Task and Multi-Domain Scenarios
written by I-Chun Chern, Steffi Chern, Shiqi Chen, Weizhe Yuan, Kehua Feng, Chunting Zhou, Junxian He, Graham Neubig, Pengfei Liu
(Submitted on 25 Jul 2023 (v1), last revised 26 Jul 2023 (this version, v2))
Comments: Published on arxiv.
Subjects: Computation and Language (cs.CL); Artificial Intelligence (cs.AI)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
概要
大規模言語モデルは、多くのタスクで高い性能を示しており、利用が急速に拡大しています。その一方で、生成されたテキストに誤った情報が含まれているリスクがあります。特に、人間の生活や生命に関わる分野(医療、金融、法律など)では、導入に際して課題となっています。大規模言語モデルが生成したテキストから誤った情報を検出できるようにし、生成されたテキストの有用性と信頼性を確認する技術が求められています。
これまでも大規模言語モデルが生成したテキストから誤った情報を検出する研究は行われていますが、いずれも特定のタスクに特化しており、汎用性が高い大規模言語モデルに適用するには十分とは言えません。
そこで、この論文では、タスクやドメインに依存せずに大規模言語モデルが生成したテキストが正しいかどうかをチェックする「FacTool」というフレームワークを提案しています。これは、Google検索やPythonなど、様々な「ツール」を使って、AIが生成した文章が正しいかどうかをチェックするフレームワークです。
FacToolとは
FacToolは、様々なツールを組み合わせることで、大規模言語モデルが生成した内容が正しいかどうかをチェックできる拡張性の高いフレームワークです。下図のように、5つのステップで構成されています。
- 主張抽出:大規模言語モデルが生成したテキストから要点(主張)を抽出。
- クエリ生成:適したツールを利用して、その要点(主張)の根拠を収集するため、クエリを生成。
- ツール利用:生成したクエリを、適したツールに入力。
- 根拠収集:ツールで取得した根拠となる情報を収集。
- 一致検証:収集した証拠が要点(主張)と一致するかを検証。
この論文では、既存の知識を基に質問に答える「知識ベースのQA」、新しいプログラムコードを生成する「コード生成」、数学の問題を解く「数学問題解決」、科学論文を要約する「科学文献レビュー作成」の4つのタスクで、FacToolの有用性を検証しています。
実験1:主張抽出の評価
ここからは、この論文で行われている実験について、いくつか紹介していきます。まずここでは「FacTool」の1つ目のステップである「主張の抽出」の性能評価を紹介します。生成された文章からどの程度正確に主張を抽出することができるのかを評価しています。ここでは「RoSE」データセットを利用しています。このデータセットには、文章とその文章から専門家によって抽出された「主張」のセットが含まれています。ここでは、これらの専門家が抽出した主張と、FacToolが抽出した主張が、どの程度一致するかを検証しています。
FacToolによる主張の抽出には、「GPT-4」「ChatGPT」「Flan-T5」の3つの異なるモデルを使っており、各モデルによって抽出された主張と専門家によって抽出された主張の類似度を4つの指標(ROUGE-1、ROUGE-2、ROUGE-L、BERTScore)で測定しています。結果は下表の通りです。FACETOOLによって抽出された主張は、専門家によって抽出された主張とかなり一致していることがわかります。
実験2:「FacTool」フレームワークの評価
ここでは、「知識ベースのQA」「コード生成」「数学問題解決」「科学文献レビュー作成」の4つのタスクに対して、2ChatGPTを利用したFacToolと、GPT-4を使用したFacToolの性能を評価しています。
また、FacToolで大規模言語モデルが情報の正確性をどれだけうまく判断できるかを評価するために、2つの基準を用意しています。その基準は「Self-Check with 3-shot CoT」と「zero-shot CoT」です。この2つは、モデルが自分の出力が正しいかどうかを自分でチェックする方法です。モデルに自分が間違っているところを見つけて、説明して、それを修正するように指示します。この2つの違いは、どれだけ多くの例をモデルに見せるか、つまり「デモンストレーション」をどれだけ提供するかです。「Self-Check with 3-shot CoT」では、3つの例を見せてから問題を解かせます。「zero-shot CoT」では、例を一切見せずに問題を解かせます。それぞれ、Self-Check(3)とSelf-Check(0)と表記されています。これらの基準は、モデルが自身の出力の正確性をどれだけうまく判断できるか、そしてそのためにどれだけの例が必要かを測るものなのです。主張レベルと回答レベルの両方で、正確さ、再現率、適合率、F1スコアを報告しています。各タスクにおける性能は下表の通りです。
まず、GPT-4を使用したFacToolが、全てのテストシナリオ(知識ベースのQA、コード生成、数学問題、科学文献レビュー)で最高の性能を示しています。KBベースのQAで主張レベルのF1が89.09、回答レベルのF1が71.79、コード生成では主張レベルと応答レベルのF1がそれぞれ92.11、数学の問題では主張レベルのF1が98.97、回答レベルのF1が80.36、科学的文献レビューでは主張レベルのF1が95.24、回答レベルのF1が94.74となりました。これらの数値は、各タスクにおいて最も高いものです。
また、GPT-4を使用したFacToolが全てのシナリオでSelf-Checkの性能を上回っています。これは、FacToolが、AIが自分自身のエラーを特定して修正する能力を超えて、事実性をより正確に評価できることを示しています。特に、科学文献レビューにおいては、GPT-4を使用したFacToolがSelf-Checkを大幅に上回っています。これは、Google Scholarが、大規模言語モデルと比較した場合に、引用を見つけるという特定のタスクで非常に堅牢であることを示しています。
さらに、全てのシナリオにおいて、GPT-4を使用したFacToolは、ChatGPTを使用したFacToolよりも優れていることがわかります。特に、知識ベースQAのタスクで、クエリ生成と合意検証の部分が、ChatGPTには難しく、GPT-4には比較的簡単であり、結果として、89.09対81.25の主張レベルF1スコアと71.79対52.63の応答レベルF1スコアを示しています。
全体として、FacToolは、テキストが事実に基づいているかどうかを確認するための有用なツールであり、その中でもGPT-4を用いた方が全体的に優れた性能を示すことがわかります。
実験3:FacToolを使ってチャットボットの事実性を評価
ここでは、GPT-4を利用したFacToolで様々なチャットボットの回答する内容が事実に基づいているかどうかを調べています。ここではGPT-4、ChatGPT、Claude-v1、Bard、Vicuna-13Bという5つのチャットボットを調査対象としています。
それぞれのチャットボットに対していくつかのプロンプト(質問や指示)を提示し、その回答をFacToolで評価しています。プロンプトは4つのタスク、「知識ベースのQA」「コード生成」「数学問題解決」「科学文献レビュー作成」から選ばれ、その中でも「知識ベースの質問応答」は、最も一般的なシナリオであるため、3倍のプロンプトを用意して検証しています。
FacToolを使って、チャットボットが生成した回答が事実に基づいているか(主張の正確さ)と、全体的にその回答が適切かどうか(回答の正確さ)を評価しています。この評価には重み付けが行われ、「知識ベースの質問応答」の回答には、他のタスクよりも大きな重み付けがされています。この重みは各シナリオのプロンプト数の比率によって決定されています。
結果は下表の通りです。主張の正確性、回答の評価のいずれにおいても、GPT-4が最も高いスコアとなっていることがわかります。これは、GPT-4が最も事実に基づいた回答を生成し、また全体的に適切な回答を提供できているということを示しています。
まとめ
今回紹介する論文では、大規模言語モデルが生成する情報が事実に基づいているかどうかをチェックするための新しいフレームワーク「FacTool」を提案しています。しかし、大規模言語モデルは汎用性が高く様々な分野やタスクに対応しており、長い文章を生成することができるため、その事実確認は容易ではありません。そこで、FacToolは「主張抽出」「クエリ生成」「ツール利用」「証拠収集」「一致検証」という5つのステップを組み合わせることで、これらの問題に対処しています。FacToolは、Google検索、Google Scholar、コードインタープリタ、Pythonなど様々なツールを使って、事実確認を行い、その有用性を示しています。
FacToolは、一般知識に関する質問応答(QA)、コード生成、数学の問題解決、科学的な文献のレビューなど、さまざまなタスクに適用可能な汎用性の高いフレームワークであり、さらに多くのシナリオに拡張することができます。今後、大規模言語モデルの利用が増えていく中で、ファクトチェックはますます重要になります。FacToolのようなファクトチェックをするフレームワークが、今後、急速に求められてくるかもしれません。
この記事に関するカテゴリー