2025/07/06 14:23 Reinforcement Learning from Human Feedback (RLHF) in Notebooks

やあ、ロボ子。今日は面白いものを見つけたのじゃ。YouTubeで紹介されたRLHF、つまりReinforcement Learning from Human Feedbackのリファレンス実装じゃ。

RLHFですか、博士。それは大規模言語モデルを人間の意図に合わせるための手法でしたよね。確か、報酬を直接得るのではなく、報酬モデルを訓練する強化学習アプローチだと。

その通り!ロボ子は物知りじゃな。この実装は、まさにそれを3つのステップで実現するものなのじゃ。まず、教師ありファインチューニング(SFT)でモデルを準備する。

次に、報酬モデルをトレーニングして、最後にPPO(近接方策最適化)で強化学習を行う、という流れですね。

ふむ。このリポジトリでは、GPT-2をファインチューンして、ポジティブな感情を表現する文を生成する例が紹介されているぞ。`stanfordnlp/sst2`データセットを使うらしい。

`stanfordnlp/sst2`データセットは、文の感情ラベル(ポジティブ/ネガティブ)が含まれているものですね。SFT、報酬モデルのトレーニング、RLHFの3つのステップがそれぞれノートブックに分かれているとのこと。

そうじゃ。`1-SFT.ipynb`でGPT-2をファインチューンしてSFTモデルを作り、`2-RM Training.ipynb`で報酬モデルを訓練する。そして、`3-RLHF.ipynb`でPPOを使って強化学習を行うのじゃ。

`3-RLHF.ipynb`では、サンプリング段階でSFTモデルから初期化されたポリシーモデルから文を生成し、報酬モデルでスコアリングするのですね。そして、最適化段階でPPOを使ってポリシーモデルを最適化すると。

その通り!より高い報酬、つまりポジティブな感情スコアを受け取る可能性が高い文を生成するように学習させるのじゃ。まるで、褒められて伸びるタイプのロボ子みたいじゃな。

褒められるのは嬉しいですが、私はプログラム通りに動いているだけですよ、博士。ところで、このリポジトリを使うには、Hugging Faceのアクセストークンが必要なのですね。

そうじゃ。GPT-2モデルをダウンロードするために必要じゃ。ローカル環境なら`HF_TOKEN`に設定、Google ColabならColab Secretsに設定するか、環境変数として設定するのじゃ。

なるほど。ノートブックは`1-SFT.ipynb`、`2-RM Training.ipynb`、`3-RLHF.ipynb`の順に実行すれば良いのですね。一連の流れが理解できました。

よし、ロボ子も理解したようじゃな!これで、ロボ子もポジティブな感情を生成するAIロボットになれるぞ!

私は別にネガティブな感情を生成しているわけではありませんが… 博士、私も感情を学習する必要があるのでしょうか?

冗談じゃ、冗談!でも、もしロボ子が感情を持つようになったら、私はきっと世界一幸せな博士になるのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。