先日、LLMに関する記事を読んでいた際に、Metaから1月下旬に発表された「Self-Rewarding Language Models」という興味深い論文を発見しました。この論文では、新しいLLMのチューニング手法「Self-Rewarding」を紹介しています。Self-Rewardingは名前の通りに、LLMが自分自身へ報酬を与えて、チューニングすることです。
この手法は、従来の「RLHF」を改善したようなものです。RLHFは、人間がLLMのoutputにスコアをつけて、このスコア付けされたデータを基に、LLMの出力を評価できる教師モデル(reward model)を作成します。その後、この教師モデルの評価を参考してLLMをトレーニングします。(RLHFはGPTモデルを訓練際に、非常に効果がよかったので、その後はほとんどLLMのトレーニングで使われる手法です。)
Self-Rewardingもoutputを評価するステップありますが、評価用のモデル(reward model)はLLM自身となります。
処理の流れとしては、まず、LLMがランダムな問題を生成し、次にその問題に自ら解答します。その後、自分の解答に対して自分自身でスコアをつけ、そのスコアに基づき自身のパラメーターを調整してトレーニングを行います。あと、この生成されたデータもトレーニングデータセットに追加します。このように自己トレーニングのサイクルを繰り返すことで、モデルの精度を徐々に向上します。
イメージとしては以下の通りです。(LLMが自分で作成した質問に回答を生成し、自分で評価して学習データに追加します。)
このSelf-Rewardingの研究は、MetaがLlama-70Bモデルを使って行われました。Self-Rewardingでトレーニング前のLlama2-70Bの精度はAlpacaEval2というオープンランキングで約13%だったですが、3回(3epoch)の訓練を経て、その精度は約20%に向上し、GPT-4の旧バージョンやGemini Proなど多くの既存LLMを上回りました。
この研究はまだ始まったばかりですが、LLMの自己チューニングはこれから非常に期待できる分野だと思います。最近ツイッター上でも、RAGを使ってLLMをfine-tunningする方法も話題になっているようです。(LLMが自分で生成したoutputを使ってRAGし、RAGからの結果に基づいて生成された内容が良いかどうかを判断して、自分のパラメーターをチューニングすること)
興味ある方: