ChatGPT ではなぜ直接教師あり学習ではなく強化学習を使用する必要があるのでしょうか?

ChatGPT ではなぜ直接教師あり学習ではなく強化学習を使用する必要があるのでしょうか? 理由はそれほど明らかではありません。OpenAI の共同創設者で ChatGPT の主要リーダーである John Schulman 氏は、ヒューマン フィードバックによる強化学習 (RLHF) における OpenAI の進歩を共有し、教師あり学習と強化学習の課題を分析しました。

イスラエルのバルイラン大学のYoav Goldberg教授は、シュルマン氏の講演を基に、大規模言語モデルにおける強化学習の必要性を詳細に解釈し、教師あり学習と強化学習の特徴をさらに比較・実証し、アイデアを提供した。将来の改善のために。

ゴールドバーグ氏は、2011 年にベングリオン大学で博士号を取得し、アレン人工知能研究所のイスラエル支部の研究責任者でもあり、Google (ニューヨーク) 研究所でも研究員として働いていました。彼は 10 年以上 NLP の分野で働いており、語彙意味論、構文解析、深層学習に基づく言語処理の分野で多大な貢献をしてきました。

 強化学習を使用する理由

ChatGPTのような大規模な言語モデルのリリースに伴い、「RLHFトレーニング(人間のフィードバックに基づく強化学習トレーニング)」の重要性について多くの議論が行われています。言語モデルのトレーニングに関して、私はかつて、強化学習がデモンストレーションからの学習 (教師あり学習とも呼ばれます) やデモンストレーションからの学習 (言語モデルの用語では「指導的微調整」) より優れている理由について混乱しました。人間が書いた答えを模倣する) 十分ではありませんか?

説得力のある理論的議論を提示します。しかし、RL トレーニングだけでなく、特に ChatGPT のようなモデルをサポートする別の議論があることに気づきました。この記事の大部分はジョンの議論を引用していますが、彼が明示的に述べていないことをいくつか追加しています(ただし、ジョンはそれらについて考えたと確信しています)。

この記事では、読者が記事の内容をよりよく理解できるように、多くの背景知識を提供します。記事の要点を理解したい場合は、「核心論」セクションに直接アクセスしてください。

背景: 教師あり学習と強化学習

共通の理解を得ることができるように、これら 2 つの学習シナリオを簡単に説明します。これらのことをすでに知っている場合は、この部分をスキップしてください。

事前トレーニング: どちらの設定でも、まず言語モデルが次のトークンを予測するために大量のテキストで事前トレーニングされていることを前提とします。したがって、単語シーケンスごとに、潜在的な次の単語の選択肢に確率を割り当てるモデルがあります。このようにして、モデルは言語の内部表現を取得します。

このプロセスを経て、モデルのテキスト生成能力は強化され、与えられたテキストプレフィックスに従って自然な習慣に従ったフォローアップテキストを生成できるようになりますが、「コミュニケーション」は苦手です。たとえば、質問がプロンプトされると、モデルはその質問に答えるか、一連の追加の質問を生成する場合があり、また、これは ... のコンテキストで尋ねられる重要な質問であると答える場合もあります。

これらは、自然言語テキストの問題に続く有効な継続です。入力テキストを記述することで、モデルに必要な言語動作を実行させることができます。継続することで問題が解決されます (「プロンプト エンジニアリング」とも呼ばれます)。ただし、モデルに質問や指示をすることによってのみ応答させます。この対話モードは、そうではありません。専門家以外のユーザーにとっては非常に便利です。

現在の命令を完了するだけでなく、モデルがクエリに応答し続けるようにしたい場合は、モデルをガイドする必要があります。このプロセスは「微調整」と呼ばれます。つまり、次のように動作するように事前トレーニング モデルをトレーニングし続けます。私たちはそれを望んでいます (これをモデルとユーザーの望ましい動作との「調整」と呼ぶ人もいます)。

教師ありトレーニング: 教師あり学習 (デモンストレーションからの学習または「指示の微調整」とも呼ばれます) では、目的の出力を含む、質問または指示の形式で人間が書いた一連のテキストを収集します。たとえば、このテキストは特定の質問と回答、または次のテキスト {text} を人間が書いた要約で要約するなどのタスクである可能性があります。

