メインコンテンツへスキップ
W&B は、lineage graphs と呼ばれる有向非巡回グラフ (DAG) を使って、run の入力と出力をトラッキングします。リネージ グラフは、ML 実験における artifact と run の関係を視覚的に表したものです。これにより、生データの取り込みからモデル トレーニング、評価に至るまで、ML のライフサイクルのさまざまな段階をデータやモデルがどのように 流れていくかを確認できます。 artifact リネージをトラッキングすると、次のような重要な利点があります。
  • 再現性: デバッグ、実験、検証のために、チームが実験、モデル、結果を再現できるようにします。
  • バージョン管理: artifact の変更を時系列でトラッキングし、必要に応じてチームが以前のデータやモデル バージョンに戻せるようにします。
  • 監査: artifact とその変換の詳細な記録を維持し、コンプライアンスとガバナンスをサポートします。
  • コラボレーション: 実験の履歴を可視化することでチームでの連携を改善し、重複作業を減らして開発を加速します。

artifact のリネージグラフを表示する

artifact のリネージグラフを表示するには、次の手順に従います。
  1. W&B App でプロジェクトの Workspace にアクセスします。
  2. プロジェクトのサイドバーで Artifacts タブをクリックします。
  3. artifact を選択し、Lineage タブをクリックします。
リネージグラフは、ML 実験における Artifacts と Runs の関係を視覚的に表したものです。W&B App UI または Python SDK を使用して、artifact のリネージグラフを探索し、たどることができます。
緑色のアイコンが付いたノードは Runs を表します。青色のアイコンが付いたノードは Artifacts を表します。ノード間の矢印は、run または artifact の入力と出力を示します。artifact ノードには、<artifact_name>:<version> の形式で、artifact 名とそのバージョンが表示されます。artifact のタイプは、artifact 名の上に表示されます。
artifact のタイプと名は、左サイドバーとリネージグラフのノードの両方で確認できます。
run ノードには、run の名が表示されます。
run ノードと artifact ノード
個々の run をクリックすると、その run に関する詳細情報 (開始時刻、実行時間、作成者、ジョブタイプなど) が表示されます。個々の artifact をクリックすると、その artifact に関する詳細情報 (aliases、creation time、type、version、description、その artifact をログした run、ファイルサイズなど) が表示されます。
run のプレビュー
同じ artifact の複数のバージョンを作成する Runs は、クラスターにまとめられます。クラスター 内に一覧表示された特定の artifact バージョンをクリックすると、その artifact バージョン固有の情報を確認できます。
リネージグラフ内の artifact バージョンの クラスター
ノードをクリックしてドラッグすると、グラフを並べ替えて Layout をカスタマイズできます。グラフを拡大または縮小して、ノードとその関係を見やすくすることもできます。
リネージグラフ内のノードの並べ替え
ノードにマウスカーソルを合わせて目のアイコンをクリックすると、グラフ内でノードの表示と非表示を切り替えられます。これは、グラフを整理して特定のノードとその関係に集中するのに役立ちます。

リネージグラフのトラッキングを有効にする

リネージグラフのトラッキングを有効にするには、W&B Python SDK を使用して、artifact を run の 入力 または 出力 としてマークする必要があります。

run への入力をトラッキングする

wandb.Run.use_artifact() method を使用して、artifact を run への入力 (または依存関係) としてマークします。artifact の名と、その artifact の特定バージョンを参照するための任意の alias を指定します。artifact の 名は <artifact_name>:<version> または <artifact_name>:<alias> の形式です。 山かっこ (< >) で囲まれた値は、実際の値に置き換えてください。
import wandb

# runを初期化する
with wandb.init(entity="<entity>", project="<project>") as run:
  # artifactを取得し、依存関係としてマークする
  artifact = run.use_artifact(artifact_or_name="<name>", aliases="<alias>")

run の出力をトラッキングする

wandb.Run.log_artifact() を使用して、artifact を run の出力として宣言します。まず、 wandb.Artifact() コンストラクタを使用して artifact を作成します。次に、wandb.Run.log_artifact() を使用して、 artifact を run の出力としてログします。 山括弧 (< >) で囲まれた値は、実際の値に置き換えてください。
import wandb

# runを初期化する
with wandb.init(entity="<entity>", project="<project>") as run:
  
  # artifactを作成する
  artifact = wandb.Artifact(name = "<artifact_name>", type = "<artifact_type>")
  artifact.add_file(local_path = "<local_filepath>", name="<optional-name>")

  # artifactをrunの出力としてログする
  run.log_artifact(artifact_or_path = artifact)

Artifact クラスター

グラフ内のあるレベルに 5 つ以上の run または artifact がある場合、クラスターが作成されます。クラスターには、特定のバージョンの run や artifact を検索するための検索バーがあり、クラスター内のノードをさらに調べるために、個々のノードをクラスターから取り出すことができます。 ノードをクリックすると、そのノードの概要を表示するプレビューが開きます。矢印をクリックすると、個々の run または artifact が取り出され、取り出したノードのリネージを確認できます。
run クラスター内を検索する