W&B は、lineage graphs と呼ばれる有向非巡回グラフ (DAG) を使って run の入力と出力を追跡します。リネージグラフは、ML 実験におけるアーティファクトと run の関係を視覚的に表現したものです。これらのグラフは、生データの取り込みからモデルの学習と評価に至るまで、データとモデルが ML ライフサイクルのさまざまな段階をどのように流れていくかを示します。
アーティファクトのリネージを追跡することには、次のような主な利点があります。
- 再現性: デバッグ、実験、および検証のために、Teams が実験・モデル・結果を再現できるようにします。
- バージョン管理: アーティファクトの変更を随時追跡し、必要に応じて過去のデータやモデルのバージョンに戻せるようにします。
- 監査: コンプライアンスとガバナンスを支援するために、アーティファクトとその変換の詳細な記録を保持します。
- コラボレーション: 実験の履歴に透明性を持たせることでチームワークを改善し、作業の重複を減らし、開発を加速します。
アーティファクトのリネージグラフを表示するには、次の手順に従います。
- W&B App にアクセスします。
- 調査したい run またはアーティファクトを含むプロジェクトを選択します。
- プロジェクトのサイドバーで Artifacts タブをクリックします。
- Lineage タブをクリックします。
ライネージグラフのトラッキングを有効にするには、W&B Python SDKを使用して、アーティファクトを run の入力または
出力としてマークする必要があります。
wandb.Run.use_artifact()
メソッドを使って、アーティファクトを run の入力(または依存関係)としてマークします。アーティファクト名と、特定のバージョンを参照するための任意のエイリアスを指定します。アーティファクト名の形式は <artifact_name>:<version> または <artifact_name>:<alias> です。
山かっこ(< >)で囲まれた値を、実際の値に置き換えてください:
import wandb
# runを初期化する
with wandb.init(entity="<entity>", project="<project>") as run:
# アーティファクトを取得し、依存関係としてマークする
artifact = run.use_artifact(artifact_or_name="<name>", aliases="<alias>")
wandb.Run.log_artifact() を使用して、アーティファクトを run の出力として指定します。まず、
wandb.Artifact() コンストラクタでアーティファクトを作成します。次に、wandb.Run.log_artifact() を使って
そのアーティファクトを run の出力としてログに記録します。
山かっこ(< >)で囲まれた値を、適切な値に置き換えてください:
import wandb
# runを初期化する
with wandb.init(entity="<entity>", project="<project>") as run:
# アーティファクトを作成する
artifact = wandb.Artifact(name = "<artifact_name>", type = "<artifact_type>")
artifact.add_file(local_path = "<local_filepath>", name="<optional-name>")
# アーティファクトをrunの出力としてログに記録する
run.log_artifact(artifact_or_path = artifact)
指定したアーティファクトまたはジョブのタイプは、その名前の前に表示されます。アーティファクトは青いアイコン、run は緑のアイコンで表されます。矢印は、グラフ上の run またはアーティファクトの入力と出力を表します。
左側のサイドバーと Lineage タブの両方で、アーティファクトのタイプと名前を確認できます。
より詳細に確認するには、任意のアーティファクトまたは run をクリックして、そのオブジェクトに関する詳細情報を表示します。
グラフのあるレベルに run または アーティファクト が 5 つ以上ある場合、そのレベルはクラスターとしてまとめられます。クラスターには、特定のバージョンの run や アーティファクト を検索するための検索バーがあり、クラスター内から個々のノードを取り出して、そのノードの lineage をさらに調査できます。
ノードをクリックすると、そのノードの概要を示すプレビューが開きます。矢印をクリックすると、個々の run または アーティファクト がクラスターから取り出され、取り出したノードの lineage を確認できます。
W&B Python SDK を使用すると、グラフをプログラムからたどることができます。グラフを走査するには、アーティファクトオブジェクトの
logged_by() と used_by() メソッドを使用します。
with wandb.init() as run:
artifact = run.use_artifact("artifact_name:latest")
# アーティファクトからグラフを上下にたどる:
producer_run = artifact.logged_by()
consumer_runs = artifact.used_by()