メインコンテンツへスキップ
多数の run があるWorkspaceでは、特に優れた run、本番モデル、失敗した実験、重要な比較基準を把握するのが難しくなることがあります。W&B App には、run の整理や比較に役立つ機能があります。
  • ピン留めした run: 最大 6 件の run をピン留めして、Workspace内と runs リストの先頭に常に表示できます。ベースライン run がある場合、ベースラインは暗黙的にピン留めされるため、ピン留めできる run は最大 5 件です。
  • ベースライン run: 比較の基準点としてベースライン run を指定します。ベースライン run は、Workspace内と runs リストの先頭に常に表示されます。Runs table では、summary メトリクスの差分によって各 run がベースラインと比べてどうかが表示されます。折れ線グラフでは、比較しやすいようにベースラインが視覚的に区別されたスタイルで表示されます。
ベースラインとピン留めした run を含む折れ線グラフ これらの機能は、特に次のような場合に役立ちます。
  • 新しい実験を本番モデルと比較する。
  • 実験中に複数の候補モデルをトラッキングする。
  • 新しい run が最良の結果を上回っているかどうかを評価する。
制限事項を参照してください.

run をピン留めする

最大 6 件の run をピン留めして、Workspace の上部に固定表示できます。ベースライン run がある場合は、ベースラインが暗黙的にピン留めされるため、ピン留めできる run は最大 5 件です。ピン留めした run は、ほかの run に並べ替えやフィルターを適用しても表示されたままになります。ピン留めした run は、円形のピンアイコンとともに run selector の上部に表示され、視覚的な区切り線でほかの run と分けて表示されます。 run をピン留めするには、次の手順に従います。
  1. Workspace にアクセスします。
  2. run selector または Runs table で、ピン留めする run を検索します。
  3. **アクション () **メニューをクリックし、Pin run を選択します。
run がピン留めされた Runs table
run のピン留めを解除するには、ピンアイコンをクリックするか、run をピン留めする手順に従い、代わりに Unpin run を選択します。

ベースライン run を管理する

Workspace 内の他の run を評価する際の基準点として使用するために、1 つの run を Workspace のベースラインとして指定できます。 runs セレクタと Runs table では、ベースライン run はピン留めされた run と並んで最上部に表示され、ピンの代わりにブックマークアイコンが表示されます。 折れ線グラフでは、ベースライン run の線は他の線よりも太く表示されます。プロットまたは凡例にカーソルを合わせると、ベースライン run の線は破線で表示されます。
別の run をベースラインと比較するデモ

ベースライン run を設定する

ベースライン run を設定するには、次の手順に従います。
  1. Workspace にアクセスします。
  2. run selector または Runs table で、ベースラインとして使用する run を検索します。
  3. action () メニューをクリックし、Set as baseline を選択します。
ベースライン run は run selector の上部に表示され、視覚的な区切り線によって他の run と分けて表示されます。ベースライン run には、円の代わりにブックマークアイコンが表示されます。
ベースライン run とピン留めした run が表示された Runs table

ベースライン run を変更する

同時にベースラインに設定できる run は 1 つだけです。ベースラインにする run を変更するには、次の手順に従います。
  1. Workspace にアクセスします。
  2. run selector または Runs table で、新しいベースラインとして使用する run を検索します。
  3. action () メニューをクリックし、Replace baseline を選択します。
    メニュー項目が無効な場合は、使用可能なピン留めスロットが少なくとも 1 つあることを確認してください。必要に応じて、ピン留めされた run の横にある円形のピンアイコンをクリックして、ピン留めを解除します。
  4. 新しい run がベースラインになり、以前のベースラインは自動的にピン留めされるため、簡単に見つけられます。必要に応じて、そのピンアイコンをクリックしてピン留めを解除します。

ベースライン指定を解除する

ベースライン指定を解除するには:
  1. Workspace にアクセスします。
  2. run selector または Runs table で、現在のベースライン run を探します。
  3. action () メニューをクリックし、Remove baseline を選択します。
    メニュー項目が無効になっている場合は、少なくとも 1 つのピン留めスロットが空いていることを確認してください。必要に応じて、ピン留めされた run の横にある丸いピン アイコンをクリックして、ピン留めを解除してください。
  4. 以前のベースラインは自動的にピン留めされるため、簡単に見つけられます。必要に応じて、そのピン アイコンをクリックしてピン留めを解除してください。

run をベースラインと比較する

ベースライン run は、その run がログしたメトリクスの折れ線グラフに常に表示されます。折れ線グラフでは、ベースライン run の線はほかの線よりも太く表示されます。
  • プロット上の任意の位置にカーソルを合わせると、ベースライン run とピン留めした run を含む、表示中のすべての run の値を示すツールチップが表示されます。
    特定の位置における表示中のすべての run の詳細を示すデモ
  • ベースライン run の凡例ラベルにカーソルを合わせると、その線が目立つように表示されます。太い破線として表示され、表示中のほかの run の線は彩度を下げて表示されます。
    ベースライン run の詳細を示すデモ
  • 別の run の凡例ラベルにカーソルを合わせると、その run の線が目立つように表示され、太い破線で表示されるベースラインと比較できます。表示中のほかの run の線は彩度を下げて表示されます。
    別の run をベースラインと比較するデモ

summary メトリクスの差分

