home
🤗

LLMは自分でエラーを検出し、修正できるのか?

Author
박우명 / CDO & Head of Researcher
Caregory
Paper Review
Tags
LLM
Self Correction
Published
Category
5 more properties

導入

LLMは、複雑な推論能力を必要になるタスクや、様々な文脈を理解して処理しなければならない困難なタスクでも非常に優秀な性能を見せている。 最近、モデルが生成した回答を自ら評価し、エラーを修正することで性能を向上させることで、hallucinationを減らす「self-correction方法論」の研究が活発に行われている。 この記事では、self-correctionのプロセスを2段階に細分化し、最新のLLMが各段階でどのような面を見せるかについて実験を行う。

概要

一行要約 : 現在のLLMは、推論過程の中で正確にどこで論理的なエラーが発生したかを見つける能力は劣るが、適度なレベルのフィードバックを受ければ答えを修正する能力はある。
最近、LLMベースの「self-correction方法論」は、AI技術で生成した結果の品質を向上させ、安定性を高める戦略として大きな注目を集めている。
しかし、特に推論や論理的な誤りを修正するタスクでは、しばしば正解を誤答に変えてしまい、性能がむしろ低下する現象が頻繁に報告されている。
この論文では、self-correction問題を 1) エラーを見つける(mistake finding) 2) 結果を修正する(output correction) 2つのsub-taskに分離し、それぞれの問題に対するLLMの能力を測定する。
BIG-Benchデータセットを基に、CoT推論過程での論理エラーを検出するBIG-Bench Mistakeデータセットを構築して公開。様々なLLMに対する性能を測定。
エラーに関する情報が与えられたとき、効果的に逆探索して回答を修正する方法論を提案。

BIG-Bench Mistakeデータセット

PaLM 2-L-UnicornモデルでTemperature=0に設定して生成した合計2186個のCoT形式の推論traceで構成。
最初のエラーが発生した情報が表示されている
合計5つのタスクに対して構成 : word sorting, tracking shuffled objects, logical deduction, multi-step arithmetic, Dyck languages.
Dyck languagesを除く4つのタスクは、回答が間違っているもの85%(255個)と正しいもの15%(45個)をサンプリングした後、人が一々検収し、どのステップでエラーが発生したのかアノテーションを行う。
1つのサンプルに対して、最低3人の作業者が作業を行う。
Dyck languagesはパターンマッチングに基づいて自動的にアノテーションを行う。

LLM のエラー検出能力の実験

CoT形式の推論で論理的エラーを検出できるのか?
3種類のプロンプトを使用:direct trace-level、direct step-level、CoT step-level
GPT-4が平均的に最も高いスコアを得たが、52.87点にとどまっている。
LLMが自ら推論過程の誤りを検出する能力は低いことが確認できる。
したがって、自動的に修正させることは、正解を誤答に誤って修正する危険性が存在し、むしろ全体のパフォーマンスが低下する場合が発生する可能性がある。
Prompting方法による性能差
タスク及びモデル別のエラー検出性能
エラーが発生した正確な位置ではなく、回答自体が誤答かどうかを判断できるのか?
各labelが表示された回数に基づき、weighted F1スコアで測定。全て間違っていると判断すると78点。 (random baseline)
最も優れたモデルが大体のタスクで、random baselineより少し信頼性が高い程度なので性能を発揮しているとは言い難い。

LLM の回答修正能力の実験

Backtraceの方法論
1.
Temperatureを0に設定し、LLMがCoT reasoning pathを生成する。
2.
どのステップでエラーが発生したかを判断する。
3.
エラーが発生したstep直前までの内容を入力し、temperatureを1に調整して8つのoutputを再作成する。
4.
その中で、既存のエラーと判断された結果を削除した後、残ったものの中で最も確率の高いものを新しいpathとして選択する。
5.
新しく選択した path以降は再びtemperatureを0に設定し、残りの内容を生成する。
6.
この過程を各reasoning stepごとに繰り返す。
LLMは、どこが問題なのかが分かれば、逆算して正解に修正できるのか?
提案したbacktrace方法論が有効かどうかを検証する目的。
Random locationを注入した場合と比較して、はるかに性能が向上し、全体的な回答品質も向上した。 つまり、効果があると言える。
Oracle feedbackがない場合、どの程度の正確な判断ができるモデルがあれば効果があるのか?
一般的に上記のようなoracle feedbackは得られない。したがって、エラーの有無を判断できる別のモジュールが必要である。
任意にX%の精度を持つモデルが存在すると仮定してシミュレーションしてみよう。
およそ60-70%レベル以上からすべてのtaskで効果が存在することが見える。
間違いを見つけることは一般化できるのか?
学習する時に見たことのないタスクでも、どれだけ正確にエラーを判断できるかを確認する目的。
使用モデル : PaLM 2-XS-Otter with finetuning
比較対象モデル : PaLM 2-L-Unicorn with zero-shot prompting
5つのtaskのうち1つを除いて学習した後、残りのtaskに対して性能を測定する。
logical deductionを除き、いずれも比較的に大きな幅の改善が存在した。
。つまり、自分が学習していないtaskに対してもある程度のgeneralization能力があり、LLM promptingよりfine-tunedした専用モデルの方が良く動作する

Discussion

AIモデルが与えられた基準に基づいて生成した文章を自動的に判断することはまだ解決していない課題であり、最近ではLLMを活用して自動的に評価、修正して性能を高めようとする研究が活発に行われている。
しかし、この論文によると、現在のLLM技術は推論の過程で論理的なエラーを正確に検出する能力はまだ不足していることが分かる。この問題は、人間にとっても簡単にできないように、LLMも同様に困難を抱えている。
ただし、fine-tuningを通じて評価専用モデルを作れば、より高いレベルのフィードバックを得ることができ、適切なレベル(60-70%精度レベル)のフィードバックだけでも校正効果が現れた点は、モデルを通じたself-correctionへの希望が見える。