ビルドアワー:強化ファインチューニング

OpenAI・サムアルトマン
この記事は約42分で読めます。

この動画は、OpenAIのBuild Hoursシリーズの一環として、強化ファインチューニング(RFT)の実践的な応用について詳しく解説した技術セッションである。法的文書の分類タスクを例に、RFTの設定方法から実際のトレーニング、評価までの全工程をライブデモで紹介し、税務・会計分野でRFTを活用するスタートアップ企業の実例も含む包括的な学習コンテンツとなっている。

Build Hour: Reinforcement Fine-Tuning
Reinforcement fine-tuning (RFT) lets you improve how models reason by training with graders instead of large labeled dat...

OpenAI ビルドアワーへようこそ

OpenAI Build Hoursへようこそ。私はスタートアップマーケティングチームのクリスティンです。今日は、パシャントを再び迎え、そして初回参加のテオも加わっています。こんにちは。

今日のトピックは強化ファインチューニング、つまりRFTについてです。始める前に、ビルドアワーの目標について説明しましょう。これは、OpenAIのAPIとモデルを使って会社を拡大するためのベストプラクティス、ツール、AI専門知識を皆さんに提供することです。

画面下部に私たちのホームページがあります。ここで全てのリソースを見つけることができ、過去のビルドアワーもオンデマンドで視聴できます。

次の1時間で期待できる内容のスナップショットをお見せしましょう。まず、RFTの紹介から始めます。RFT最適化のあらゆる利点について説明し、実際にタスクの設定を行います。そして私のお気に入りの部分であるデモでは、実際にライブで構築していきます。コードリポジトリのリンクをチャットに投稿するので、皆さんもチェックして一緒に進めてください。

そして最後に、本日は非常にエキサイティングな顧客スポットライトがあります。Cordinsの共同創設者兼CEOが参加し、RFTの実世界での応用について共有してくれます。最後にQ&Aセッションを行います。デビッドが質問に答え、テオとパシャントも質問に対応します。

私たちのチームも控えているので、時間中に何か疑問が生じた場合は、Q&Aチャットに質問を投稿してください。チャットとQ&Aを少し切り替える必要がありますが、ここで質問を投稿すれば、時間中に回答します。

それでは、パシャント、テオ、お願いします。

ファインチューニングとモデルカスタマイゼーション

ありがとう、クリスティン。

それでは、ファインチューニング、特に強化ファインチューニングがモデルカスタマイゼーションのどこに位置するかを把握することから始めましょう。

LLMアプリのパフォーマンスを向上させようとする場合、本当に大きく分けて2つのレバーがあります。最初は、モデルが知っていることを向上させることです。これは、より良いプロンプティングや検索拡張生成などのコンテキストエンジニアリング技法で対処できます。そして2つ目のレバーは、モデルがどのように推論するかを向上させることです。ここでファインチューニングが登場します。

知識が不足している場合は、プロンプティングとRAGから始めてください。しかし、モデルが事実を知っているにもかかわらず、それらを正確に適用したり推論したりするのに苦労している場合、そこでファインチューニングが必要になります。

ファインチューニングは投資であることを皆さんに思い出していただきたいと思います。したがって、先ほど述べた他のレバーから可能な限り全てを絞り出したことを確認する必要があります。その後でのみ、ファインチューニングに手を伸ばすべきです。

今日、私たちのプラットフォームでは3つのファインチューニング技法を提供しています。最初の教師ありファインチューニングでは、プロンプトと回答のペアを提供して、モデルが固定パターンを学習できるようにします。これは、単純な分類タスクや、モデルに出力パターンを遵守させるのに適しています。構造化出力もこれを行いますが、教師ありファインチューニングはカスタムコード形式などに有用です。

次の技法は選好ファインチューニングと呼ばれます。ここでは、モデルにより良い出力とより悪い出力の例を与え、モデルはより良い出力のトーンやスタイルを模倣し、好ましくない方を避けることを学習します。これは、マーケティングコピー、チャットボット、個性が重要な場面に適しています。

そして今日は強化ファインチューニングに焦点を当てます。ここでは、ラベル付きの回答の代わりに、実際にシステムにグレーダーを与えます。グレーダーは基本的に、モデルが回答や正確性をスコア化できるルーブリックやルールです。強化ファインチューニングシステムは解空間を探索し、考え出した異なる解をグレード付けし、自らを改善します。

この技法は、ポリシー遵守、法的推論、医療ワークフローなど、推論が重要な領域で非常に強力であることが判明しています。

強化ファインチューニングの利点

詳細に入る前に、強化ファインチューニングの利点について簡単に触れてみましょう。

RFTは、推論モデルに適用できる今日唯一の方法であるという点でユニークです。そして推論モデルこそが将来であると私たちは信じています。また、データ効率的でもあります。強化ファインチューニングを開始するには、数十から数百の例があれば十分です。そして、この技法を適用することでタスクが改善するかどうかのシグナルを得ることがはるかに簡単です。

最後に、手動でラベル付けされた出力を必要としません。前述のように、グレーダーを使用して動作するため、キュレートするのに非常に高価な大規模なラベルデータセットの構築に多くのリソースを費やすのではなく、評価などの他の用途にも実際に有用なグレーディング戦略の構築により多くの時間を集中できます。

今日、チームはRFTを使用して複雑なポリシーパイプラインを単一の推論エージェントに置き換えています。また、実際のポリシーロジックでトレーニングすることでコンプライアンスチェックを改善し、専門家が検証したグレーダーで医療コーディングタスクの精度を向上させるためにも使用しています。

次に、テオがフードの下でどのように動作するかを紹介します。

RFTの内部動作

ありがとう、パシャント。

それでは、内部でどのようなことが起こっているか、そしてRFTをそれほどサンプル効率的にする側面について簡単に見てみましょう。

RFTを見ると、タスクから始めます。これはおそらくあなたのデータセット、プロンプト、そして回答です。そして、ここではプラットフォームで現在利用可能なO4 miniに焦点を当てるモデルを選択します。そして、前述したグレーダーがあります。

ここで、内部でアルゴリズムがどのように実行されるかというと、同じ例を複数回サンプリングし、異なる推論パスを通り、新しい回答を得ます。そのため、モデルはこれらの異なる回答をすべて比較し、何が良いか、何が悪いかを判断できます。

したがって、1つの例が実際に多くの情報と、従うべき良い推論パス、従うべきではない推論パスについての多くの洞察を提供します。そして、数十から数百のサンプルでトレーニングすることで、実際に推論とその特定のタスクでの汎化を改善します。それがRFTを愛する理由です。

これは他の技法と本当に異なりますよね。なぜなら、それらの技法では1つのサンプルは単なる1つのトレーニング例だからです。ここでは、単一のタスクからはるかに多くのシグナルを引き出しています。