ある run をベースラインに設定すると、デフォルトでは、ベースライン run と同じsummary メトリクスをログする他のすべての run に、そのメトリクスのベースラインからの差分 (変化量) が表示されます。差分は、Runs table内の各 run の行で、メトリクス値の右側に表示されます。 デフォルトでは、差分は濃いグレーの背景に濃いグレーのテキストで表示されます。すばやく視覚的に把握できるように意味に基づく色分けを有効にするには、列の Metric directionality を設定します。directionality を設定すると、次のように表示されます。
  • 他の run がベースラインより 優れている (方向性としてより良い) 場合、差分は薄い赤の背景に濃い赤のテキストで表示されます。
  • 他の run がベースラインより 劣っている (方向性としてより悪い) 場合、差分は薄いティールの背景に濃いティールのテキストで表示されます。
メトリクスの directionality を設定するには、次の手順を実行します。
  1. Runs tableで、そのメトリクスの列見出しにカーソルを合わせます。
  2. 表示される action () メニューをクリックします。
  3. Metric directionalityHigher values are best または Lower values are best に設定します。
次のスクリーンショットは、runs nanochat-train-basenanochat-train-mid を、ベースライン run nanochat-train と比較したものです。差分メトリクスは、TOTAL_TRAINING_TIMETRAIN/DTTRAIN/GRAD_NORM に表示されています。 ベースライン run からのsummary メトリクスの差分を比較したスクリーンショット

Workspace で summary メトリクスの差分を非表示にする

デフォルトでは、ベースライン run がある Workspace では、summary メトリクスの差分が常に表示されます。Workspace でこれを非表示にするには、次の手順に従います。
  1. Workspace で Settings をクリックします。
  2. 表示されたドロワーで Runs をクリックします。
  3. Baseline タブで、Show value deltas in the runs table を切り替えます。
  4. Workspace settings ドロワーを閉じます。

使用例

このセクションでは、ピン留めした run とベースライン run が Experiments を進める際に役立つ代表的なシナリオを紹介します。
  • 本番モデルをトラッキングする: 新しいモデルがデプロイ前に必要な品質基準を満たしていることを確認します。
    1. 本番モデルをベースラインとして設定します。
    2. デプロイ済みのモデルを基準にすべての Experiments を比較し、本番を上回る候補を特定します。
  • ハイパーパラメーター実験を比較する: ハイパーパラメーター sweep や手動で行った実験を、既知の最良の設定と比較して評価します。
    1. 既知の最良の設定をベースラインとして設定します。
    2. 有望な候補が見つかったらピン留めします。
    3. 折れ線グラフを使用して、各 run をベースラインと視覚的に比較します。
    4. より良い設定が見つかるたびに、ベースラインを更新します。

ワークフローの例

このセクションでは、ピン留めした run とベースライン run を使って run を比較する方法を示します。
  1. 一連の run によるハイパーパラメーター調整のシナリオをシミュレートする、このサンプルコードを実行します。山かっこ (<>) で囲まれたプレースホルダーは、ご自身の値に置き換えてください。
    import wandb
    import random
    import math
    
    def train_model(learning_rate, batch_size, run_name, tags=None):
        """Simulate training a model with given hyperparameters."""
        config = {
            "learning_rate": learning_rate,
            "batch_size": batch_size,
            "optimizer": "adam",
            "architecture": "resnet50"
        }
        
        with wandb.init(
          # ご自身の team とプロジェクト名に置き換えてください
            project="hyperparameter-tuning",
            entity="<team>",
            name=run_name,
            config=config,
            tags=tags or []
        ) as run:
            # トレーニングループをシミュレート
            for epoch in range(50):
                # シミュレートしたメトリクス
                accuracy = 0.6 + 0.3 * (1 - math.exp(-learning_rate * epoch / 10))
                loss = 1.0 * math.exp(-learning_rate * epoch / 10)
                
                run.log({
                    "epoch": epoch,
                    "accuracy": accuracy,
                    "loss": loss
                })
    
    # 標準設定でベースライン run を作成
    train_model(
        learning_rate=0.001,
        batch_size=64,
        run_name="baseline-config",
        tags=["baseline", "production"]
    )
    
    # 異なる学習率で実験
    train_model(
        learning_rate=0.003,
        batch_size=64,
        run_name="lr-experiment-0.003",
        tags=["experiment"]
    )
    
    train_model(
        learning_rate=0.0001,
        batch_size=64,
        run_name="lr-experiment-0.0001",
        tags=["experiment"]
    )
    
    このコードを実行すると、Workspace に 3 つの run が作成されます。
  2. baseline-config をベースライン run に設定します。
  3. baseline-config を常に表示しておくためにピン留めします。
  4. 実験 run をベースラインと比較します。
  • Runs table で、各 run の値の横に表示される summary メトリクスの差分を確認し、ベースラインと比較します。
    • 折れ線グラフでは、常に表示されるベースラインと 1 つ以上の run のパフォーマンスを比較します。
  1. 有望な実験をピン留めして、さらに調査します。この例では、50 エポック後には lr-experiment-0.003 が最も高い accuracy (~0.64) と最も低い loss (~0.86) を示します。

制限事項

以下の機能は、ピン留めされたrunおよびベースラインrunではまだサポートされていません。
  • グループ化: run selectorまたはRuns tableでrunを表示する際、runが列ごとにグループ化されている場合、ピン留めされたrunおよびベースラインrunは他のrunと見た目で区別されません。
  • Reports: W&B Report内のrun setでは、ピン留めされたrunおよびベースラインrunは他のrunと見た目で区別されません。
  • Workspace viewのみ: 単一のrunのWorkspaceを表示している場合、ベースラインは表示されません。
  • 折れ線グラフのみ: ベースライン比較は折れ線グラフでのみ利用でき、棒グラフやメディアパネルなどの他のパネルではまだ利用できません。