メインコンテンツへスキップ
アーティファクトバージョンを組織で利用できるようにするには、W&B Registry の コレクションリンク します。リンクすると、そのバージョンは プロジェクトレベルのプライベートなスコープから、組織レベルの共有スコープへ 移動します。アーティファクトバージョンは、W&B Python SDK を使ってプログラムから、または W&B App でインタラクティブに リンクできます。 アーティファクトをリンクすると、W&B はソースアーティファクトとコレクションのエントリの間に参照を作成します。リンクされたバージョンは、プロジェクト内の run にログされたソースアーティファクトバージョンを参照します。コレクション内のリンクされたバージョンと、それがログされたプロジェクト内のソースバージョンの両方を表示できます。 artifact を run 中に作成するか、run なしで作成するか、既存の artifact バージョンをリンクするかに応じて、ワークフローを選択してください。
始める前に、次の点を確認してください。
  • コレクションで許可されている artifact のタイプ。コレクションのタイプの詳細については、コレクションを作成する内の「コレクションのタイプ」を参照してください。
  • コレクションが属するレジストリがすでに存在していること。レジストリが存在することを確認するには、Registry App にアクセスして検索し、そのレジストリの名を確認してください。
wandb.Run.link_artifact() または wandb.Artifact.link() を使用して、artifact version をコレクションにプログラムからリンクできます。次の表は、artifact version をコレクションにリンクするために使用できるメソッドと、各メソッドの使用時に W&B が記録する内容をまとめたものです。宛先コレクションのパスを target_path パラメーターに渡します。パスは、wandb-registry- 接頭辞、Registry 名、コレクション名で構成されます。
run からアーティファクトをリンクする
アクティブな run 中にアーティファクト バージョンを作成してリンクするには、wandb.Run.link_artifact() を使用します。W&B は、リンクする前にドラフト アーティファクトを run の出力としてログします。アーティファクト バージョンを作成してリンクするには、次の手順に従います。
  1. wandb.init() で run を初期化します。
  2. Artifact オブジェクトを作成し、1 つ以上のファイルを追加します。
  3. wandb.Run.link_artifact() を呼び出して、リンク先のコレクションを指定します。
山かっこ (<>) で囲まれた値は、ご自身の値に置き換えてください。
アーティファクトを作成してリンクする
wandb.Artifact.link() を使用すると、run を明示的に初期化しなくても、ドラフト アーティファクトを作成してリンクできます。リンク前にアーティファクトを保存する必要がある場合は、W&B が必要に応じて自動的に run を作成します。アーティファクト バージョンを作成してリンクするには、次の手順に従います。
  1. Artifact オブジェクトを作成し、1 つ以上のファイルを追加します。
  2. wandb.Artifact.link() を呼び出し、リンク先のコレクションを指定します。
山かっこ (<>) 内の値を実際の値に置き換えてください。
既存のアーティファクトをリンクする
wandb.Api().artifact() で取得したアーティファクトに対して wandb.Artifact.link() を使用すると、新しい run を作成せずに、既存のコミット済みアーティファクトバージョンをリンクできます。
  1. wandb.Api() で Public API クライアントを作成します。
  2. wandb.Api.artifact() でアーティファクトバージョンを取得します。
  3. wandb.Artifact.link() を呼び出し、リンク先のコレクションを指定します。
Registry App では、リンクされたアーティファクトのメタデータ、バージョンデータ、使用状況、リネージ情報 などを確認できます。

Registry 内のリンクされた artifact を表示する

W&B Registry で、メタデータ、リネージ、利用状況情報など、リンクされた artifact に関する情報を表示します。
  1. W&B Registry にアクセスします。
  2. artifact をリンクした registry の名を選択します。
  3. collection の名を選択します。
  4. collection の artifact がメトリクスをログしている場合は、Show metrics をクリックして、バージョン間でメトリクスを比較します。
  5. artifact バージョンの一覧から、アクセスしたいバージョンを選択します。バージョン番号は v0 から始まり、リンクされた各 artifact バージョンに段階的に割り当てられます。
  6. artifact バージョンの詳細を表示するには、そのバージョンをクリックします。このページのタブから、そのバージョンのメタデータ (ログされたメトリクスを含む) 、リネージ、利用状況情報を表示できます。
Version タブ内の Full Name フィールドに注目してください。リンクされた artifact の完全名は、registry、collection 名、および artifact バージョンの alias またはインデックスで構成されます。
Full name of a linked artifact
artifact のバージョンにプログラムからアクセスするには、リンクされた artifact のフルネームが必要です。

トラブルシューティング

artifact をリンクできない場合は、以下の一般的な確認項目を再度確認してください。

個人アカウントから Artifacts をログする

個人の entity で W&B にログされた Artifacts は、レジストリにリンクできません。Artifacts は、組織内のチーム entity を使用してログしてください。組織のレジストリにリンクできるのは、組織内のチームでログされた Artifacts のみです。
artifact をレジストリにリンクする場合は、チーム entity でその artifact をログしてください。

チーム entity を確認する

W&B では、チーム名がそのチームの entity として使用されます。たとえば、チーム名が team-awesome の場合、チーム entity は team-awesome です。 次の手順でチーム名を確認できます。
  1. チームの W&B プロフィールページにアクセスします。
  2. サイトの URL をコピーします。形式は https://wandb.ai/<team> です。ここで <team> はチーム名であり、同時にチームの entity でもあります。

チーム entity でログする

  1. wandb.init() で run を初期化するときに、entity としてチームを指定します。run の初期化時に entity を指定しない場合、run にはデフォルトの entity が使用されます。これはチーム entity の場合もあれば、そうでない場合もあります。
  2. wandb.Run.log_artifact() を使用するか、Artifact object を作成してから次のようにファイルを追加して、アーティファクト を run にログします。
    アーティファクト をログする方法については、アーティファクト を構築するを参照してください。
  3. アーティファクト が個人の entity にログされている場合は、組織内の entity に再度ログする必要があります。

W&B App UI で Registry のパスを確認する

W&B App UI で Registry のパスを確認するには、空のコレクションを作成します。手順は次のとおりです。
  1. https://wandb.ai/registry/ の W&B Registry にアクセスします。
  2. アーティファクト をリンクする対象のレジストリをクリックします。
  3. 空のコレクションをクリックします。空のコレクションが存在しない場合は、新しいコレクションを作成します。
  4. 表示されたコードスニペット内で、.link_artifact() にある target_path フィールドを特定します。
  5. (任意) コレクションを削除します。
空のコレクションを作成する
たとえば、上記の手順を完了すると、target_path パラメーターを含むコードブロックが表示されます。
これを構成要素に分解すると、アーティファクト をプログラムから リンク するためのパスを作成するのに何が必要かがわかります。
一時コレクションの名を、アーティファクト をリンクする先のコレクションの名に置き換えてください。