まさにそうです。多くの軌跡をそこから得られるので、効率的になるのです。

タスクの設定とデータセット

それでは、タスクの設定を見てみましょう。

最初にデータセットを紹介します。ここで使用するデータセット、そしてクラス用のデータセットは、法的テキストが与えられたときに、それがどのEurovvokレベル1クラスに属するかを予測する分類タスクです。

Eurovvokレベル1クラスは、Eurovvasの最高レベルで最も広いテーマカテゴリです。これは、EU出版局によって維持されている多言語制御語彙です。21の異なるクラスがあります。そして、各サンプルには1つ、2つ、最大6つまたはそれ以上のクラスが割り当てられることがあります。

それらのサンプルの1つを見てみましょう。

そうしましょう。ここで左側に非常に短いサンプルがあります。これはデータセットで見つけられる最も短いものです。そして右側に参照回答があり、雇用と欧州連合という2つのクラスがあることがわかります。

一緒に進めたい場合は、Hugging Faceでデータセットを見つけることができます。ここにリンクを張っていますが、データセット探索を実行するときのコードにも含まれています。

評価指標の理解

データセットができたので、どのように評価するのでしょうか。

グレーダーについてはすでに多く話しましたが、分類タスクにとって重要な指標について話すことで、グレーダーがどのように機能するかを少しプレビューしてみます。

機械学習をしばらく行っている方にとっては、これはおそらく新しいことではないでしょう。しかし、皆さんに追いついていただくために、分類タスクで本当に重要な2つの指標は、精度(precision)と再現率(recall)と呼ばれます。学術的な定義を与える代わりに、画面上にいくつかありますが、これらのそれぞれが何を意味するかについての直感を構築したいと思います。

精度は、予測されたラベルのうち、実際に正しいラベルがいくつあるかを把握する測定値として考えることができます。それが精度です。

そして、もう一つの重要な指標は再現率と呼ばれます。これは、実際のラベルのうちいくつを見つけたかを測定します。つまり、特定のサンプルに対して期待したすべてのラベルを返したか、それとも一部を見逃したかということです。

そして最後の行には、F1スコアがあります。F1スコアは、これら2つの値間の複合的な平均スコアで、低い方の値をわずかに高く重み付けします。分類タスクでは、精度または再現率のうち少ない方によってボトルネックになることを期待するからです。したがって、この測定値を選択しました。

ここでF1測定値を持つことが重要な理由は、他の2つよりも直感的でないとはいえ、強化ファインチューニングシステムが各トレーニングサンプルに対して単一のグレードを本当に必要とするからです。少し後で見るように、精度と再現率を別々に測定しますが、実際には単一の複合スコアを提供する必要があり、F1がそれを可能にします。

とはいえ、これら2つの精度と再現率の指標を組み合わせる異なる方法を使用する有効な状況があると思います。

そうですね、全くその通りです。精度よりも再現率を重視する場合、2つの項目を少し異なってバランスするF2スコアを使用するかもしれません。それでトレーニングできます。

ライブデモの開始

それでは、デモに入りましょう。

データセットがどのようなものかを非常に高いレベルで見て、グレーダーがあり、どのモデルを見るかも知っています。機械学習タスクなので、データ探索を行う必要があり、特に強化ファインチューニングでは、データの品質が最重要です。これによりデータセットでヒルクライムできるかどうか、見ることができる全サンプルで汎化できるかどうかが決まります。

簡単なコードを設定しました。データセットを読み込んでいます。おそらく皆さんもできるでしょう。そして、評価プラットフォームとRFT用に期待されるアイテムを構築します。

これは、アイテムを持ち、ID、テキスト入力、参照回答を与える非常にシンプルな例です。すみません、最初のサンプルを読み込んだときに見せたかったのですが、Hugging Faceで内部がどのようになっているかをここで見ることができます。

テキストがあり、カテゴリもあります。これは完全に混乱しましたが、ここにカテゴリがあり、カテゴリにIDがあり、それらのIDはeurovコンセプトを表し、ただの識別子です。それはモデルにとって理想的ではありません。セマンティックな意味がないからです。

次にしたいことは、私が飛ばしたことですが、実際にそれらのIDを名前に変換することです。名前が必要な理由は、モデルがIDよりもはるかに良い方法でそれらについて推論できるようになるからです。理解できますか?

できます。ただし、これらの1つに対して10147を推測するチャレンジを楽しむかもしれません。

それは将来にお任せします。今は貿易、金融、そして存在する他のすべてのクラスに焦点を当てています。

データセットからランダムに150サンプルを選択して分割しています。150サンプル、トレーニング用に100、バリデーション用に50を選ぶ理由は、RFTが実際にサンプル効率的であることを示すためです。100サンプルだけで、実際にまともな改善を得ることができます。

バリデーションの50サンプルは主に、一部のデータでどのように実行されるかの堅実な指標を得るためのものです。

使用しているこのデータセットは非常に大きいですよね。全体でいくつのサンプルがありますか?

全体では7,000サンプルあると思いますが、23言語にわたっているので、スケールし始めます。

これらの100サンプルで生命の兆候が見えれば、おそらくその後にはるかに大きなトレーニングランを作ることができますよね?

全くその通りです。そしておそらくさらに良い結果を得ることができるでしょう。

データの分析と前処理

150サンプルを作成し、サンプリングしたので、それらの分布をチェックできます。忘れたセルがありました。これです。

すべての頻度をカウントし、分布をプロットします。ここで、すべてのカテゴリにわたる分布と、トレーニング分割で見る回数がわかります。

これはあなたにとって良いように見えますか、クリスティン?

まあ、確実に分布ではありますね。ここで何を探しているのでしょうか。これらのラベルのそれぞれで同等の出現回数を持ちたいでしょうか?

そうです。理想的には、すべてのカテゴリで均等分布になることです。理由は、このタイプの不均衡なデータセットでモデルをトレーニングすると、貿易や農業食品だけを予測することでスコアが人為的に上がってしまうからです。そうすると、すべてのカテゴリで汎化できなくなります。しかし、より一般的なモデルが欲しいのです。

これが彼らの言う報酬ハッキングのことですか?

そのバージョンですね。

バランスの取れたサンプリング戦略に入りましょう。バランスの取れた検索とサンプリングを行うコードを迅速に作成しました。これが提供する出力を見せることができます。これは、はるかにクリーンで、はるかにバランスの取れたデータセットです。今、モデルが学習すれば、すべてのクラスで機能する一般的な側面を学習すると非常に確信できます。

テストとトレーニングの分割というこのトピックにいる間、他に考慮すべきことがあると思います。このタイプのバランシングをトレーニングセットだけに行うのか、バリデーション側でも選択肢があると思いますが。

