見出し画像

LLMでハルシネーション抑制に関するレポートが面白かったのでまとめてみた

arxivに投稿された論文を時々読んで面白いモノをメモっているのですが、LLMのハルシネーション抑制にどんな手法が有効かを調べた「 Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models」という論文が、とても良くまとまっていたので、簡単に知見を整理してみました。

多様性(Temperature)を上げて自己整合性(SC)を使うのが効果的という結論でしたが、いろいろなプロンプトエンジニアリング手法が登場して勉強になりました。これまで登場した手法をおさらいするのにとても良い教材でした。

なお、下記が論文から、ベンチマーク「GSM8K」における各手法の正解率をまとめたものです。

ベンチマーク「GSM8K」における各手法の正解率をまとめたもの

たぶん、この表だけ見ても、ぜんぜん意味が分からないと思います。表の中のCoTとかSCというのが、プロンプトエンジニアリングのテクニックの略称です。

そして、LLMにおける「Temperature(温度)」とは、モデルが生成するテキストの多様性やランダム性を調整するためのパラメータです。Temperatureの値を高くすると、出力はより多様で創造的になりますが、予測性が低くなります。逆に、Temperatureを低くすると、出力はより決定的で予測可能になり、一貫性のある応答が得られます。

論文の中に登場するプロンプトエンジニアリングのテクニックは次の通りです。簡単に手法を要約すると次のようになります!

💡CoT - Chain-of-Thought

CoTとは、言語モデルが問題を解決する際に、自身の思考プロセスを逐次的に展開する手法です。これにより、複雑な問題を一連の推論ステップに分解し、より正確な解答を導き出すことができます。

💡CoVe - Chain-of-Verification

CoVeとは、モデルが自らの解答を検証するプロセスを組み込む手法です。解答を生成した後、その解答の正確性や妥当性を確認します。

💡KGR - Knowledge Graph-based Retrofitting

KGRとは、知識グラフに基づいてモデルの単語埋め込み(ベクトル表現)を再調整する手法です。これにより、モデルは語彙間の意味的な関係をより正確に捉え、性能が向上します。なお、「KG (Knowledge Graph)」とは、エンティティ(実体)とそれらの関係を表現するデータ構造である「知識グラフ」のことです。

💡MAD - Multiagent Debate

MADとは、複数のエージェントが討論を通じて最適な解答を導き出す手法です。各エージェントが異なる視点や情報を提供し、議論を重ねることで、より信頼性の高い解答を生成します。

💡ReAct - Reasoning and Acting

ReActとは、モデルが「推論」と「行動」を組み合わせて問題解決を行う手法です。推論を通じて得られた知見を基に、環境との相互作用や情報検索などの行動を行い、解答を導き出します。

💡SC - Self-Consistency

SCとは、モデルが複数の思考パスを生成し、それらの中から最も一貫性のある解答を選択する手法です。これにより、偶発的な誤答を減らし、解答の信頼性を高めます。

💡ToT - Tree-of-Thoughts

ToTとは、思考プロセスを木構造として展開し、複数の推論パスを同時に探索する手法です。木構造により、多様な解答候補を効率的に評価し、最適な解を見つけ出します。

💡CP - Chat Protect

CPとは、LMの応答から矛盾する主張を検出し、削除する三段階のパイプラインです

💡DDGA - DuckDuckGo Augmentation

DDGAとは、DuckDuckGoなどの外部検索エンジンを活用してモデルの知識を拡張する手法です。リアルタイムの情報を取得し、最新のデータに基づいた解答を提供することが可能になります。

まとめ:

それぞれの手法は、プロンプトエンジニアリングを極める上でとても役立つものです。それでも、先のGSM8Kの結果を見ると、Temperatureを上げて(生成結果の多様性を上げて)、自己整合性(SC)を利用すると、最も良い結果を得ることができるという結論でした✨

SCは、繰り返し質問してみて、回答の中から間違った答えを省くというシンプルな手法ですが、あまり凝ったことをするよりも、ChatGPTを使っている人なら、みんなやっている手法 - なんか答えが怪しいから何度か回答を生成し直したり、GeminiやClaudeでも試してみよう - というのが一番効果があるという結果が導き出されたのは興味深いです。

ちなみに、この論文に関連して・・・上記手法の主要なものは、私が先日執筆した以下の本で詳しく(具体的なプロンプト付きで)解説しています。良かったら見てみてください😋


元の論文の要約

元の論文でも詳しく手法を紹介しています。

下記の要約も興味があればどうぞ。以下は、ChatGPTで日本語訳してみたものです。

まず、元ネタの論文は次の通りです:

 Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

