メインコンテンツへスキップ
このページでは、OpenAI GPT-3.5 または GPT-4 モデルのファインチューニングに関するメトリクスと設定を W&B にログする方法を説明します。W&B を OpenAI のファインチューニング API と統合することで、ファインチューニングの実験、モデル、データセットを 1 か所でトラッキングし、結果を同僚と共有できます。OpenAI モデルをファインチューニングし、トレーニングデータと生成されたモデルに対して一元的な実験管理とバージョン管理を行いたい場合は、このインテグレーションを使用してください。
ファインチューニング可能なモデルの一覧については、OpenAI ドキュメントを参照してください。
OpenAI でのファインチューニングに W&B を統合する方法についての補足情報は、OpenAI ドキュメントの W&B Integration セクションを参照してください。

OpenAI Python API をインストールまたは更新する

ファインチューニングの結果を Sync する前に、互換性のあるバージョンの OpenAI Python クライアントがインストールされていることを確認してください。W&B の OpenAI ファインチューニング インテグレーションは、OpenAI バージョン 1.0 以降に対応しています。最新バージョンについては、OpenAI Python API ライブラリの PyPI ドキュメントを参照してください。 OpenAI Python API をインストールするには、次を実行します。
OpenAI Python API がすでにインストールされている場合は、以下のコマンドで更新します。

OpenAI のファインチューニング結果を同期する

このセクションでは、OpenAI のファインチューニング ジョブのメトリクスと設定を W&B に送信し、他の Experiments とあわせて確認する方法を説明します。これを行うには、wandb.integration.openai.fine_tuning モジュールの WandbLogger クラスを使用します。
OpenAI の自動スキャン機能

ファインチューニングを同期する

スクリプトから結果を同期できます。次の例では、最小限の 1 行の呼び出しと、同期の挙動を制御するために指定できる省略可能なパラメーター一式の両方を示します。

参照

次の表では、WandbLogger.sync が受け付ける各引数について説明します。

データセットのバージョン管理と可視化

ファインチューニング ジョブを同期すると、W&B はトレーニング データと検証データも取得するため、それらをバージョン管理し、インタラクティブに探索できます。以下の各サブセクションでは、W&B がトラッキングする内容と、その確認方法について説明します。

バージョン管理

ファインチューニングのためにOpenAIへアップロードするトレーニングデータと検証データは、バージョン管理をしやすくするために、自動的にW&B Artifactsにログされます。次の画像は、Artifacts内のトレーニングファイルの表示例です。ここでは、このファイルをログしたW&B run、ログされた日時、このデータセットのバージョン、メタデータ、そしてトレーニングデータからトレーニング済みモデルまでのDAGリネージを確認できます。
トレーニングデータセットを含むW&B Artifacts

可視化

W&B はデータセットを W&B Tables として可視化し、データセットの探索、検索、操作を行えます。以下の画像は、W&B Tables で可視化されたトレーニングサンプルを示しています。
OpenAI データ

ファインチューニングしたモデルとモデルのバージョン管理

OpenAI はファインチューニングしたモデルの基となる重みを公開していないため、W&B は代わりにそのメタデータを取得してモデルをトラッキングします。OpenAI は、ファインチューニングしたモデルの ID を返します。モデルの重みにはアクセスできないため、WandbLoggerfine_tuned_model`` ID と、モデルのすべての詳細 (ハイパーパラメーター、データファイル ID など) を含む model_metadata.json ファイルを作成し、これを W&B Artifact としてログします。 このモデル (メタデータ) の Artifact は、さらに W&B Registry 内のモデルにリンクできます。
OpenAI モデルのメタデータ

よくある質問

以下のセクションでは、OpenAI から同期したファインチューニング Runs の共有、整理、復元に関するよくある質問に回答します。

チームでファインチューニング結果を共有する

次を使用して、ファインチューニング ジョブをチームアカウントにログしてください。

Runs を整理する

W&B は Runs を自動的に整理します。ジョブタイプ、base model、学習率、トレーニングファイル名、その他のハイパーパラメーターなど、任意の設定パラメーターに基づいてフィルターや並べ替えを行えます。 さらに、Runs の名前を変更したり、メモを追加したり、タグを作成してグループ化したりできます。 整理できたら、Workspace を保存し、それを使用して report を作成できます。Runs や保存済みの Artifacts (トレーニング/検証ファイル) からデータを取り込めます。

ファインチューニングしたモデルにアクセスする

W&B は、ファインチューニングしたモデルの ID を Artifacts (model_metadata.json) および設定としてログします。
<version> プレースホルダーには、次のいずれかを指定します。
  • v2 のようなバージョン番号。
  • ft-xxxxxxxxx のような ファインチューニング ID。
  • latest のような自動的に追加されたエイリアス、または手動で追加したエイリアス。
その後、ダウンロードした model_metadata.json file を参照することで、fine_tuned_model ID にアクセスできます。

Sync されなかったファインチューニングを復元する

ファインチューニング の情報が W&B に正常にログされなかった場合は、overwrite=True を使用し、ファインチューニング のジョブ ID を渡してください。

W&B でデータセットとモデルをトラッキングする

W&B は、トレーニングデータと検証データを自動的に Artifacts としてログします。W&B は、ファインチューニングしたモデルの ID を含むメタデータも Artifacts としてログします。 wandb.Artifactwandb.Run.log などの低レベルの wandb API を使って、パイプラインを制御することもできます。これにより、データとモデルを完全に追跡可能にできます。
OpenAI のトラッキングに関する FAQ

リソース

より詳しい背景情報とエンドツーエンドの例については、以下のリソースを参照してください。