それは素晴らしい質問です。バリデーションを行うとき、あなたにとって興味深い異なる指標を持つことができます。すべてのカテゴリでの一般的な性能を見たい場合もあれば、プロダクション中にモデルがどのように実行されるかを表現したい場合もあります。プロダクション中はおそらく、以前に見たものに近い分布になるでしょう。そこでF1スコアを計算できますが、このより均衡の取れたデータセットでもF1スコアを計算できます。そうすれば、両方の値が興味深く、それぞれ異なる情報を保持します。1つは一般的な性能、もう1つはプロダクションでの動作です。そして両方を行うことができ、実際に両方を行うことを強く推奨します。

理想化されたF1スコアと、より実用的な現実世界のF1スコアのようなものを持つことができるということですね。

それらはマイクロとマクロと呼ばれます。

グレーダーの実装

戻って、先に進みましょう。

データセットがどのようなものかをプレビューし、データのバランスを取るための初期分析を行いました。強化ファインチューニングの結果をどのようにグレーディングするかを簡単に見てみましょう。

最初に行うことは、数スライド前に見た精度の式をPythonコードに変換することです。このPythonコードは私たちの精度グレーダーを表します。

グレーダーは本質的に、トレーニングが実行されているときにインラインで実行されるコードのブロブです。ここで特別なことは何も起こっていません。1つ言えることは、3行目にこのif文があり、特定のエッジケースを考慮しているということです。これをここに含めたい理由は、グレーダーを堅牢にするためです。これらのシステムでは、モデルからサンプリングするときに何かが間違って進むことがよくあり、モデルが期待しているものを正確に返さない場合があります。そのようなシナリオでは、グレーダーがまだ0と1の間の有効なスコアを返すことを望みます。そのため、これらのエッジケースの一部を処理しているのです。

再現率グレーダーは非常に似ています。これらを駆け足で進みます。そして次に、使用するプロンプトがあります。テオ、このプロンプトを考え出すために多くの作業をしたと思います。プロセスを説明し、リスナーのためにこのプロンプトを分解してもらえますか?

プロンプトの最適化

確かに。ファインチューニングするモデル、データ、グレーダーができたので、最初のスライドで示したように、プロンプト最適化を行うことが本当に重要です。

ここで構築したプロンプトは比較的シンプルに見えます。コンテキストを提供し、期待される出力応答形式を説明し、モデルが選択できる標準的な名前を持つようにモデルに21クラスを与え、最後にガイドラインのセットを与えます。

プロンプトで何度も反復を行い、いくつかは少数例を持つより複雑なものでしたが、これに勝るものはありませんでした。これも非常に短く、RFTを実行したいときに気に入っています。まず、モデルにあまりバイアスをかけず、次に、すべてのサンプルが短くなるため、実行も高速になります。

これは本当に重要ですよね。なぜなら、トレーニングで使用するのと同様のプロンプトを推論時にも使用したいからです。したがって、今選択するプロンプトが実際に非常に重要です。後で変更することは最良のアイデアではないかもしれません。

まさにその通りです。全く正しいです。

評価の実行

評価をどのように実行するかを見てみましょう。

コードに戻り、ここでパイプラインノートブックを構築しました。これに従うことができ、最初にアイテムを構築した方法に従えば、独自のデータセット用に再利用することもできます。そこを見て、再利用してください。

見て見ぬふりをするボイラープレートコードがいくつかありますが、より重要な部分があります。トレーニングセットでの最適化のために評価を実行したいと思います。トレーニングセットを選択し、応答形式を定義しましょう。

レベル1コードを予測しています。レベル1コードをリストする同一ベースのモデルを構築しました。ここで見ることができるように、レベル1とコードがあり、環境や農業を見ることができます。これは理解していただけるように印刷しただけです。

皆さんに明確にしておきたいのは、ここではAPIの構造化出力機能を使用しているだけだということです。

その通りです。これにより、モデルは常に出力の形式で100%の精度を保証し、常に解析でき、これらのグレーダーを確実に適用できます。

推論時のサンプリングは制約され、常にこの構造に従います。

統一されたグレーダーの重要性

そして、ここで行っているもう一つの重要なことは、RFTでも直接使用できる応答形式にアクセスしているということです。

それは本当に興味深いです。同じグレーダーを使用することの重要性について教えてください。プラットフォームがそれをサポートすることは本当に素晴らしいことですが、なぜ重要なのでしょうか。なぜ気にする必要があるのでしょうか?

そのグレーダーを見せてみましょう。以前に提示した関数を正確に見つけることができます。ここでは、APIを通じて共有できるように文字列化し、精度、再現率、F1グレーダーを見つけることができます。

オブジェクトを作成し、これらのオブジェクトは評価プラットフォームとRFTプラットフォーム間で共有されます。このクリエーターでここで評価すると、RFTは全く同じ評価でヒルクライムすることを学習します。

これは非常に重要です。リンゴとリンゴを比較していることがわかり、バリデーションセットでパフォーマンスの向上が見られた場合、それが有効な向上であり、何か異なることが原因ではないことがわかります。

また、これを一度エンジニアリングしてから再利用できるのも本当に素晴らしいことです。チームがグレーダーのエンジニアリングに時間を投資することは、これら両方で再利用できるため、はるかに高いレバレッジです。

全くその通りです。ここでは非常にシンプルなグレーダーを使用していますが、LMを判定者として使用し、非常に複雑なルーブリックを構築することができます。

評価の実行とプラットフォームの確認

グレーダーを保存します。最初に作成したプロンプトもロードしています。このユーティリティを使用すると、プロンプト間を非常に迅速に切り替えることができます。それが主な目的です。

評価オブジェクトを構築できます。ここで、実際に評価したいモデルを定義する非常に重要なセクションがあります。ファインチューニングするモデルなので、O4 miniを評価します。応答形式を使用し、低推論努力を使用することを選択します。

タスクがそれほど複雑ではなく、入力プロンプトもあまり長くなく、文書もそれほど長くないと仮定するので、低を選択します。モデルはおそらく非常に迅速にそれについて推論できます。

これはあなたが試したことでもありますよね。評価ができたら、実際に3つすべてに対して実行することができ、実際に低の方が良いことがわかりました。

実際にそうでした。安く、高速です。だからなぜそうしないのでしょうか?モデルは中または高で考えすぎていました。ここでは低を保ちましょう。

評価を設定します。実際に1つ実行してみましょう。これを実行すると、Evals APIを使用し、Evalsプラットフォームへのリンクが送信されることがわかります。そのリンクに移動して、そこで何を見るかを見てみましょう。