同じ「プレフィックスが与えられた次のトークンを予測する」目的でモデルのトレーニングを続けることにより、今回は一連の命令と出力のペアで、モデルは命令を実行することで応答することを学習します。つまり、モデルは、特定の問題に対する正しい出力のデモンストレーションを受け取り、その出力を複製する方法を学習します。このようにして、トレーニングでまだ提示されていない問題を一般化したいと考えています。

強化学習 (RL) : 強化学習では、モデルに指示を提供しますが、人間が書いた答えは提供しません。モデル自体が答えを生成する必要があります。スコアリング メカニズム (人間など) は、生成された回答を読み取り、それらの回答の品質をモデルに伝えます。モデルの目標は、どのように答えて高得点を獲得するかです。

もう 1 つのメカニズムは、モデルが複数の回答を生成し、スコアリング メカニズムがどの回答が最良であるかをモデルに伝えることです。モデルの目標は、スコアの低い回答を生成することではなく、スコアの高い回答を生成する方法を学習することです。どちらの場合も、モデルは回答を生成し、フィードバックを受け取ることによって学習します。(注: 多くの研究者は、クレジット割り当てメカニズムに基づいて、強化学習の範囲を特定の技術的側面に限定しています。研究者にとって、「強化学習は必要か?」という問題は、結局のところ、このテクノロジーを使用すべきか、それとも他の関連テクノロジーを使用すべきかということになるかもしれません。彼らと同じくらい好奇心が強いですが、この記事の目的では、外部スコアリング関数を使用する方法は、それがどのように機能するかに関係なく、強化学習とみなせると思います)。

強化学習は、次の理由により、教師ありトレーニングよりもはるかに困難です。 まず、「単位の割り当て」の問題があります。言語モデルはトークンのシーケンスを生成し、シーケンスの最後でのみスコアを取得します。信号が弱いため、応答のどの部分が良くてどの部分が悪いのかを判断できません。強化学習に関する関連技術研究の多くはこの問題に対処しようとしていますが、この記事ではそのままにしておきます。

クレジット割り当て問題は活発な研究分野ですが、合理的な解決策はすでに存在します。第 2 に、回答を採点する (または回答を採点する、または 2 つの回答を比較する) ためのスコアリング メカニズムが必要ですが、言語ベースのタスクでは自動スコアリング メカニズムを生成するのが困難です (これは変化する可能性がありますが、以下で簡単に説明します)。

したがって、強化学習のすべてのステップで「人間のフィードバック」を残すことになりますが、これはコストがかかり非効率的であり、人間の各フィードバックがかなりまばらな信号しか提供できないことを考慮すると、問題はさらに悪化します。上記の困難を踏まえた上で、なぜ依然として強化学習を使用するのでしょうか? なぜ教師あり学習を選択しないのでしょうか?

 多様性の議論

言語生成モデルの教師あり学習/命令チューニングの最大の問題は、デモンストレーターが与えた正確な答えしか再現できないことですが、実際には、人間の言語はさまざまな方法で同じ情報を伝えることができ、それらはすべて実用的です。人間が指定したテキストからわずかに逸脱したモデルが「ペナルティ」を受けると、モデルが混乱する可能性があります。

もちろん、モデルが同じ意味を持つ正当な代替応答を生成することを学習したとしても、モデルにさらに難しい単語や文を強制的に学習させ続けることもできます。したがって、私たちは強化学習トレーニングが提供する表現の多様性について非常に強気です。これは非常に直感的な議論ですが、教師あり学習が実際にどの程度うまく使用されているか、また強化学習モデルをトレーニングする際の課題を考慮すると、十分な説得力はありません。私はこれがそれほど難しい問題だとはずっと思っていませんでしたし、今でもそう思っています。

理論的議論

教師あり学習では正のフィードバックのみが許可されます (一連の質問とその正解をモデルに示します)。RL では負のフィードバックが許可されます (モデルは答えを生成でき、「この答えは間違っています」というフィードバックを受け取ります)。私は、LLM の分野における教師あり学習と強化学習に関する最初の強力な議論を提案します。

厳密な学習理論の観点から見ると、この 2 つの間には大きな違いがあります。つまり、負のフィードバックは正のフィードバックよりもはるかに強力です。理論的議論の観点から見ると、モデルがデモンストレーションからのみ学習する場合、敵対的な(または不注意な)デモンストレーターが重要な例を隠し、それによって学習者が間違った仮定を学習するように誤解する可能性があります。