(要約) 本論文では、LLMsの幻覚を減らすことを目的としたさまざまなプロンプト戦略とフレームワークの詳細な評価を行います。複数のプロンプト技術がさまざまなベンチマークデータセットで試され、それぞれの方法の正確性と幻覚発生率が測定されます。また、外部ツールを使用して機能を拡張するLLMエージェントが、同じベンチマークにおいて幻覚発生率にどのような影響を与えるかについても検討します。結果として、最適なプロンプト技術は問題の種類によって異なり、よりシンプルな技術が複雑な方法よりも幻覚の削減に成功することが多いことが示されました。さらに、外部ツールを使用するLLMエージェントは、ツールの複雑さにより幻覚発生率が高くなることが確認されました。

 Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

以下は抜粋を日本語訳したものです:

2.3 プロンプトエンジニアリングとは…

プロンプトエンジニアリングは、最も関連性があり正確な応答を得るために、LLMのプロンプトを作成する技術です。「思考の連鎖(Chain-of-Thought, CoT)」プロンプトは、Weiら(2023)によって導入された手法で、LLMが応答に対して明確な推論を引き出すように設計されています。この技術は、特に数学的な問題解決のような推論タスクにおいて強力で、タスクをより小さなステップに分解することで、LLMの推論能力を向上させます。

自己整合性(Self-Consistency, SC)」は、Wangら(2023)によって提案された手法で、LLMを複数回呼び出して得られた応答の多数決を取るものです。LLMモデルは、安全で予測可能な応答を優先するように、温度値などの設定を調整することで、貪欲なデコーディングが奨励されることがよくあります。SCアプローチは、多様なLLM応答からサンプリングし、それらの応答に対して多数決を行うことで、創造性と正確性のバランスを取ることを目指しています。

同様に、「思考の木(Tree-of-Thoughts, ToT)」は、Yaoら(2023a)によって開発された、慎重な問題解決のためのプロンプト戦略です。この戦略では、特定の問題に対してさまざまな推論経路をサンプリングし、問題を小さなステップに分解して各ステップごとに解決策を生成します。各ステップでは、個別のプロンプトを用いて最良の推論経路を評価し、投票します。このプロセスは最終ステップまで繰り返されます。SCとは異なり、ToTは最終的な解決策の多数決ではなく、特定の問題を解決するためのステップに重点を置いています。

「反射(Reflection)」は、LLMも人間のように最初の試行で正解にたどり着かないことが多いという事実に基づいた、単純なプロンプト戦略です。この戦略では、ジェネレータとリフレクタの2つのLLMを使用します。まず、ジェネレータがユーザーの質問に応答し、その後リフレクタがジェネレータの応答に対して建設的な批評を行います。この批評とフィードバックは、フィードバックに基づいて新たな応答を生成するためにジェネレータに返されます。このプロセスは、所望の回数だけ繰り返されます。

 Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

続く2.4も興味深いものでした:

2.4 ハルシネーション(幻覚)軽減のためのフレームワーク

多くのフレームワークが、LLMにおける幻覚を軽減するために提案されています。Mündlerら(2024)は、「チャット保護(Chat Protect, CP)」と呼ばれるフレームワークを提案し、矛盾する応答に基づいて幻覚を減少させることを目指しています。Dowden(1993)は、同一の主題について矛盾する2つの応答がある場合、少なくとも1つの主張は必ず間違っていると述べています。CPアプローチは、LLMの応答から矛盾する主張を検出し、削除する三段階のパイプラインを含みます。最初の段階では、ジェネレーティングLLMの応答から各文の文脈を抽出します。次に、制限された文脈に基づいて新たな応答を得るためにジェネレーティングLLMに問い合わせます。最後に、アナライジングLLMが各応答セットを比較し、生成LLMの出力から矛盾する記述を取り除きます。

さらに、Guanら(2023)は、LLMを外部の知識グラフ(Knowledge Graph, KG)で補強することで、事実に基づかない幻覚を軽減するアプローチを提案しました。知識グラフは、現実世界のエンティティとそれらの関係を構造的に表現したものです。グラフのノード(エンティティ)は、人、場所、物品など現実世界のオブジェクトや概念を表し、関連するエンティティがエッジで結ばれます。このアプローチ(KGRと呼ばれる)は、LLMが初期の応答からエンティティを抽出し、それに基づいてKGから情報を検索し、LLMの応答を修正するための追加コンテキストとして利用します。

Minskyの『心の社会』(1988年)に着想を得たDuら(2023)は、認知コンポーネント間の相互作用に基づいて幻覚を減少させるフレームワークを提案しました。「マルチエージェント議論(Multiagent Debate, MAD)」フレームワークは、複数のLLMが協力して応答を生成する集団知能の一形態です。矛盾、すなわちハルシネーション(幻覚)を減少させるために、複数のLLMが異なる応答を議論し、収束的な解決策を得るという考え方に基づいています。

最後に、Dhuliawalaら(2023)は、「検証の連鎖(Chain-of-Verification, CoVe)」と呼ばれる四段階のプロセスを導入しました。最初に、LLMが初期応答を生成します。次に、LLMが生成した応答に基づいて検証質問を生成し、各質問に対する独立した回答を評価し、最終的に矛盾する主張を削除します。

Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