立ち上がっています。ここでEvosプラットフォームにいます。私が実行したlog codesを見ることができます。これは私たちが行っていること、プロンプト用のバージョン7、そして構築したグレーダーである異なるテスト基準があります。

クリックすると、正確なPythonコードとパス閾値を見ることができます。このパス閾値は、EASプラットフォームでそのサンプルでのモデルのパフォーマンスが受け入れ可能かどうかを言うために使用するものです。ここで0.8と言いました。少しランダムですが、何でも言えます。

過去に実行したものの一つを見て、人々にどのように見えるかを示すことができるかもしれませんね?

全くです。戻ると、私たちが行った全ての練習を見ることができ、これにジャンプして、バリアンスランD1の結果を検査してみましょう。

ここでプラットフォームにいます。全ての例が表示され、ナビゲートするのが非常に簡単で、私のテキスト入力が何だったか、参照回答が何か、出力が何かを見ることができます。個人的によく行うのは、参照回答インデックスを出力にドラッグして、全ての例を各例について非常に簡単にすばやく見ることです。

これは、プロンプトを反復するとき、出力スキーマを変更しようとするときなどに本当に有用です。システムと迅速に反復するときに、このUIは非常に有用ですよね?

全くです。ここで、定義した閾値に基づく過去の失敗を見ることができます。しかし、右側のメインスコアも見ることができます。本当にそれに熱中している場合は、ここの閾値を使用して、条件の1つを満たすか満たさないデータセットのサブサンプルのみを見ることができます。

戻りましょう。残念ながら、まだ実行が完了していません。多くの場合完了します。それがライブデモだと思います。しかし、中断してみましょう。中断しました。幸い、これを以前に実行したので、見せるものがあります。

はい、もちろん、以前に実行した多くのサンプルがあります。実行した評価のビットを実行してみましょう。

このプロットには多くのことが起こっています。これについて説明してもらえますか?本当に本当にエキサイティングに見えます。

はい、全くです。今見せたものは少し魔法のように見えるかもしれませんが、なぜこれが重要で、ここで何が起こっているかを説明します。

このプロットでは、y軸にスコアがあります。パーソンが以前に説明したように、0から1になります。x軸には異なるサンプルがすべてあります。評価を実行するときは、常に一度以上実行します。多くの場合3回実行します。このケースでは9回実行しています。

これを行う理由は、multiが本質的に確率的で、出力が大きく変わることがあるからです。すべて正しいこともあれば、すべて間違っていることもあります。そのため、各サンプルでの分散を見ることが私たちにとって非常に重要です。これがここで見ているものです。

十字を見ると、この十字は、9回の実行でその特定のサンプルでモデルが到達した最高スコアです。

カーソルを置いている場所では、実行全体を通じて少なくとも一度は完璧なスコアを実際に得たようですね。モデルが実際にすべてを正しく取得した一度があったということですね?

そして、そこで見ることができる青いバーは、その9回の実行での平均です。最後に灰色のバーが分散です。これは私たちにとって非常に重要です。

なぜ重要なのか、直感を構築するのを手伝ってもらえますか?

確かです。以前にRFT中に内部で何が起こるかを見たときに、モデルが複数の軌跡を行い、それらのいくつかをグレード付けし、その一部は良くグレード付けされ、一部はあまり良くないことを見ました。この分散は実際にモデルが良いものと良くないものを学習することを可能にします。

この例では、この分散を持つことは、モデルがより良いスコアに適合し、毎回より良く推論し始めるように推論パターンをファインチューニングできることも示しています。

また、0と1の間の連続分布も見ています。つまり、このトレーニングデータセットでは、3を返すもの、6を返すもの、1まで全てのあらゆる種類の例があります。比較的連続的なトレーニング信号があります。

これについて考える1つのヒューリスティックまたはメンタルモデルは、RFTをこれらの各サンプルの平均を最大値に近づける方法として考えることでしょうか。それが達成できるものであれば、成功した結果になるでしょう。

全くです。そして、今日後でそれを見ることができることを願っています。

RFTジョブの開始

データセットを見て、プロンプトを選択し、グレーダーを定義し、データセットがRFTの生命の兆候を示し、このプロットを通じて学習する余地があることをチェックしました。

ついにRFTジョブを開始しましょう。

このちょっとしたボイラープレートコードを実行しましょう。プロンプトv7を選択できます。正しいビルドプロジェクトにいます。

今行うことは、トレーニングとバリデーションセットをAPIプラットフォームにプッシュすることです。評価とは少し異なります。評価では、プロンプトなしですべての例を共有し、1つのプロンプトを共有して、異なるプロンプトを簡単に評価できるようにします。一方、RFTでは、1つの例を共有するときに、プロンプトを含む完全な例を共有します。そのため、新しいファイルをプッシュする必要があります。

それが意味することは、単一のトレーニングデータセットで異なるプロンプトを混ぜることができるということです。

まさにその通りです。事前にRAGを行っているプロンプトの動的部分がある場合は、それらを事前に埋めて、トレーニングバッチとしてアップロードできます。

より一般的なモデルを持つ素晴らしい機能だと思います。異なるプロンプトで分布内になることができます。

以前と同じ応答形式を読み込み、以前に定義したクリエーターを読み込むことができます。それは、再度構築する必要がないので非常に有用です。

検証すると、既に構築して使用したので検証されますが、チェックする必要があります。しかし、これは、グレーダーに何らかのフォーマットの問題があるためにトレーニングランが失敗することを望まないので有用です。

まさにその通りです。Python を文字列化しなければならないのは、見るのに最適ではありません。

ハイパーパラメータを選択できます。おそらくプラットフォームでパラメータを説明するでしょう。実行してジョブを作成してみましょう。

作成されたジョブがあります。リンクが表示されています。そのリンクに切り替えましょう。

クリスタル、プラットフォームを説明してもらえますか?

やりましょう。多くのことが起こっています。この左のサイドバーを隠します。視覚的なノイズが少なくなります。サイズを少し大きくしましょう。

右のパネルの上部に、開始したばかりの現在のジョブがあります。ジョブに関する情報、IDなどを見ることができます。IDは、ジョブの状態などを追跡するのに本当に有用です。

そして、これらのハイパーパラメータのリストが見えます。これらのうちいくつかについてダブルクリックします。重要だからですが、今はそれらを飛ばしましょう。使いやすさのために、ここにトレーニングとバリデーションファイルもリンクされています。

この特定のジョブでは、実際にまだファイルを検証していることに気づきます。ジョブが通る段階がいくつかあります。ファイルを検証し、実際にトレーニングを開始し、複数のトレーニング段階があります。そのため、非常に時間がかかります。

もちろん、これは予見できました。そのため、ライブで見ることができるように、事前により多くのトレーニングを行いました。ご覧のように、このトレーニングランは成功しています。

