先日、Google DeepMind社の研究者が、強化学習を用いた自己修正(Self-Correction via Reinforcement Learning, 以下 SCoRe)に関する論文を発表した。このSCoReとは、数学やコーディングの問題を解く際の大規模言語モデルによる自己修正能力の向上を図る技術である。SCoReで微調整されたモデルは、ベースラインモデルと比較で、いくつかのベンチマークの性能が向上した。
プロンプトエンジニアリングや独立した「教師」モデルに依存する従来の自己修正手法とは異なり、SCoReでは、大規模言語モデル自身で生成したデータを用いて自己修正トレースを生成する。この自己修正トレースは、合成ダイアログであり、大規模言語モデルが誤った回答をすると修正プロンプトが表示され、その後に大規模言語モデルが正しい回答を生成する。このデータは、大規模言語モデルを微調整するための2段階の強化学習プロセスで使用される。ベースラインのGemini 1.0モデルと評価を比較したところ、微調整された大規模言語モデルは、MATHベンチマークで15.6ポイント、HumanEvalで9.1ポイント向上した。Google社は、以下のように発表している。
建設的な自己修正を得るには、慎重な初期化と報酬形成に基づく2段階プロセスが重要です。このことは、より一般的に、大規模言語モデルが微妙な差異の扱い方を学習し、テスト時に初見のクエリに対してうまく汎化を行えるようになるようには、何らかの制限を設ける必要があることを示唆しているのかもしれません。
DeepMind社のチームは、他の手法の欠点を調査した上で、SCoReを開発した。同チームは、プロンプトエンジニアリングだけで、既存モデルの自己修正が成功することを示す「主要な研究はない」と述べた。教師ありファインチューニング(SFT)でモデルを改善する場合、人間またはより強力な大規模言語モデルによる修正が必要なことが一般的だ。自己生成された修正に対して教師ありファインチューニングを使用する手法では、「モデルのバイアスが『助長される』ことが多く、」修正しないようになるか、あるいは、「分布シフトに苛まれる」ことになる。
SCoReによる訓練段階 画像出典:Google DeepMind社 研究論文
SCoReは、2段階の強化学習プロセスを使用することで、これまでの手法を改良している。第1段階では、モデルは初期応答を変えずに、2回目の試行で正しい応答を生成するように訓練される。第2段階では、モデルが正解した場合、両方の応答で報酬が与えられ、2回目の回答が改善された場合にはボーナス報酬が与えられる。モデルに 「1回目の試行でベストな応答を生成し、2回目はわずかに編集するだけでよい 」と学習させないようにすることが目的である。
RedditでのSCoReに関する議論では、あるユーザーがこう述べている。
全体を通して、修正方法が学べるのは興味深いです。ですが、いくつかの例題の2回目、4回目、5回目を通して、今回の試運転でどのような改善が見られたのかが確認できればよかったです。公式発表にはありませんでしたが、2回目で大きな変化が得られる一方で、それ以降の試行では成果が減っていってしまうとも捉えられるからです。
Hacker Newsでの議論では、ユーザーがSCoReとOpenAIによるオムニモデルの微調整を下記のように比較した。
OpenAIの見解では、o1の思考回路を活用するために必要なブレークスルーの1つに、誤った推論の修正方法を教える強化学習があります。AIの見解は今回の議論と驚くほど似ており、1回目の試行で正解を得ようと「泥沼化」するのではなく、自己修正手法(前回の試行から学習や改善をする手法)をモデルに学習させるトレーニング方法を見つける難しさが論じられています。
InfoQでは、今年初めにOpenAIのオムニモデルのリリースを取り上げた。また、ChatGPTの生成したコードを改善するために、OpenAIが大規模言語モデルを利用し、トレーニングデータを生成したことも取り上げている。