ファインチューニング可能なモデルの一覧については、OpenAI ドキュメントを参照してください。
OpenAI Python API をインストールまたは更新する
OpenAI のファインチューニング結果を Sync する
wandb.integration.openai.fine_tuning モジュールの WandbLogger クラスを使用します。

ファインチューニングをSyncする
リファレンス
| Argument | Description |
|---|---|
| fine_tune_job_id | client.fine_tuning.jobs.create を使用してファインチューニング ジョブを作成したときに取得する OpenAI Fine-Tune ID です。この引数が None (デフォルト) の場合、まだ Sync されていないすべての OpenAI ファインチューニング ジョブが W&B に Sync されます。 |
| openai_client | 初期化済みの OpenAI クライアントを sync に渡します。クライアントが指定されていない場合は、ロガー自身がクライアントを初期化します。デフォルトでは None です。 |
| num_fine_tunes | ID が指定されていない場合、まだ Sync されていないすべてのファインチューニングが W&B にログされます。この引数を使用すると、Sync する直近のファインチューニング数を選択できます。num_fine_tunes が 5 の場合、直近 5 件のファインチューニングが選択されます。 |
| project | ファインチューニングのメトリクス、モデル、データなどがログされる W&B プロジェクト名です。デフォルトのプロジェクト名は “OpenAI-Fine-Tune” です。 |
| entity | run の送信先となる W&B ユーザー名またはチーム名です。デフォルトでは、通常はユーザー名であるデフォルトの entity が使用されます。 |
| overwrite | 強制的にログを行い、同じファインチューニング ジョブに対応する既存の wandb run を上書きします。デフォルトでは False です。 |
| wait_for_job_success | OpenAI のファインチューニング ジョブは、開始後に完了まで少し時間がかかるのが一般的です。ファインチューニング ジョブの完了後できるだけ早くメトリクスを W&B にログするため、この設定では 60 秒ごとにファインチューニング ジョブのステータスが succeeded に変わったかどうかを確認します。ファインチューニング ジョブの成功が検出されると、メトリクスは自動的に W&B に Sync されます。デフォルトは True です。 |
| model_artifact_name | ログされるモデル artifact の名前です。デフォルトは "model-metadata" です。 |
| model_artifact_type | ログされるモデル artifact のタイプです。デフォルトは "model" です。 |
| **kwargs_wandb_init | wandb.init() に直接渡される追加の引数 |
データセットのバージョン管理と可視化
バージョン管理

可視化

ファインチューニングしたモデルとモデルのバージョン管理
WandbLogger は fine_tuned_model`` ID と、モデルのすべての詳細 (ハイパーパラメーター、データファイル ID など) を含む model_metadata.json ファイルを作成し、これを W&B Artifact としてログします。
このモデル (メタデータ) の Artifact は、さらに W&B Registry 内のモデルにリンクできます。

よくある質問
run を整理するにはどうすればよいですか?
ファインチューニングしたモデルにアクセスするにはどうすればよいですか?
model_metadata.json) と設定の両方として W&B にログされます。
VERSION には、次のいずれかを指定します:
v2のようなバージョン番号ft-xxxxxxxxxのようなファインチューニング IDlatestのように自動で追加されたエイリアス、または手動で追加したエイリアス
model_metadata.json ファイルを読み取ることで、fine_tuned_model ID を取得できます。
ファインチューニング の Sync に失敗した場合はどうなりますか?
overwrite=True を使用し、ファインチューニング のジョブ ID を渡すことができます。
W&B でデータセットとモデルをトラッキングできますか?
wandb.Artifact や wandb.Run.log などの低レベルの wandb API を使えば、いつでもパイプラインを制御できます。これにより、データとモデルを完全に追跡可能にできます。

リソース
- OpenAIのファインチューニング ドキュメント は非常に詳しく、役立つヒントが数多く載っています
- デモ用Colab
- W&B を使った OpenAI GPT-3.5 と GPT-4 モデルのファインチューニング方法 レポート