ここには出力モデルという追加のキーもあります。これは、これに対して推論を実行するために使用できるモデルスラッグです。すべての標準APIを使用します。04 miniをモデルとして渡していた場所にこれを渡すだけで、ファインチューニングされたものと話しているのです。本当にシンプルです。

この以前の実行には、開始したものと同じハイパーパラメータを使用しました。同じシードも使用しているため、これは実際に非常に近い比較です。これは非常に非常に近いはずです。

比較的同じであるべきです。そして、パイプラインによって発生する3つのチェックポイントもあります。これらがどのように発生するか、これらをどうするかについて少し話しますが、これらをトレーニングルート沿いのモデルチェックポイントの種類として考えることができます。評価を実行し、どのように実行されるかを見たい異なるモデル重みのセットがあります。

特に、これらのチェックポイントは実際に時間の経過とともに得た最高スコアです。

上位3つがトップ3ですね。それは非常に素晴らしいことです。なぜなら、時々早期のチェックポイントで非常に良いバージョンがあるが、モデルがトレーニングを続けると、それにアクセスできないのは非常に苛立たしいからです。そのため、私たちはそれを保存してあなたに提供します。

それは本当に有用です。

トレーニングチャートの分析

これらのチャートのいくつかを説明し始めましょう。今日のビルドアワーの最も楽しい部分の一つが、これらのチャートのいくつかが私たちに何を伝えているかを解析しようとすることだと思います。

ここの最初のものを少し拡大してみましょう。これは、トレーニングプロセス中の報酬曲線です。このチャートに2つのことがプロットされているのを見ることができます。

実際にそこに行く前に、軸を見てみましょう。x軸にはトレーニングステップがあります。各トレーニングステップは本質的に、モデル重みを更新するたびにステップです。y軸には、報酬関数の生の値があります。F1メトリックが返す数値スコアです。

これらの線のそれぞれを見ると、緑の線は、トレーニングセットまたは実際にはトレーニングバッチによって返される報酬です。紫の点線は、バリデーションセットの報酬です。

気づくかもしれない一つのことは、緑またはトレーニング報酬は、実際に紫の曲線と比較して、はるかにスパイキーで、いわば不連続だということです。紫の曲線ははるかに連続的で滑らかです。

なぜそうなのかについての直感を構築するために、eval samplesというハイパーパラメータに注意を向けたいと思います。このシナリオでは実際に3に設定しています。eval samplesは、テオが分散研究で各サンプルを9回実行した方法と非常に似ています。その場合、eval samplesが実際に9で、ここでは3だったと言えたでしょう。これを行う理由は、バリデーションセットでかなり堅実なスコアが欲しいからです。各サンプルがグレーダーを通じて3回実行され、平均スコアを計算し、それがバリデーションセット全体でプロットされるものです。

一方、緑の曲線では、現在のトレーニングバッチによって返される報酬をプロットしています。ハイパーパラメータを再度見ると、バッチサイズはわずか16です。トレーニングセットからの16例のサンプリングです。それらを一度だけ実行します。または、何度か実行しますが、本質的には、データのはるかに小さなカットを見ているため、多くの分散があります。

まさにその通りです。ステップ6のトレーニング平均トレーニング報酬0.6のように、非常に早い段階で非常に簡単なカットであったり、ステップ10で見られるように平均よりもはるかに低い非常に困難なカットであったりする可能性があります。

そのため、これらの不一致とすべての上下とより多くの谷を見るのですが、トレンドはまだ正しく、それは実際にデータの品質、実際には全体のセットアップの品質に関する本当に良い情報であることに気づくことができます。なぜなら、モデルは学習できるからです。

そして上向きで右向きで、これがシナリオで良いことですね?それが聞きたいことのすべてです。

次の曲線に進む前に、テオ、あなたは私よりもはるかに多くのこれらを行っています。これが悪化する可能性のある方法はありますか?この曲線で過学習がどのように見えるでしょうか?

過学習は、緑の曲線が上に向かって右に向かって上昇し、モデルが学習しているのに、青または紫の曲線が比較的平坦にとどまることです。これを行うと、トレーニングセットがおそらく小さすぎるか、バリデーションセットを代表していないことがわかります。

それは本当に役に立ちます。

報酬に関する他の曲線の一つを見てみましょう。これは実際に、報酬またはトレーニングがどのように進行しているかについて、さらに粒度の細かい詳細を提供します。

ここには多くのことが起こっています。圧倒されないことが重要です。完全な凡例が表示される点の一つにホバーしてみましょう。

ここでの最後の曲線との主な違いは、精度と再現率の組み合わせであるF1スコアを報告するだけでなく、実際に精度、再現率、F1を別々に報告していることです。トレーニングバッチと評価セットまたはバリデーションセットの両方でそれを行っています。

これがなぜ有用で、観察する可能性のあるトレンドは何ですか?

これは非常に有用だと思います。なぜなら、モデルで特定の動作を望み、再現率よりも精度により焦点を当てたいかもしれないし、両方を最適化したいためグレーダーを変更したくないかもしれないからです。これは実際に、これら2つのグレーダーのどちらを優先するチェックポイントを見るのに役立ち、他の多くのグレーダーと一緒に多重グレーダーを使用できます。ここでは再現率と精度を比較していますが、多くの他のものがあり得ます。

もう一つの側面は、実際にこのモデルの動作を理解することです。例えば、ステップ65に移動すると、精度は0.84と非常に高いが、再現率はバリデーションセットの両方で0.53と比較的低いことがわかります。これは、モデルが多くのサンパーを予測しないことを示しています。おそらく少ししか予測しませんが、ほぼ常に正しいです。それはあなたにとって機能かもしれません。バグかもしれません。これに基づいて、最適なチェックポイントを選択し、報酬の変更も考えることができます。

この点に到達するには多くの反復が必要ですよね。一晩で到達したわけではありません。1つのトレーニングジョブを実行しただけでここに到達したわけではありません。これらのチャートは、次に実行したい実験は何か、グレーダーやプロンプトをどのように反復し進化させたいかを考える際の戦略を知らせるのに本当に有用だと思います。

他にもいくつかチャートがあります。これらを駆け足で進みます。ここの最初のものは、トレーニングの過程でモデルが生成している推論トークンまたは思考連鎖トークンの数を示しています。

実際に、思考の数を増やし始めていることがわかります。モデルは、より良い報酬を得る戦略がより長く考えることだと決定し、しばらくその道を進みます。

それについての含意を話す前に、下のチャートに注意を向けてもらいます。これは、トレーニングプロセスの各ステップでトレーニングにどのくらいの時間を費やすかを教えてくれます。

