- Google DeepMindのSCoReは、外部フィードバックなしでLLMが自分の回答を直す能力を高めるために、モデル自身が生成した修正軌跡から学習するマルチターンのオンライン強化学習アプローチである
- 既存のSFT方式は、学習データ上の誤りと実際のモデルの誤りがずれる分布不一致、または2回目の回答でほとんど修正しなくなる行動崩壊に弱い
- SCoReは、1回目の試行の分布をベースモデルに近く保つよう制約したうえで、2回目の試行を改善するよう初期化し、その後reward shapingで実際の修正行動を強化する
- Gemini 1.0 ProとGemini 1.5 Flashの実験では、ベースモデル比で自己修正性能がMATHで15.6%p、HumanEvalで9.1%p改善した
- プロンプティングやオフラインSFTだけでは内在的な自己修正は安定して生じにくく、自己生成データ上で崩壊を防ぐ強化学習設計が必要である
SCoReが狙う自己修正の問題
- LLMは数学やコーディングのような推論タスクで有用だが、テスト時に自分の回答を見直して直すメタ戦略を安定して実行できない
- 自己修正とは、モデルが初期応答を再検討し、より良い最終応答へ変える能力である
- この研究は、外部入力なしにモデルが自分の回答を直す内在的自己修正の設定に焦点を当てる
- テスト時には正解チェッカーや外部フィードバックを使わない
- 学習中には、モデル出力が正解かどうかを評価する報酬関数にアクセスできると仮定する
- SCoReは別の修正モデルを使わず、1つのモデルが最初の応答と誤り修正の両方を行うよう学習する
既存アプローチが行き詰まる点
- プロンプティングだけで自己修正を促すと、複数の先行研究でむしろ性能が下がり得ることが示されている
- 一部の方式は、正解、テストケース、より強いモデル、人手アノテーション、別のrefinementモデルといった追加条件に依存する
- SFTベースのアプローチは自己生成された修正軌跡を活用できるが、実験では大きな正の自己修正効果にはつながらなかった
- MATHの比較実験には、STaRとPair-SFTの変種が使われた
- STaRは、誤った応答をうまく修正した軌跡だけを残してSFTを行う
- Pair-SFTは、誤った応答と正しい応答を組にした合成repair traceで単一モデルを学習する
SFTベースの自己修正実験結果
- Gemini 1.5 FlashベースのMATH実験では、ベースモデルは1回目の試行の正解率が52.6%、2回目の試行の正解率が41.4%で、-11.2%p悪化した
- Pair-SFTは2回目の試行の正解率を54.2%に上げたが、1回目の試行に対する改善幅は1.8%pにとどまった
- STaRの基本設定では、1回目の試行が55.4%、2回目の試行が41.2%で、-14.2%p低下した
- correct-to-correctデータを追加したSTaRではΔ(t1,t2)が0.4%pに改善したが、自己修正効果は小さい
- correct-to-correctデータを追加したPair-SFTでは、1回目の試行と2回目の試行がどちらも55.0%となり、回答を変えない方向に偏った
2つの失敗モード
- SFTベースの手法は分布不一致に弱い
- 学習データは、ベースモデルが生成した1回目の試行の誤りに合わせられている
- 学習済みモデル自身が生成した1回目の試行の誤り分布では、修正性能が落ちる可能性がある
- Pair-SFTは、固定された初回応答の集合ではcorrection accuracyが上がるが、学習者自身が生成した初回応答では自己修正の正解率が悪化する
- 行動崩壊が起きると、2回目の試行で実質的な修正をしないか、非常に保守的にしか修正しなくなる
- edit distance ratio分析では、STaRとSFTモデルはしばしばほとんど修正しないパターンを示した
- 標準的なマルチターンRLは2回の試行の性能をどちらも上げられるが、1回目と2回目の試行の差Δ(t1,t2)を広げられず、自己修正能力につながりにくい
SCoReの学習構造
- SCoReは自己生成のオンラインデータから学習し、分布不一致を減らすon-policyマルチターンRLアプローチである
- 基本のRL学習には、固定モデルに対するKL-divergence penaltyを含むREINFORCE方策勾配法が使われる
- Stage Iは、2回の試行の行動を分離するための初期化段階である
- 1回目の試行の分布はベースモデルに近く保つようKL制約を置く
- 2回目の試行は高い報酬を得るよう学習する
- 目的は、2回目の試行でより良い応答を探索できる初期方策を作ることにある
- Stage IIは、2回の試行をまとめて最適化する
- 2回目の試行の報酬にprogress bonusを追加する
- 2回目の試行が1回目の試行より正解かどうかを改善したとき、ボーナスが強化される
- 正解だった初回応答を誤答に変える遷移は、強い負の効果を受ける
reward shapingが必要な理由
- 標準的なRL目標だけでは、異なる2つの戦略がどちらも成り立つ
- 1回目の答えを2回目の答えで改善する戦略
- 1回目の答えをできるだけ良く作り、2回目ではほとんど修正しない戦略
- 学習データ上ではどちらの戦略も良く見え得るが、後者は新しい問題で自己修正として一般化しない
- SCoReのreward shapingは、最終的な正解性だけでなく正解性の変化を報酬に反映する
- この設計は、単に高報酬の答えに合わせるのではなく、誤った初回応答を正しい2回目の応答へ変える行動を強化する
性能と例
- SCoReはMATHで、算術ミスと推論ミスを2回目の試行で直す例を示している
- 算術の例では、モジュラー乗算計算で最初の答え1を2回目の試行で3に修正する
- 推論の例では、関数の値域の個数を問う問題で最初の答え∞を2回目の試行で3に直す
- Gemini 1.0 ProとGemini 1.5 Flashで、SCoReは最高水準の自己修正性能を達成した
- ベースGeminiモデル比の自己修正改善幅は、MATHで15.6%p、HumanEvalで9.1%pである
- MATHの推論時scaling実験では、サンプルを並列の直接生成だけに使うより、逐次的な自己修正に使う方式のほうが効果的な領域が現れた
実務上の含意
- 自己修正の学習は、正しい回答データを集めてSFTする方式だけでは扱いにくい
- モデルがテスト時に自分で作った誤りを直す必要があるなら、学習中にもモデル自身の応答分布から修正行動を学ぶ必要がある
- SCoReの重要な制約は、学習中には正解かどうかを評価する報酬関数が必要だが、テスト時にはその報酬を使わない点にある
- 単一モデルでのデプロイを維持しながら自己修正能力を高めるには、別の修正モデルやteacher supervisionなしでも、マルチターンRLと崩壊防止の報酬設計が必要である
1件のコメント
Hacker News の意見
OpenAI の o1 モデルと似たアプローチに見えますが、o1 の論文は公開されていないため引用はありません。
残念ながら、重みの公開についての言及は見当たりません。
o1 もそうだった可能性はありますが、より大きな変化は、プロンプトを受け取った後、確定回答を出す前に言葉で「考え」、実行時に再調整するランタイムの思考プロセスだと思います。
この理解が正しければ、2つのアプローチは似ていません。OpenAI は ChatGPT の初期バージョン以降、すべての後続モデルに強化学習を使ってきたと理解していますし、そもそも UI でフィードバックを残せる理由もそのためです。
論文が中心的な主張を直接説明するというより、周辺をかなり回り道しているため、少し理解しにくかったです。私の理解では、難しい問題に対して LLM がより正確な答えを出せるようにすることが目的です。
1つの仮説は、モデルに自己修正の振る舞いを学習させ、誤った答えを入力として受け取り、より良い答えや正解へ改善できるようにする、というものです。
以前にも、修正後の答えの品質を報酬とするさまざまな強化学習手法でこの振る舞いを学習させようとしましたが、うまく機能せず、学習された振る舞いも十分に汎化しませんでした。
この論文の要点は、モデルが
Answer 1, Reasoning, Corrected Answerという学習例と「Corrected Answer をより良くせよ」というシグナルを受け取ったとき、実際には完全に可能な解法が2つある、という点にあります。1つは私たちが望むようにReasoning, Corrected Answerを改善すること、もう1つは単にAnswer 1自体を改善してCorrected Answer=Answer 1になるようにすることです。既存研究では後者が実際に起きており、そのため望ましい振る舞いの学習に失敗したのだと見ています。モデルは修正の振る舞いを改善するのではなく、単に最初の答えを改善しようとするのです。
この論文の解決策は、学習手順を少し変えて前者のアプローチを促すことです。つまり、以前の答えを直すという望ましい振る舞いを実際に学習させようとする試みです。
学習は2段階で進みます。第1段階では、KL ダイバージェンス損失で最初の答えをそのまま維持するよう強制しつつ、2つ目の答えを改善すれば報酬を与えます。こうすると初期回答の分布が維持され、後で誤答がモデルから学習によって消えて「誤った答え」をあまり見なくなる問題を避けながら、自己修正の振る舞いをモデルに初期化できます。
第2段階ではモデルが最初の答えも変えられますが、報酬関数を調整し、最初の答えは悪く、2つ目の答えは良いという反転により高い報酬を与えます。この段階では、最初の答えを改善する戦略と自己修正を改善する戦略の両方を使えますが、後者により大きな報酬が行きます。全体の性能を磨き込みつつ、自己修正の振る舞いを維持しようとする精製プロセスのように見えます。
指標上は、この手法のほうがよりうまく機能し、よりよく汎化するとされています。
ただし第2段階で、モデルが反転報酬を最大化しようとして
Answer 1をわざと悪く書く方向を学習しないか、少し心配です。Answer 1が悪化しないようなバランス機構が必要なはずですが、それが報酬関数に入っているのか、あるいは実際に有効な懸念なのかはよく分かりません。Answer 1自体を改善してCorrected Answer=Answer 1になるようにすること」という部分が何を意味しているのか気になります。Answer 1を改善することがそもそもの目標ではないのでしょうか?説明だけ見ると、Answer 1は入力ではなく LLM の出力のように聞こえます。LLMは、自分の学習過程における感覚的経験を直接記憶できない。私が自分を修正する主な方法の一つは、何かについて話そうとするときに、自分がそれをどうやって/なぜ知っているのかを検討し、実際に知っているのか、でっち上げているのか、それとも信頼性の低い出典から聞いたのかを見極めることだ。
LLMが何らかの形で自分の学習を記憶できないなら、自己修正は難しいと思う
そして最終モデルを後学習して、どのテキストをどこで読んだのかを記憶させたり、読んだことのないテキストが出てきたらどんな経験も思い出せないようにしたりするのか?
誰かがこれを試して成功したら、博士課程を辞めてキャンプカウンセラーに戻るよ
要旨によると、LLMにそのような能力を持たせるために出典認識学習を探っている。具体的には、(i) 各文書の知識を一意の出典文書識別子と結び付けるようにLLMを学習させ、続いて (ii) プロンプトが与えられたときに、根拠となる事前学習の出典を引用するよう指示チューニングする方法である
これも参考になる: https://www.sciencedirect.com/science/article/pii/S1571064523001094
o1の学習方法は、この定式化ではstrange particleモデルとして説明される
たとえコンピュータサイエンスのように体系内にある知識であっても、時間が経つと感覚的経験は背景へと薄れていく。たとえばコンピュータサイエンスに携わる人々と同じく、私もかなり多くのアルゴリズムのO()性能特性を即座に言えるが、特定のアルゴリズムをどこで学んだのかは、とっくに曖昧になっている。
人が自分を修正するときの一般的な過程は、「自分がこれを知っているかを見極める」とか「信頼性の低い出典から聞いたのかを思い出す」といった大げさな作業ではない。普通は「完全には理解していなかった」というぼんやりした感覚があり、自己修正とは信頼できる出典で情報を確認し直すことだ。
だから、記憶の想起において感覚的経験が思われているほど重要だとは見ていない
ネタバレ: 自己回帰的な次トークン予測パラダイムでは幻覚をなくせない。いわゆるLeCunの法則だ。
ここでの問題は、人々が言語モデルを、それが実際に得意な半創造的なテキスト生成ではなく、決定論的な問題解決器として使おうとしている点にある
その場合、あまり確信に満ちた回答をしないように学習させることで、幻覚しようとする傾向を減らせるかもしれない
人にはこう説明することが多い。広報部門だけがある会社を想像してほしい。プレスリリースを作り、記者の質問に答える能力は非常に高いが、会社の他の部分がないので、出力テキストを意味のある形で制約するものがない。
もし人々がこれを理解している別の宇宙だったなら、LLMは深刻な用途にはまったく使われず、面白い小さなアートプロジェクトに多く使われていただろう
核融合は一度だけきちんと解ければよい
これは実質的に、何らかの形の知識蒸留なのか?
AI批評家たちが幻覚という表現を一般に広めたのが嫌いです。統計の塊を擬人化して、まるで人間の心に似た深い思考プロセスを行っているかのように見せてしまうからです。
いいえ、「幻覚」を見ているわけではありません。嘘をついたり、でっち上げたりしているわけでもありません。underlying weights が引き起こすままにデータを吐き出しているだけです。
これが一般的な JSON API エンドポイントだったなら、API が幻覚を見ているとは言わず、壊れているのだから「この API はひどい」と言ったはずです。
どんな神経系も学習データを完全には保存できないため、私たちは皆、ある程度は作話しています。
一方で、人間の「幻覚」は感覚フィードバック・ループの特定の崩壊に近いものです。LLM にはそもそもそのようなプロセスがありません。
幻覚は、内部の感覚フィードバック・ループが実際の感覚入力を圧倒し、偽の感覚経験や信号の流れが生成され処理されるときに起こります。その偽の進行中の経験には、実際の感覚情報が一部含まれる場合もあれば、含まれない場合もあります。
夢を見ているとき、私たちは幻覚を見ています。実際の感覚から切り離された感覚経験のループが自由に回りますが、生産的な目的もあります。
感覚にフィードバックがある理由は、感覚入力に対する解釈を手がかりにして、次の瞬間の入力の解釈を容易にするためです。しかし新しい入力が期待から大きく外れた場合、進行中の解釈をリセットし、素早く方向を取り直すことが重要です。
実際の文脈の変化に合わせて誤った解釈を修正するには、生の入力解釈へ戻ることが重要であるだけでなく、こうしたリセットは新しいことや予想外のことが起きたという信号でもあるため、学習を引き起こす可能性も高くなります。
だから「幻覚」という用語の選択は不運で、誤解を招くものでした。
LLM 以前にこの意味で使われた論文の例は次のとおりです。
2021: The Curious Case of Hallucinations in Neural Machine Translation (https://arxiv.org/abs/2104.06683)
2019: Identifying Fluently Inadequate Output in Neural and Statistical Machine Translation (https://aclanthology.org/W19-6623/)
知的なアルゴリズムで、愚かな非知能的な次単語予測器を導いても、結局は非知能的なアルゴリズムにすぎません。
ゴミをより優雅に分類しているのは確かですが、結局ゴミであることに変わりはありません。
強化学習に似たアプローチが Transformer に似たアプローチを置き換えることを望んでいましたが、それはむなしい夢に近いものです。