メインコンテンツへスキップ
これらのクラスは、機械学習 Experiments のトラッキング、Artifacts の管理、SDK の動作設定を行うための中核的な構成要素です。これらの基本クラスを使うと、メトリクスをログし、モデル チェックポイントを保存し、データセットをバージョン管理し、高い再現性とコラボレーション機能を備えた実験設定を管理できます。
ML Experiments でこれらのクラスを使用する方法について詳しくは、Experiments および Artifacts のドキュメントを参照してください。

コアクラス

クラス説明
RunW&B にログされる計算の主要な単位で、メトリクス、設定、出力を含む単一の ML 実験を表します。
Artifactデータセットとモデルのバージョン管理のための、柔軟で軽量な基本要素です。自動重複排除とリネージのトラッキングを備えています。
SettingsW&B SDK の設定を管理し、ログすることから API とのやり取りまでの動作を制御します。

はじめに

実験をトラッキングする

メトリクスをログしながら、機械学習実験を作成してトラッキングします。
import wandb

# 新しいrunを初期化する
with wandb.init(project="my-experiments", config={"learning_rate": 0.001}) as run:
    # 設定にアクセスする
    config = run.config
    
    # トレーニング中にメトリクスをログする
    for epoch in range(10):
        metrics = train_one_epoch()  # トレーニングロジックをここに記述
        run.log({
            "loss": metrics["loss"],
            "accuracy": metrics["accuracy"],
            "epoch": epoch
        })
    
    # サマリーメトリクスをログする
    run.summary["best_accuracy"] = max_accuracy

モデル artifact をバージョン管理する

メタデータ付きの、バージョン管理されたモデル artifact を作成してログします:
import wandb

with wandb.init(project="my-models") as run:
    # モデルをトレーニングする
    model = train_model()
    
    # モデルのartifactを作成する
    model_artifact = wandb.Artifact(
        name="my-model",
        type="model",
        description="ResNet-50 trained on ImageNet subset",
        metadata={
            "architecture": "ResNet-50",
            "dataset": "ImageNet-1K",
            "accuracy": 0.95
        }
    )
    
    # artifactにモデルファイルを追加する
    model_artifact.add_file("model.pt")
    model_artifact.add_dir("model_configs/")
    
    # artifactをW&Bにログする
    run.log_artifact(model_artifact)

SDK設定を行う

要件に合わせて、W&B SDKの動作をカスタマイズします。
import wandb

# プログラムで設定を構成する
wandb.Settings(
    project="production-runs",
    entity="my-team",
    mode="offline",  # オフラインで実行し、後でSyncする
    save_code=True,   # ソースコードを保存する
    quiet=True        # コンソール出力を抑制する
)

# または環境変数を使用する
# export WANDB_PROJECT=production-runs
# export WANDB_MODE=offline

# カスタム設定で初期化する
with wandb.init() as run:
    # 実験コードをここに記述する
    pass
データセット、モデル、評価の間の関係をトラッキングします:
import wandb

with wandb.init(project="ml-pipeline") as run:
    # データセットartifactを使用する
    dataset = run.use_artifact("dataset:v1")
    dataset_dir = dataset.download()
    
    # データセットを使用してモデルをトレーニングする
    model = train_on_dataset(dataset_dir)
    
    # データセットのリネージを持つモデルartifactを作成する
    model_artifact = wandb.Artifact(
        name="trained-model",
        type="model"
    )
    model_artifact.add_file("model.pt")
    
    # 自動リネージトラッキングでログする
    run.log_artifact(model_artifact)