デモンストレータは学習プロセス全体を制御しますが、学習者が独自の仮説を立て、その仮説が正しいかどうかを教師(教師)に尋ねることができれば(強化学習の設定など)、このように、敵対的な教師であっても、それを行うことはできなくなります。学習者を欺く 誤った仮定を学習することは、この仮定が誤りであることを正直に伝える必要があり、学習者に力を与えるのと同じ方法で学習者に力を与えます。(もちろん、対立的または不注意な教師がそれでもルールに従い、常に真実の答えを提供するという条件が付いています。これは理論的枠組みにおいて合理的な仮定であり、この仮定は私たちの主要な点には影響しません。つまり、対話や質問から学ぶことの方がより良いということです)デモンストレーション学習はより強力です)。

これが強化学習を選択した理由の 1 つですが、質問によってコミュニケーションできるように大規模な言語モデルをトレーニングするには、さらに重要な追加の議論があります。

核心的な議論

強化学習や同様の手法が必要な主な理由は次のとおりです。最初の 2 つの議論は、「モデルの学習が難しい可能性がある」または「不注意なデモンストレーターがモデルを混乱させる可能性がある」などの仮定に依存していますが、これらの仮定が実際に当てはまるかどうかは不明です。

代わりに、次の議論が成り立つことが証明できます。

言語モデルには、(少なくとも) 3 つの対話モードがあります: (a) テキストベース: モデルにテキストと指示を提供します (「このテキストを要約してください」、「このテキストに基づくイスラエルの人口は何ですか」、「このテキストで提供されています)」テキスト「私たちが受け取った化学物質の名前は何ですか」、「このテキストをスペイン語に翻訳してください」など)、提供したテキストに基づいてモデルに回答を生成させます; (b) 知識探求 (知識探求) :提供モデルへの質問やガイダンスがある場合は、モデルに内部知識 (「インフルエンザの一般的な原因は何か」) に基づいた (本物の) 答えを提供させます。(c) クリエイティブ: モデルに質問または説明を提供し、モデルにクリエイティブな出力を生成させます。(「...についての話を書いてください」)

私たちの議論は、2 番目のインタラクション モード (知識を求めるクエリ) に基づいています。このモードでは、真実 (自信を持って) の回答が期待され、モデルには「わかりません」と正直に答えるか、質問への回答を拒否することが望まれます。

このような種類の対話パターンの場合、教師ありトレーニングではモデルが嘘をつく可能性があるため、RL を使用する必要があります。中心的な問題は、モデルが内部知識に基づいて回答するようにしたいのですが、モデルの内部知識に何が含まれているかがわからないことです。 

教師ありトレーニングでは、モデルに質問と正解を入力し、提供された回答を再現するようにモデルをトレーニングします。ここには 2 つのケースがあります: (1) モデルは答えを「知っている」。この場合、教師あり学習により、モデルが答えを質問に関連付けるように正しくプッシュされ、将来的に遭遇する同様の質問に答えるためにモデルが同様のステップを実行できるようになります。これは予期された動作です。(2) モデルは答えを知りません。この場合、教師ありトレーニングは依然としてモデルを駆動して答えを与えます。

さて、選択肢は 2 つあります。可能性の 1 つは、モデルに特定の質問と回答のペアを強制的に記憶させることです。このアプローチ自体は悪くありませんが、モデルを一般化し、トレーニング データに現れる質問だけでなく、あらゆる質問に答えられるようにすることが目標であるため、あまり効率的ではありません。しかし、このような状況でモデルを一般化すると、実際には答えをでっち上げるようにモデルに教えていることになり、これはモデルに「嘘をつく」ことを奨励することと同じであり、良くありません。

モデルがどのような情報を知っているか、知らないのかを確信できないため、2 番目のケースは避けられません。これは教師ありトレーニングにとって実際の深刻な問題です。

信頼できる答えを生成するモデルをトレーニングするために教師あり学習に依存するだけではなく、強化学習の恩恵も必要です。教師あり学習とは異なり、強化学習はモデルが答えを作ることを奨励しません。たとえモデルが最初はいくつかの答えを正しく推測し、間違った行動を「作る」ことを学習したとしても、長期的には、答えを作ることに対するモデルのスコアは低くなります(おそらく間違っています)そして内部の知識に頼るか、答えないことを選択するかを学びます。

 モデルに答えを削除するように教えます