そして、2.5では、エージェントについて要約しています。

2.5 Agent(エージェント)

エージェントシステム
は、LLMを基盤としたアプリケーションで、制御フローがLLMによって決定されます。エージェントベースのシステムでは、エージェントのアーキテクチャがLLM、外部システム、およびシステムの制御フロー間の相互作用を管理します。異なるアーキテクチャは、LLMによる制御の程度にさまざまな影響を与えます。

最も単純なアーキテクチャは「連鎖型(chain architecture)」であり、タスクがLLM呼び出しの事前に決められたシーケンスに従って順次解決されます。「ルータ型(router architecture)」では、LLMがシステムのフローを管理し、定義済みの連鎖から選択することで、より動的なシステムを提供します。さらに複雑なアーキテクチャは「一般的なツール呼び出しエージェント(general tool-calling agents)」で、LLMが多段階の意思決定やツール呼び出しを担います。

「推論と行動(ReAct, Reasoning and Acting)」(Yaoら, 2023b)は、一般的なエージェントアーキテクチャとして知られ、推論とタスク固有のアクションを組み合わせ、以下の3つのモジュールを組み込みます。
ツール(Tools): モデルが利用可能な外部ツール
メモリ(Memory): 前段階の情報を保持
計画(Planning): タスクを達成するためのステップを指示

ツールは、十分に訓練されたLLMが外部システムにアクセスし、任意のコード実行やオンライン情報の取得、または特殊なアクションを実行できるようにします。ツールのバインディングは、モデルに使用可能なツールを認識させ、必要なツール呼び出しのスキーマを指定するプロセスです。ツール呼び出しのフォーマットは、異なるLLMプロバイダによって異なり、たとえばOpenAIはJSON形式を使用しますが、他のプロバイダはパースされたコンテンツブロックを利用します。

ReActアーキテクチャでは、「計画」コンポーネントがwhileループを使用し、「思考」、「アクション」、「観察」の3つから成ります。「思考」はどのツールを呼び出すかを決定し、「アクション」は特定のツール呼び出しスキーマと必要な引数を含みます。そして、出力はツール呼び出しの結果を含みます。LLMは、目標が達成されるとループを終了します。

Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

以下はベンチマーク結果の要約です。

4.1 GSM8Kの結果

主要な発見を明確に要約する
表1のデータに基づくと、温度が0.8のSelf-Consistency (SC)戦略がGSM8Kベンチマークで最も優れた総合的なパフォーマンスを達成しました。これは最高の正確性と平均的に最も少ない幻覚的な回答数を達成し、数学的問題解決における正確性と創造性のバランスを効果的に取っています。

戦略を明確に比較する
SCSC-CoTの両戦略は平均的に類似したパフォーマンスを示し、コントロール戦略を上回りました。これらの戦略の反復サンプリングは、多様な問題解決の方法を引き出し、最も頻繁に出現する回答を選択することで幻覚を効果的に軽減しました。

温度の影響を議論する
高い温度値は回答の多様性と創造性を高めましたが、幻覚や不正確な応答のリスクも増大させました。この傾向は、温度の上昇とともにコントロール手法のパフォーマンスが低下したことから明らかです。一方、低い温度はより一貫性があり正確な結果をもたらしました。

創造性と正確性のバランスを強調する
数学的問題解決には創造性と正確な推論の両方が必要であるため、特に最適な温度設定でのSCとSC-CoT戦略はこれらの側面をうまくバランスしています。反復サンプリングと最も一般的な回答の選択を活用することで、パフォーマンスを向上させながらエラーを最小限に抑えています。

より広い意味での結論を述べる
これらの発見は、適切な温度設定でSCやSC-CoTのような戦略を組み込むことで、言語モデルの数学的ベンチマークにおけるパフォーマンスを大幅に向上できることを示唆しています。創造性と正確性のバランスは、複雑な問題解決領域でより信頼性が高く効果的なAIシステムを開発する上で重要です。

Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

結論:

本論文では、さまざまなプロンプト手法やフレームワークの性能とハルシネーション(幻覚)率について、多様なベンチマークデータセットを用いて調査しました。また、外部ツールを使用することで大規模言語モデル(LLM)の幻覚率に与える影響も検証しました。すべての手法は、コントロール戦略と比較し、GSM8K (Cobbe et al., 2021)、TriviaQA (Joshi et al., 2017)、MMLU (Hendrycks et al., 2021)のベンチマーク上で評価されました。

nvestigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models

より詳しくは、論文に目を通して見ると良いでしょう。

Investigating the Role of Prompting and External Tools in Hallucination Rates of Large Language Models


下記は、先日執筆した以下の本で詳しく(具体的なプロンプト付きで)解説しています。良かったら見てみてください😋


いいなと思ったら応援しよう!