メインコンテンツへスキップ
Colab で試す

モデルをログに記録する

このガイドでは、W&B の run にモデルをログに記録し、それらを操作する方法を説明します。
以下の API は、実験トラッキングのワークフローの一部としてモデルを追跡する際に有用です。このページで紹介する API を使用して、モデルを run にログし、メトリクス、テーブル、メディア、その他のオブジェクトにアクセスできます。次のような場合は、W&B Artifacts の使用をおすすめします:
  • モデル以外のシリアライズされたデータ(データセット、プロンプトなど)についても、さまざまなバージョンを作成し管理したい場合
  • モデルまたは W&B で追跡されているその他のオブジェクトのリネージグラフを探索したい場合
  • これらのメソッドで作成されたモデルのアーティファクトを操作し、プロパティ(メタデータ、エイリアス、説明)を更新したい場合
W&B Artifacts と高度なバージョニングのユースケースについては、Artifacts のドキュメントを参照してください。

run にモデルをログする

log_model を使って、指定したディレクトリ内のコンテンツを含むモデルのアーティファクトをログします。log_model メソッドは、生成されたモデルのアーティファクトを W&B run の出力としてもマークします。 モデルを W&B run の入力または出力としてマークすると、モデルの依存関係や関連付けを追跡できます。モデルの lineage は W&B App UI で確認できます。詳しくは、Artifacts 章の Explore and traverse artifact graphs ページを参照してください。 path パラメータには、モデルファイルが保存されているパスを指定します。パスにはローカルファイル、ディレクトリ、または s3://bucket/path のような外部バケットへの reference URI を指定できます。 必ず、<> で囲まれた値は自分の値に置き換えてください。
import wandb

# W&B runを初期化する
with wandb.init(project="<your-project>", entity="<your-entity>") as run:

    # モデルをログに記録する
    run.log_model(path="<path-to-model>", name="<name>")
name パラメータにモデルアーティファクトの名前をオプションで指定できます。name が指定されていない場合、W&B は入力パスのベース名の前に run ID を付けたものを名前として使用します。
あなた、または W&B がモデルに割り当てた name を控えておいてください。モデルパスを wandb.Run.use_model() メソッドで取得するには、モデル名が必要です。
パラメータについては API リファレンスの log_model を参照してください。

ログ済みモデルをダウンロードして使用する

use_model 関数を使用して、W&B run に以前ログしたモデルファイルにアクセスし、ダウンロードします。 取得したいモデルファイルが格納されているモデルアーティファクトの名前を指定します。指定した名前は、既存のログ済みモデルアーティファクトの名前と一致している必要があります。 最初に log_model でファイルをログしたときに name を指定しなかった場合、割り当てられるデフォルト名は、入力パスのベース名の前に run ID を付与したものになります。 必ず、<> で囲まれた値を自分の値に置き換えてください:
import wandb

# runを初期化する
with wandb.init(project="<your-project>", entity="<your-entity>") as run:

    # モデルにアクセスしてダウンロードする。ダウンロードされたアーティファクトのパスを返す
    downloaded_model_path = run.use_model(name="<your-model-name>")
The use_model 関数は、ダウンロードされたモデルファイルのパスを返します。後でこのモデルを参照したい場合は、このパスを控えておいてください。前述のコードスニペットでは、返されたパスは downloaded_model_path という変数に格納されています。 パラメータと戻り値の型については、API リファレンスの use_model を参照してください。