モデルが答えを知らないときは、答えを放棄して「わかりません」などの答えを返すようにします。しかし、モデルが答えを知っているかどうかはわからないため、それは簡単ではなく、教師付き設定で行うのは困難です。特定の種類の質問 (「人間が関与する質問には決して答えない」など) を避け、「わかりません」と答えるようにモデルをガイドできます。ただし、これは、答えが不明な場合に答えをドロップするという意図された動作ではなく、非常に弱い回避策 (プロキシ) にすぎません。

ただし、これは強化学習の設定でも困難です。モデルはそもそも「わかりません」という答えを生成しない可能性があるため、モデルにそのような答えを生成するよう促すことはできません。この問題を解決する 1 つの方法は、教師ありトレーニングを行って、特定の状況で「わかりません」という答えを生成する方法を学習し、その後強化学習でトレーニングすることです。

しかし、このアプローチには、教師あり学習や強化学習においてモデルが「わかりません」と過剰に答える可能性があるという欠点もあります。これは未解決の研究課題であり、「報酬関数を調整する」ことで対処することを試みることができます。つまり、正解には非常に高いスコアを割り当て、放棄された回答には中程度から低いスコアを割り当て、不正解には強いマイナスのスコアを割り当てます。もちろん、これを行うのは簡単ではありません。

モデルの盗用/蒸留の影響

OpenAI は、GPT モデルの RL タイプのチューニングに多大な労力を費やしてきました。これには多くの理由がありますが、その動機の 1 つは、モデルがわからない場合は答えを差し控えるようにすることで、正確さと信頼性を確保したいという欲求です。

最近、GPT モデルの優れた動作を再現することを期待して、他の公的に利用可能な基本言語モデルを使用してトレーニングする傾向があります。

このアプローチは、教師ありトレーニングまたは命令チューニングに似ています。トレーニングを通じて、モデルは GPT モデルの答えを正確に生成できます。これは、命令を実行するようにモデルを教える場合にはうまく機能しますが、知識照会タイプの質問に答えるには適していません (ケース b)。

公開されている基本モデルと OpenAI モデルは異なる知識セットを持っている可能性があるため、GPT の答えを再現するようにモデルをトレーニングすると、モデルが事実をでっち上げることを奨励する教師あり学習と同じ問題に直面する可能性があります。または、モデルが正しい答えを知っているが、 GPT モデルは、次の場合に応答を放棄しません。解決策は、これらのモデルを強化学習でトレーニングすることですが、それはコストがかかりすぎますか?

人間のフィードバックを必要としない強化学習

強化学習を使用した生成言語タスクのトレーニングは、ほとんどのプレーヤーにとって長い間非現実的でした。信頼できる自動スコアリング指標が欠如しているため、強化学習トレーニングでは各トレーニング例に対する人間のフィードバックが必要です。これは、特に学習するために数千から数万、さらには数十万の例を調べる必要があるモデルの場合、時間とコストがかかります。

ただし、強化学習トレーニングは現在では実用的です。まず、より少ない例から学習できる大規模な事前トレーニング済み言語モデルが存在します。さらに重要なことは、これらのモデルは強化学習ループ (RL ループ) から人間を排除する道を切り開いたことです。

教師ありトレーニングはテキスト関連のタスクに非常に効果的であり、大規模なモデルは一部のタスクを適切に実行することを学習できます。たとえば、2 つのテキストが同じことを意味しているかどうか、または一方に他方に含まれていない事実が含まれているかどうかをモデルに判断させます (タスクを細分化し、モデルに「回答できるすべての「質問と回答のペア」を生成させることもできます)このテキストから」と質問し、各質問について「他のテキストにこの質問に対する答えはありますか、そしてその答えは何ですか」と尋ねます。

経験的に、大規模な言語モデル (さらには中規模の言語モデル) は、教師あり学習を使用してこれらのタスクの実行を確実に学習できます。これにより、強化学習設定で使用できる効率的な自動スコアリング メカニズムが提供されます。

ただし、人間の応答を直接コピーするのではなく、モデルに独自の応答を生成させ、教師ありでトレーニングされた特殊なテキスト比較モデルを使用してモデルを比較することで、人間が提供したコマンドと応答のペアでトレーニングすることもできます。生成された応答は次のとおりです。人間が提供したものと比較し、自動スコアリングの手段を取得します。

おすすめ

転載: blog.csdn.net/lunwenhelp/article/details/130961281