- アーティファクトのバージョンとしてログされた2 つの W&B Tables を比較して、データやモデル性能の変化を分析する。
- データのより高レベルなパターンを把握する。
- テーブルにログした値が run 全体でどのように変化するかを表示する。
W&B Tables には次のような特性があります:
- アーティファクトコンテキストではステートレス: アーティファクトバージョンとともにログされたテーブルは、ブラウザウィンドウを閉じるとデフォルトの状態にリセットされます。
- Workspace やレポートコンテキストではステートフル: 単一 run のワークスペース、複数 run のプロジェクトワークスペース、またはレポートでテーブルに加えた変更は保持されます。
テーブル比較オプション

- W&B アプリで対象のプロジェクトを開きます。
- プロジェクトのサイドバーで Artifacts アイコンを選択します。
- アーティファクトのバージョンを 1 つ選択します。

- サイドバーで比較対象としたい 2 つ目のアーティファクトバージョンにカーソルを合わせ、表示される Compare をクリックします。たとえば、次の画像では「v4」とラベル付けされたバージョンを選択し、同じモデルによる 5 エポックの学習後に行われた MNIST の予測と比較しています。

マージビュー

- 結合キーを選択する: 左上のドロップダウンを使って、2 つのテーブルで結合キーとして使う列を設定します。通常これは各行の一意な識別子であり、たとえばデータセット内の特定のサンプルのファイル名や、生成したサンプルに付与された連番インデックスなどです。現在は 任意の 列を選択できるため、可読性の低いテーブルになったり、クエリが遅くなったりする可能性がある点に注意してください。
- 結合ではなく連結する: このドロップダウンで “concatenating all tables” を選択すると、列で結合する代わりに、両方のテーブルのすべての行を ユニオン(UNION ALL)して 1 つの大きな Table にまとめます。
- 各 Table を明示的に参照する: フィルター式で 0、1、* を使って、片方または両方の Table インスタンス内の列を明示的に指定します。
- 詳細な数値の差分をヒストグラムで可視化する: 任意のセルの値の違いを一目で比較できます。
サイドバイサイド表示

- テーブルを一目で比較する: 任意の操作(ソート、フィルタ、グループ化)を両方のテーブルに同時に適用して、変更点や差分を素早く確認します。たとえば、予測値ごとにグループ化した誤予測、全体で最も難しいネガティブ例、真のラベルごとの信頼度スコア分布などを確認できます。
- 2つのテーブルを独立して探索する: それぞれのテーブルをスクロールし、関心のある側や行にフォーカスします
アーティファクトを比較する
時系列でテーブルを比較する

モデルバリアント間でテーブルを比較する
baseline と新しいモデルバリアント 2x_layers_2x_lr の予測を比較します。このバリアントでは、最初の畳み込み層のチャネル数が 32 から 64 に、2番目が 128 から 256 に、学習率が 0.001 から 0.002 にそれぞれ2倍になります。このライブ例では、サイドバイサイドビューを使用し、左タブではエポック 1 回後、右タブではエポック 5 回後の誤予測のみにフィルタリングして比較します。
- 学習 1 エポック
- 学習 5 エポック

各 run にわたる値の変化を可視化する
_step で、これは W&B が自動的にログする特別なキーです。_step キーは、コード内で wandb.Run.log() を呼び出すたびに 1 ずつ増加する整数です。
W&B Table にステップスライダーを追加するには、次の操作を行います。
- プロジェクトのワークスペースに移動します。
- ワークスペース右上の Add panel をクリックします。
- Query panel を選択します。
- クエリ式エディタ内で
runsを選択し、キーボードの Enter キーを押します。 - 歯車アイコンをクリックして、パネルの設定を表示します。
- Render As セレクタを Stepper に設定します。
- Stepper Key に
_step、またはステップスライダーの単位として使用するキー を設定します。

カスタムステップキー
epoch や global_step のように、run 内でステップキーとしてログする任意の数値メトリクスを使用できます。カスタムステップキーを使用すると、W&B はそのキーの各値を run 内のステップ(_step)にマッピングします。
次の表は、カスタムステップキー epoch が 3 つの異なる run(serene-sponge、lively-frog、vague-cloud)の _step 値にどのようにマッピングされるかを示しています。各行は、ある run の特定の _step における wandb.Run.log() の呼び出しを表します。各列には、そのステップでログされた(もしあれば)対応する epoch の値が示されています。スペースを節約するために、いくつかの _step 値は省略されています。
最初に wandb.Run.log() が呼び出されたとき、どの run も epoch の値をログしていなかったため、表の epoch には空の値が表示されています。
_step | vague-cloud (epoch) | lively-frog(epoch) | serene-sponge (epoch) |
|---|---|---|---|
| 1 | |||
| 2 | 1 | ||
| 4 | 1 | 2 | |
| 5 | 1 | ||
| 6 | 3 | ||
| 8 | 2 | 4 | |
| 10 | 5 | ||
| 12 | 3 | 6 | |
| 14 | 7 | ||
| 15 | 2 | ||
| 16 | 4 | 8 | |
| 18 | 9 | ||
| 20 | 3 | 5 | 10 |
epoch = 1 に設定すると、次のようになります。
vague-cloudはepoch = 1を見つけ、_step = 5でログされた値を返しますlively-frogはepoch = 1を見つけ、_step = 4でログされた値を返しますserene-spongeはepoch = 1を見つけ、_step = 2でログされた値を返します
epoch = 9 に設定すると、次のようになります。
vague-cloudはepoch = 9をログしていないため、W&B はそれ以前の最新の値であるepoch = 3を使用し、_step = 20でログされた値を返しますlively-frogはepoch = 9をログしていませんが、それ以前の最新の値はepoch = 5なので、_step = 20でログされた値を返しますserene-spongeはepoch = 9を見つけ、_step = 18でログされた値を返します
ビューを保存する
アーティファクトコンテキスト内で操作したテーブルはステートレスのままです。
- ワークスペースのビジュアライゼーションパネル右上にあるケバブアイコン(縦に並んだ 3 つの点)を選択します。
- Share panel または Add to report のいずれかを選択します。

