強化学習 - Andrej KarpathyによるLLMの深い解説(Part 8)

LLMのトレーニングプロセス
  1. 事前学習段階:基礎モデルを構築し、膨大なインターネット文書の内容を学習する。
  2. 監視付き微調整段階:実際の対話データを使用してモデルを微調整し、アシスタントとしての役割を果たせるようにする。
  3. 強化学習段階:実践とフィードバックを通じてモデルの意思決定能力や問題解決能力を最適化する。

監視付き微調整後、モデルはすでにいくつかの基本的な対話タスクを処理できるようになるが、私たちはそれをより賢く、より適応力のあるものにしたい。このとき、強化学習(Reinforcement Learning, RL)が重要なトレーニング段階となる。

強化学習は、事前学習と監視付き微調整の前の二つの段階とは異なり、実践とフィードバックを通じてモデルの意思決定能力を継続的に最適化することに重点を置いている。人間が練習を繰り返してスキルを向上させるのと同じように、強化学習ではモデルが特定のタスクで試行錯誤を行い、調整し、自身の戦略を最適化する。

強化学習と学校教育の類似点

強化学習の概念を理解するために、これを学校教育と比較することができます:

  • 第一段階(事前学習) それは学生が教科書を読んで背景知識を得ることに似ている。この段階では、モデルは大量のテキストから知識を学ぶ。
  • 第二段階(監視付き微調整) これは専門家が問題解決方法を示すことに似ており、この段階ではモデルは専門家の模倣を通じて対話タスクへの対応方法を学ぶ。
  • 第三段階(強化学習) これは練習段階であり、モデルは実際の問題を解決し、フィードバックを受け取り、自身の意思決定と問題解決能力を継続的に最適化する。
大規模言語モデルのトレーニングプロセスは、本質的には子供を育てるのに非常に似ている。唯一の違いは、子供が本の章を学び、様々な訓練を行うのに対して、AIのトレーニングは段階ごとに進められ、各段階に基づいてトレーニングステップが設計されることだ。

強化学習のプロセス:実践とフィードバック

強化学習段階では、モデルはもはや専門家が提供する解決策に依存せず、環境とのインタラクションを通じて異なる戦略を試み、得られたフィードバックに基づいて行動を調整する。強化学習の目標は、モデルが探索と実践を通じて、最終的に特定のタスクにおける最適な意思決定方法を学ぶことである。

この段階は問題を解くことに例えられる:学生が一連の練習問題に直面し、自ら解決を試み、結果に基づいて方法を調整する。これは強化学習の核心思想と一致する:反復的な試行と継続的な最適化を通じて、最終的に最良のパフォーマンスを達成する。

エミリーが3つのリンゴと2つのオレンジを買い、それぞれのオレンジの価格が2ドルで、すべての果物の合計価格が13ドルの場合、各リンゴの価格は何ですか?この問題にはいくつかの異なる方法で解答でき、どの方法でも最終的に同じ答え——3ドルに到達できます。

人工データアノテーターは、どの種類の対話方式をトレーニングセットに追加すべきか明確ではありません。ある対話ではシステム方程式が使用され、他のものは普通の英語で表現されるか、または直接ステップをスキップして答えが与えられるかもしれません。

GPT(例えばChatGPT)がこの質問に答える場合、変数システムを作成してその問題を解決する選択肢を選ぶかもしれません。

私たち人間にとって簡単なタスクも、LLMにとっては非常に難しいことがあります。人間とLLMの認知方法は異なります。私たちにとって非常に単純なトークン列であっても、LLMにとっては大きな飛躍になることもあります。逆に、LLMは私たちが複雑だと感じるタスクにおいて非常に簡単に見えることがあります。そのため、最終的な答えだけを気にするのであれば、どのようにそれを人間に提示するかに関心がないため、この例をどのようにアノテートするべきか、LLMにどのようなソリューションを提供すべきか正確にはわかりません。

さらに重要なのは、LLMの知識は私たちのそれとは異なります。LLMは数学、物理、化学などの分野に関する膨大な知識を持っています。ある意味で、それは私たちよりも多くのことを知っているかもしれませんが、入力時に注入した知識がLLM自体が持っていないものであれば、それがモデルにとって大きな飛躍となり、混乱を引き起こす可能性があります。したがって、私たちの認識とモデルの認識は異なり、最も適切なLLMのソリューションをどのようにアノテートするかは明らかではありません。

要するに、現在のところ私たちは理想的な状態にはおらず、LLMに最も適したトークン列を直接作成することはできません。システムを初期化するために模倣を使いますが、最終目標はLLM自身が最も適したトークン列を見つけることです。強化学習と試行錯誤を通じて、LLMが正しい答えを信頼性高く得るためにどのようなトークン列を使うべきかを自分で発見させなければなりません。

強化学習の仕組み

Hugging Faceの推論プラットフォームでは、モデルに簡単なタスクを与え、そのタスクに基づいて解答を生成します。

何度も試行し、各結果を確認することで、モデルのパフォーマンスを評価できます。生成された各解答には異なるパスがあり、正解もあり、不正解もあるでしょう。最終的には、正解を導き出す解答を奨励し、試行錯誤を通じてモデルの生成戦略を最適化します。

あるプロンプトがあり、それに基づいて複数の解答を並行して試みます。一部の解答は正しく、緑色でマークされ、他の解答は失敗し、赤色でマークされます。

15個の解答を生成したと仮定し、そのうち4つだけが正しい答えを得たとします。今、我々の目標は、モデルが緑色の解答に似たソリューションをより多く生成することを奨励することです。つまり、赤い解答ではモデルが何らかのパスで誤ったため、これらのトークン列は有効なパスではないと考えられます。一方、緑色の解答のトークン列は正しい結果を生んだため、将来のプロンプトにおいてこのタイプの解答をより多く使用したいと考えます。

これらの解答は人工アノテーターによって設計されたものではなく、モデルが実際の操作中に生成したものである。モデルは継続的に試行し、どのトークン列が正しい答えを与えるかを発見する。それはまるで、学生が過去の解答を見て、どの方法が効果的で、どれが無効かを分析し、同様の問題をよりよく解決する方法を学んでいるようなものである。

このような状況では、最も良い解答を選択できます。例えば、最も短い解答や視覚的に最も良い解答を「最良の解答」として選び、その後モデルを訓練して、この解答パスをより選ばせることを目指します。パラメータ更新後、モデルは将来同様の状況に直面した際に、この方法で解答することをより好むようになります。

トレーニングプロセスには、数学や物理など様々な問題に関連する多種多様なプロンプトが含まれ、数万件のプロンプトと解答が関与します。したがって、トレーニングが進むにつれて、モデルは継続的な試行錯誤を通じて、どのトークン列が正しい答えを効果的に得られるかを自ら見つけ出します。これが強化学習の核心プロセスです:継続的に予測し、検証し、より多くの成功した解答を元に将来的な推論を指導する。