ここで見ることができる一つのことは、より多くの思考連鎖トークンを生成するにつれて、モデルがより冗長になっているため、トレーニングと評価中に実際にはるかに多くの時間を費やすことになるということです。ターンを終了するのにより多くの時間がかかります。

これらの推論トークンについて他に指摘したいことはありますか?

これは見るべき非常に重要な側面だと思います。最初に低推論努力を設定したことを覚えているからです。このパラメータは本当にトレーニングの期間を駆動しますが、パフォーマンスも駆動することができます。

もちろんはるかに遅くなることがわかりますが、ここで明らかになることは、モデルが実際に解決策を見つけるために多くを推論し始め、おそらく確信を持つ新しい推論パスを見つけて、再び下降していることです。探索することがたくさんあり、中程度に行けばトレーニングは長くなりますが、より良い結果が得られるかもしれません。トレードオフがあり、反復し実験する必要があります。

ファインチューニングや強化ファインチューニングを行う理由の一つは、使用している思考トークンの数を減らすことかもしれません。その場合、これは使用する適切なスナップショットではないかもしれません。

まさにその通りです。どちらにしても、チャートに洞察があり、適切なジョブやチェックポイントを選択できます。

最後に、ここにいくつかのチャートがあり、グレーダーの遅延について少し教えてくれます。グレーディング中に生成されるエラーの数を教えてくれます。これらは何かが間違って進み、ジョブが失敗したときに本当に役立ちます。実行をデバッグするよう求められた場合、これらのチャートを求めるかもしれません。

このページから離れる前の最後の一つのことは、皆さんの注意を底部のこのメッセージセクションに向けたいということです。これは本質的に書き込み先行ログのようなものです。システムが行っていることについてアップデートを提供しているだけです。

これについて本当にクールな一つのことは、各バリデーションランの評価をリンクするというアイデアです。これについて説明してもらえますか?

確かです。トレーニングを開始するとすぐに、nalが作成され、Panが行ったようにクリックでき、以前に見たのと同じ評価ダッシュボードを見ることができます。ここではトレーニングから来ているためスコアがあり、異なるステップをすべて見ることができ、すべてを探索できます。

結果を検査し、以前と同じように、サンプルのすべての情報があり、異なるステップ間をナビゲートして、モデルがそれらの各ステップとチェックポイントでどのように実行されたかを見ることができます。

これは本当にクールです。なぜなら、モデルがそんなに一生懸命考えているときに何をしているかが少し好奇心だったからです。実際にここに入り、そのステップを見つけて、出力を見ることができます。

まさにその通りです。動作がどのように変化しているかを理解しようとします。

モデル比較と結果

曲線を見たので、コードに戻り、モデルがどのように改善されたかを簡単に見てみましょう。

私たちが作成した比較モデルメトリックコードを実行しましょう。ここに実験があります。GPG4-1、O4 mini、そしてファインチューニングされたモデルを比較します。これらすべては、スムーズに実行されるように事前にレンダリングされた評価です。

O3やO4メニューを異なる推論努力で表示していません。なぜなら、実際にO4メニューが低で得た最高だったからです。これは非常に代表的で、バリデーションセットを選択し、すべてのグレーダーを選択して、コードを実行します。

ここにメインの結果プロットがあります。ここでは複数のことに気づくことができます。まず、左の青でGPT-4o.1があり、比較的低い精度と非常に高い再現率を持っていたことがわかります。

一方、O4 miniは非常に高い精度と低い再現率を持っていました。つまり、一部のクラスを予測することを敢えてしませんでした。今、ファインチューニングされたモデルが、両方を改善するF1クリエーターを持っていたため、精度と再現率の両方を他の2つのモデルよりも高く取り、はるかに良いF1スコアを提供できたことがわかります。これは非常に理想的です。常にこれを得るわけではありません。時々再現率だけ、精度だけを改善することがありますが、RFTを実行することで得ることができる利点の感覚を与えてくれます。

そのF1の進行が気に入りました。時間が足りないので、バリアント研究を再実行すべきでしょうか?

非常に素早くやりましょう。ここで実行し、これが得られるものです。F1スコアがそこにあります。ここで何を観察しますか?

すぐに観察しているのは、より多くの平均値と最大値がここで一致していることです。これほど多くはなく、分散バーが実際に短くなっています。また、すべてが平均してより高いスコアを持っていると思います。見づらいですが、真実だと知っています。

この指標でバリデーションセットを簡単に見て、以前と比較してみましょう。パイプラインに行って、これを再実行できますが、分割をバリデーションに変更します。

一対一で比較できる2つのプロットがあります。ここでは見づらいです。小さい値だけに焦点を当てると、パシャントが言ったように、平均が確実に上がったことがわかります。以前は完全にゼロのサンプルがいくつかあったのに対し、完全にゼロのサンプルがありません。これは、モデルが従うことを学んだ推論パターンが実際に非常に汎化可能であることを意味します。

本当にクールです。スライドに戻り、私たちが行ったことを簡単に振り返りましょう。

RFTワークフローの振り返り

RFTワークフローでは、データセットを見ました。選択の資格を行い、本当に正確で良いデータを持つことを確実にしました。そして、評価したいものを評価していることを確実にするグレーダーを実装しました。

プロンプト最適化とベンチマークを行い、ファインチューニングが不要な位置でファインチューニングを使用していないことを確実にしました。そして、学習する余地があるかどうかについて多くの情報を提供するバリアント研究を見て、わずか100サンプルでRFTを開始し、反復しました。さらに良い結果を得たい場合は、後でより多くのサンプルにプッシュできます。

ここで引き出すべき重要なスレッドがいくつかあります。実際にいくつかのベストプラクティスを採用しました。ここのポイント1であるデータセット選択について考えると、2つのことを行いました。1つは分類タスクのクラスをバランスしました。それはトレーニングセットで本当に重要です。もう一つ行ったことは、識別子を使用しなかったことです。セマンティックな意味を持つ実際のクラス名を使用しました。なぜなら、モデルはそれを扱うのがはるかに優れているからです。

グレーダー側では、呼び出すべき本当に重要なことは、かなり堅牢で連続的な信号を持つグレーダーを使用したことです。真または偽のタイプのブール値ではありませんでした。それは本当に、aモデルが非常に連続的なトレーニング信号を持ち、bそれが正しい答えを推測できないことを意味しました。これは本当に重要でした。

また、決してゼロでないことを確実にしました。時々正しいだけでなく、至る所でゼロだけではありませんでした。決して正しくなければ、それらの推論パターンを再現することを学習できません。

それは本当に重要です。私たちのモデルがトレーニングセットで全く良く実行されていない場合、RFが何らかのパフォーマンス改善をもたらすことは非常に困難です。

