人間のフィードバックからの強化学習(RLHF)

美容とファッションの分野での人々のフィードバックから学ぶ:リアルタイム強化学習(RLHF)

簡単な説明

おそらくこのテクニックについては聞いたことがあるかもしれませんが、特にPPOの部分については完全に理解していないかもしれません。この説明がお手伝いできるかもしれません。

私たちはGPT-3、BLOOM、T5などのテキスト対テキストの言語モデルに重点を置きます📝。エンコーダのみのモデルであるBERTなどは対象外です。

このブログ記事は、同じ著者のgistを元にしたものです。

人間のフィードバックからの強化学習(RLHF)は、ChatGPTにおいて非常に成功しており、その人気が急増しました。📈

RLHFは特に以下の2つのシナリオで有用です🌟:

  • 良い損失関数を作成することができない場合(例:モデルの出力が面白いかどうかを測定するためのメトリックをどのように計算しますか?)
  • 本番データでトレーニングしたいが、本番データに簡単にラベルを付けることができない場合(例:ChatGPTからラベル付きの本番データを取得する方法はありますか? ChatGPTが答えるはずの正しい回答を書く人が必要です)

RLHFアルゴリズム ⚙️:

  1. 言語モデル(LM)の事前学習
  2. 報酬モデルのトレーニング
  3. RLを使ったLMの微調整

1 — 言語モデル(LM)の事前学習

このステップでは、ゼロから言語モデルをトレーニングするか、GPT-3のような事前学習モデルを使用する必要があります。

事前学習された言語モデルを持っている場合、追加の任意のステップでSupervised Fine-Tuning(STF)と呼ばれるものも行うことができます。これは、いくつかの人間によってラベル付けされた(入力、出力)テキストのペアを取得し、持っている言語モデルを微調整することです。STFはRLHFのための高品質な初期化とされています。

このステップの最後には、RLHFでさらにトレーニングしたいトレーニング済みのLMが得られます。

図1:私たちの事前学習済み言語モデル。

2 — 報酬モデルのトレーニング

このステップでは、(入力テキスト、出力テキスト、報酬)のデータセットを収集したいと考えています。

図2では、データ収集のパイプラインの表現があります。入力テキストデータ(本番データの場合はさらに良い)をモデルに渡し、生成された出力テキストに人間が報酬を与えます。

図2:報酬モデルのトレーニングのためのデータ収集パイプライン。

報酬は通常、0から5の間の整数ですが、👍 / 👎 の経験で単純な0/1にすることもできます。

図3:ChatGPTでの単純な👍 / 👎報酬の収集。
図4:より完全な報酬収集体験:モデルが2つのテキストを出力し、人間はどちらがより優れているかを選び、コメント付きで総合評価も行います。

この新しいデータセットを使用して、別の言語モデルをトレーニングし、(入力、出力)テキストを受け取り、報酬スカラーを返すようにします。これが報酬モデルになります。

ここでの主な目的は、報酬モデルを使用して人間の報酬ラベリングを模倣し、人間を介さずにRLHFトレーニングをオフラインで行うことです。

図5:人間が与える報酬を模倣するトレーニング済みの報酬モデル

3-RLによる言語モデルの微調整

ここで、魔法が本当に起こり、RLが登場します。

このステップの目的は、報酬モデルが与える報酬を使用してメインモデル、トレーニング済みのLMをトレーニングすることです。ただし、報酬は微分不可能ではないため、LMにバックプロパゲーションできる損失を構築するためにRLを使用する必要があります。

図6:報酬モデルとPPO損失計算を使用したメインLMの微調整

パイプラインの最初に、LMの完全なコピーを作成し、そのトレーニング可能な重みをフリーズします。モデルのこのコピーは、トレーニング可能なLMが重みを完全に変化させて報酬モデルをだますためにギブバーテキストを出力し始めないようにするのに役立ちます。

そのため、凍結および非凍結のLMのテキスト出力確率の間のKLダイバージェンス損失を計算します。

このKL損失は、報酬モデルによって生成される報酬に追加されます。実際、本番中にモデルをトレーニングしている場合(オンライン学習)、この報酬モデルを直接人間の報酬スコアで置き換えることができます。

報酬とKL損失を持っているので、報酬損失を微分可能にするためにRLを適用できます。

報酬が微分不可能なのはなぜですか?報酬モデルがテキストを入力として受け取るために計算されたためです。このテキストは、LMの出力対数確率をデコードして取得されるものです。このデコードプロセスは非微分可能です。

最後に、損失を微分可能にするためにProximal Policy Optimization(PPO)が登場します。詳しく見てみましょう。

図7:RL更新ボックスのズームイン-PPO損失計算<figcaption aria-hidden="true" figcaption="" 図7:rl更新ボックスのズームイン-ppo損失計算。

PPOアルゴリズムは、次のようにして(LMへの小さな更新を行うために使用される)損失を計算します。

  1. 「初期確率」を「新しい確率」として初期化します。
  2. 新しい出力テキスト確率と初期出力テキスト確率の間の比率を計算します。
  3. 損失は、loss = -min(ratio * R、clip(ratio、 0.8、 1.2) * R)の公式で与えられます。ここで、R報酬+KL(または0.8 *報酬+ 0.2 * KLなどの重み付き平均)が以前に計算されたものであり、clip(ratio、 0.8、1.2)は比率を0.8 <= ratio <= 1.2に制限しているだけです。 0.8/1.2はここでは簡素化された一般的に使用されるハイパーパラメータ値です。また、報酬を最大化したいので、マイナス記号-を追加して損失の否定を最小化するようにします。
  4. 損失をバックプロパゲーションしてLMの重みを更新します。
  5. 新たに更新されたLMで「新しい確率」(つまり、新しい出力テキスト確率)を計算します。
  6. ステップ2からステップNまで繰り返します(通常はN=4)。

それで、これがテキストからテキストへの言語モデルでRLHFを使用する方法です!

もっと複雑になることもあります。なぜなら、私が紹介した基本の損失に追加できる他の損失もあるからですが、これが中心的な実装です。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIテクノロジー

ウェブサイトのためにChatGPTに適切なテクニカルテキストを書かせる方法

「長いテキストを書くように依頼しないでくださいできるだけ多くの詳細と仕様を提供し、適切な言語を使用し、AIディテクター...

機械学習

DeepMindのAIマスターゲーマー:2時間で26のゲームを学習

強化学習は、Google DeepMindの中核的な研究分野であり、AIを用いて実世界の問題を解決するための膨大な可能性を秘めています...

人工知能

「安定した拡散深度2Imgを用いたバリエーション:ステップバイステップガイド」

「AI生成アートにおける形状と奥行きの保持のための初心者向けガイド:Stable Diffusion Depth2ImgとNode.jsの使用法」

AIニュース

「AIパワード広告でソーシャルをより魅力的に」

「デマンドジェンキャンペーンを学んで、YouTubeやGoogleでより良い結果を出す方法を探ってみましょう新しい事例、ビデオ、ヒ...

AI研究

オープンAIのCEOであるサム・アルトマン氏が解任されました

驚きの展開となり、AI研究のリーディングカンパニーであるOpenAIは、共同創設者兼CEOのサム・オールトマン氏の解任を発表しま...

機械学習

『ご要望に合わせたチャット:ソフトウェア要件に応用した生成AI(LLM)の旅』

「大規模言語モデル(LLM)をソフトウェア要件に適用し、ビジネスロジックの知識ハブと開発を加速するためのコパイロットを作...