クリスティンに渡します。ありがとうございます。

顧客事例:Accordance

この時間の早い段階で、ファインチューニングオプションのいくつかと、RFTがドメイン固有のタスクに特に良い方法を示しました。税務と会計分野で特に構築しているスタートアップ顧客、Accordanceにこのスポットライトを当てることを本当に興奮しています。

デビッドは共同創設者兼CEOです。ステージに立ってもらいます。

来ていただき、ありがとうございます。ここにいることは喜びです。では、次のスライドを共有しましょう。

どうぞ。構築しているものとRFTの使用方法について教えてください。

Accordanceは、会計と税務専門家のためのAIプラットフォームです。フードの下では、Accordanceはエージェントのネットワークを使用して、会計と税務戦略、最適化、アドバイザリー、コンプライアンスの多くのワークフローを支援し、RFTを多用しています。実際に、RFTで多くの価値を見てきました。それについてどのように使用するかをお話しできて嬉しく思います。

RFTを方法として考えるとき、最初に思うことの一つは、それが教師ありファインチューニングや選好ファインチューニングとは非常に異なるということです。これらにはそれぞれ利点がありますが、異なる実用性を持ち、少し異なるタスクに使用するかもしれません。そこで、RFTを端から端まで使用した一つの例を説明し、最初にタスク選択について、次にデータ準備について、そしてグレーダーと評価、実際のトレーニング自体について話すことができます。

タスク選択では、パシャントとテオが先ほど述べたように、RFTに非常に適しているタスクがあります。なぜなら、RFTはモデルの推論能力を改善するのに役立つからです。必ずしもモデルに追加の知識を吹き込むわけではありませんが、あなたが望む方法でより良く考えるようにモデルを訓練するのに役立ちます。

そのため、RFTでの多くの価値は、いくらかの価値を見ることができるタスクを選択することにあります。モデルがそこそこ良く実行しているが、おそらく100%良く実行していない、または完璧に実行していない領域があります。そこでモデルの思考能力を向上させることができます。

また、客観的なタスクを選択したいと思います。選好ファインチューニングや教師ありファインチューニングでは、方向性的に正確であるか、主観的であるデータを持つことは時々大丈夫です。RFTでは、それは実際に非常に異なります。専門家が、またはそこに正しい答えがあることで、モデルの正しい出力について合意するような、客観的に正しいデータが欲しいのです。

私たちにとって、選択したワークフローの一つは実際に税務戦略と税務最適化の側面にあります。これを、何らかの税務事実パターン、何らかのシナリオがあると想像できるプロセスとして考えることができます。そして、ポジションが最も効率的になるように、実際にどのように税務を計画し最適化するかを見つけたいと思います。

従来、あなたはそれを行うための一連のステップを通るでしょう。まず事実を確立し、問題を特定し、当局を見つけ、異なる法廷事例と法律を読み、それがどのように機能するかを理解し、そのプロセスを中心に結論を展開するでしょう。これはまた、多くの分析的および数学的モデリングと、法的解釈の側面の両方にわたる推論を必要とするため、従来的に非常に困難なタスクでもあります。会計と税務の世界では常に新しい規制が起こっているため、物事は常に変化しています。

これは客観的であり、このようなタスクで作業することで得られる多くの価値があることを見たため、タスクとして選択しました。

データの選択に関しては、今日前に聞いたことを反映していますが、データの品質が量よりもはるかに重要だということです。私たちにとって、パートナーや、データを選択して私たちと共有することを選択する顧客からデータを持っています。大量のデータを持っていますが、そのデータの非常に小さなサブセットを特に選択します。その理由は、前に述べたように、教師ありファインチューニングでは、データセットが方向性的に良く、そこに高品質のデータがいくらかある限り、低品質のデータ行があっても大丈夫だからです。強化ファインチューニングでは、トレーニングセットに低品質のデータ行が一つでもあると大きな違いがあります。そこで、そのデータを選択することを選びました。

あなたのタスクが何であれ、非常に異なるデータの選択があるかもしれませんが、少量のデータから始めることを提案します。100、200、300行のデータを選択することができます。そして、それを最初から高品質のデータセットにすることです。

実際に評価を構築し、トレーニングを行うことに関しては、グレーダーをどのように設計するか、その周りの直感について今日多く聞きました。一つの実際的な例を提供するために、前に聞いたことを反映したいと思います。客観的であるが、階層化もするグレーダーが欲しいということです。

つまり、本質的に連続的で、良い答えと悪い答えを階層化できるグレーダーが欲しいのです。先ほど述べた例では、税務最適化を行おうとしているとしましょう。選択できる非常にナイーブなグレーダーは、私の答えが正しいか間違っているかでしょう。テストを受けているなら、実際にテストをグレードする良い方法のように見えるかもしれませんが、実際のRFTを行うときにモデルを混乱させる可能性があります。

その理由は、モデルが答えを推測しようとするかもしれず、正しく推測するかもしれないからです。そこに到達するための正しい推論ステップを実際に持つことなく正しく推測すると、本質的にそれを混乱させ、間違った推論パスウェイで報酬を与えることになります。正しい推論パスウェイが報酬を受ける場合に本当に価値を見るのです。

そうすると、モデルは時間とともにより賢く、より賢くなります。そのため、連続的で階層化の両方であるグレーダーを選択したいと思います。

有効なグレーダーを持つタスクをどのように設計するかについても考えることができます。連続関数を選択したとしましょう。税務最適化の場合、どのようにして節約できる税額はいくらか、最適な税務節約からどれだけ偏差するかということでしょう。それは連続関数の例であり、階層化でもあります。

しかし、マルチパートグレーダーにしたいかもしれません。つまり、どれだけの税金を節約しているかだけを報酬とすると、モデルはランダムな税務戦略をでっち上げてその数字をどんどん高くすることで報酬を受けることになります。そのため、この戦略がどれくらい実行可能かを言うグレーダーの別の部分を追加したいかもしれません。その部分に重みを付けるか、グレーダーの他の部分をショートサーキットするかもしれません。

グレーダーの選択は非常に重要で、実際にRFTを良く行うことであり、非常にインテリジェントで、グレーダーでのシンプルな設計を持つことが長い道のりになることを見てきました。

最後に、評価とトレーニング自体に行くことでは、正しいハイパーパラメータの選択やグラフの見方について、すでに話した直感があります。プロセスを経ていくうちに、それらがどのように調整されているかを理解でき、それらを行うことができるでしょう。

その端から端のプロセスを要約するなら、正しいタスク、正しいグレーダーの選択、そのプロセスを経ることが非常に重要で、本当に良い結果を得ることができます。税務でLLMがどのくらい良く実行しているかを評価する業界標準であるTax Benchという評価セットで作業し、RFTだけを使用して40%以上の改善を見ました。それは私たちの提供と私たちのユーザーの両方にとって非常に価値があります。

ありがとう、デビッド。時間に注意したいと思いますが、非常に短く次の画面にフラッシュして、試した他の技術について共有してもらえますか?

パンが前に述べたように、RFTは間違いなく投資です。最初から全面的に進むのではなく、他のすべてのことを試してください。プロンプトエンジニアリング、RAGの使用を知っています。実際には2つの直交軸として考えるのが好きです。モデルが知っていること、または事実的知識と呼ぶもの、そしてモデルがどのように考えるか、または経験的知識です。

私たちのタスクでは、両方を改善したいと思います。RAGとそれらの技術を使用して、モデルが知っていることをどのように改善するかを見たいが、モデルがどのように考えるかに価値を見ることができれば、RFTも考慮したいと思います。

テオから質問があります。

異なるグレーダーについて多く話しましたが、そのグレーダーで反復するプロセスはどのようなものだったか、その間に報酬ハッキングを観察したかを知りたいだけです。

報酬ハッキングは、私が前に簡単に述べたことでもあります。最初に二進クラスグレーダーを選択するかもしれませんが、モデルは推測するかもしれません。さらに一歩進めて、二進の代わりに複数選択の答えを与えるかもしれません。10のオプションがあり、それぞれがどれくらい良いかの異なるレベルの階層化があります。これは推測と報酬ハッキングを防ぐため、二進よりも少し良いですが、その時点で非常に連続的で微分可能な関数ではないレベルがまだあります。そのため、理想的にはできるだけ階層化したいと思います。そのプロセスを通じて、この報酬をできるだけ階層化可能にする方法を多く見つけました。

共有してくれてありがとう。それは本当にクールです。

Q&A セッション

私たちは実際に聴衆から質問を受けました。これは両方に関連するかもしれません。質問は、人間に法的質問に答えるチャットボットアプリを持っている、というものです。彼らのプロンプトはせいぜい一貫性がなく、出力は構造化されていないテキストだけです。トレーニングプロンプトが推論に重要だと述べましたが、グレーダーのために構造化出力を生成するトレーニングプロンプトを使用し、任意のクエリでモデルを実行し、ユーザーに良い結果を期待できるでしょうか?

それは良い質問です。私が始めて、それから追加します。高いレベルでの考え方は、強化学習が教師ありファインチューニング学習とは少し異なるということです。そのため、環境をどのように設定するかが、ハイパーパラメータやその他の情報よりもはるかに大きな違いを生みます。

そのため、正しい環境、つまり、タスクをどのように選択し、データと出力自体でのタスクでのグレーダーの構造をどのように選択するかを設定することが大きな違いを生みます。そのため、すべての種類の異なるデータを多く持っている場合、それはノイジーで乱雑であり、実際にそれをクリーンアップし、そのタスクとその環境がどのように見えるかを本当に形式化することをお勧めします。

それは素晴らしい見解だと思います。

ありがとう、デビッド、参加してくれて。Q&Aセッションに移ります。パシャントをステージに戻します。

Q&Aの時間をもっと欲しいというフィードバックを受けました。1時間に近づいていることは知っていますが、引き出したいくつかの質問があります。Q&Aタブが見えない場合は、実際のQ&Aテキストをクリックして、いくつかの答えを見てください。

始めましょう。次のスライドに行くと、いくつかを引き出しました。質問は、RFTに最も適しているタスクの種類は何かということです。

この質問をよく受けます。私から始めて、あなたが加えてください。

これを2つの重要なことがタスクをRFTに適するようにすることへの貢献として考えています。まず、推論モデルを使用しなければなりません。あなたのタスクが非推論と推論モデルで非常に比較可能な性能により適している、または持っている場合、RFTを使用するケースははるかに弱いと思います。

2番目は、何らかの正式なルーブリックをタスクに適用し、提供できる連続的な報酬を構築できなければならないということです。デビッドが微分可能な報酬について話したことは本当に良く言ったと思います。それが聖杯だと思います。報酬を与える正式な数学関数を持つことができれば、それが理想的です。しかし、それなしでも、タスクをグレードするための非常に形式化された階層化されたルーブリックを持つことは、RFTを行うときに本当に重要です。

それに加えて、あなたのタスクに対する正しいまたは好ましい答えがあることを本当に意味します。そのため、そのような答えがある場合、ルーブリックを構築し、モデルがより良く推論するように訓練するためにフィードバックするグレーダーの多くのエンジニアリングを行うことができます。

ここで再び言う価値があることは、監査しようとしているモデルでタスクが非ゼロのベースライン性能を持たなければならないということです。O4 miniには困難すぎるタスクがあり、評価で常に5%または10%しか得られない場合、おそらく非常に強いRFTランで終わることはないでしょう。

次の質問は、私のデータはかなりノイジーで、品質が変動しています。RFTを使用できますか?

この質問はすでにカバーしたと思います。最初の部分は、本当にデータをクリーンアップすることを確実にすることです。なぜなら、各サンプルがRFTで非常に非常に価値があるからです。

この例は、行った分類タスクに戻ることです。互いに競合する2つの分類タスクがあった場合、RFTシステムが学習したいルールが本当に明確でなく、システムを混乱させ、おそらく貧弱なトレーニングランになるでしょう。

RFTを使用するときのコスト、遅延、性能の考慮事項とトレードオフを共有できますか?

これを撃ってみましょう。RFTを使用するチームの動機は、多くの場合、O4 miniから03レベルのフロンティアのような性能を抽出することです。それが今日の状況です。将来は異なるモデルを持つかもしれませんが、ドメイン固有のタスクでO4 miniを専門化すると、ほとんどの場合、03レベルの性能を得るか、それを上回ることが実際に可能です。

それは定義上、O4 miniがより安く、より小さく、より高速であるため、実行するのをより安価にします。方向性的にはこれは理にかなっていますが、最終的にファインチューニングされたモデルが生産する推論トークンの正確な数を制御することは困難だとも言えます。そのため、それは決してショートベットではありません。

期待する本番トラフィックの量にも依存すると思います。なぜなら、実験とトレーニングの両方でRFTを実行するコストがあるからです。そのため、本番でそれを補うなら、進めてください。本番が非常に低く、それを補えない場合は、少し困難です。

質問をありがとうございます。これらのリソースを画面にフラッシュしますが、これらのリソースすべてを含むメールを受け取ります。コピーする心配はありません。

今後のビルドアワーを共有したいと思います。7月31日は組み込みツールについて話し、8月26日はコーデックについて話します。ライブで参加してくれてありがとう。7月31日にお会いしましょう。

コメント

タイトルとURLをコピーしました