メインコンテンツへスキップ
リンクアーティファクトのバージョンをコレクションに追加して、組織内の他のメンバーがアクセスできるようにします。 アーティファクトをレジストリにリンクすると、そのアーティファクトがそのレジストリに「公開」されます。 レジストリにアクセスできるユーザーは、コレクション内のリンクされたアーティファクトのバージョンにアクセスできます。 言い換えれば、アーティファクトをレジストリコレクションにリンクすることによって、アーティファクトのバージョンはプライベートなプロジェクトレベルのスコープから、共有される組織レベルのスコープになります。
「タイプ」という用語は、アーティファクトオブジェクトのタイプを指します。 アーティファクトオブジェクトを作成する際に (wandb.Artifact)、またはアーティファクトをログに記録する際に (wandb.init.log_artifact)、type パラメータにタイプを指定します。

アーティファクトをコレクションにリンクする

アーティファクトバージョンをインタラクティブまたはプログラム的にコレクションにリンクします。
レジストリにアーティファクトをリンクする前に、コレクションが許可しているアーティファクトのタイプを確認してください。 コレクションタイプの詳細については、コレクションを作成する内の「コレクションタイプ」を参照してください。
ユースケースに基づいて、以下のタブで説明されている手順に従ってアーティファクトバージョンをリンクしてください。
アーティファクトバージョンがメトリクスをログに記録している場合(run.log_artifact()を使用するなど)、そのバージョンの詳細ページからメトリクスを閲覧することができ、アーティファクトのページからアーティファクトバージョン間のメトリクスを比較することができます。 レジストリでリンクされたアーティファクトを見るを参照してください。
  • Python SDK
  • Registry App
  • Artifact browser
バージョンのリンクを示すビデオを見る(8分)。
プログラム的にアーティファクトバージョンをコレクションにリンクするには、wandb.init.Run.link_artifact()を使用します。
アーティファクトをコレクションにリンクする前に、そのコレクションが所属するレジストリが既に存在することを確認してください。 レジストリが存在するかどうかを確認するには、W&B App UIのレジストリアプリにアクセスし、レジストリの名前を検索してください。
target_path パラメータを使用して、リンクするアーティファクトバージョンのコレクションとレジストリを指定します。ターゲットパスは、プレフィックス “wandb-registry”、レジストリの名前、コレクション名がフォワードスラッシュで区切られています。
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}
以下のコードスニペットをコピーして貼り付け、既存のレジストリ内のコレクションにアーティファクトバージョンをリンクしてください。<>で囲まれた値を自分の値に置き換えてください。
import wandb

# run を初期化
run = wandb.init(
  entity = "<チームエンティティ>",
  project = "<プロジェクト名>"
)

# アーティファクトオブジェクトの作成
# type パラメータは、アーティファクトオブジェクトとコレクションタイプの両方のタイプを指定します
artifact = wandb.Artifact(name = "<名前>", type = "<type>")

# アーティファクトオブジェクトにファイルを追加
# ファイルのパスをローカルマシンで指定します
artifact.add_file(local_path = "<アーティファクトのローカルパス>")

# アーティファクトをリンクするコレクションとレジストリを指定
REGISTRY_NAME = "<registry_name>"  
COLLECTION_NAME = "<collection_name>"
target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"

# アーティファクトをコレクションにリンク
run.link_artifact(artifact = artifact, target_path = target_path)
アーティファクトバージョンをモデルレジストリまたはデータセットレジストリにリンクする場合、アーティファクトのタイプをそれぞれ "model" または "dataset" に設定してください。
リンクされたアーティファクトのメタデータ、バージョンデータ、使用状況、リネージ情報などをRegistry Appで表示します。

リンクされたアーティファクトをレジストリで表示する

Registry Appでメタデータ、リネージ、使用状況情報などのリンクされたアーティファクト情報を表示します。
  1. Registry App に移動します。
  2. アーティファクトをリンクしたレジストリの名前を選択します。
  3. コレクションの名前を選択します。
  4. コレクションのアーティファクトがメトリクスをログしている場合、メトリクスを表示をクリックしてバージョンを比較します。
  5. アーティファクトバージョンのリストから、アクセスしたいバージョンを選択します。バージョン番号は v0 から始まる増分で各リンクされたアーティファクトバージョンに割り当てられます。
  6. アーティファクトバージョンの詳細を表示するには、そのバージョンをクリックします。このページのタブから、そのバージョンのメタデータ(ログされたメトリクスを含む)、リネージ、使用状況情報を表示できます。
バージョンタブ 内の フルネーム フィールドに注意してください。リンクされたアーティファクトのフルネームは、レジストリ、コレクション名、アーティファクトのバージョンのエイリアスまたはインデックスから構成されています。
リンクされたアーティファクトのフルネーム
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{INTEGER}
プログラム的にアーティファクトバージョンにアクセスするには、リンクされたアーティファクトのフルネームが必要です。

トラブルシューティング

アーティファクトをリンクできない場合は、次のような一般的なチェックを確認してください。

個人アカウントからアーティファクトをログする

個人エンティティを使用してW&Bにログされたアーティファクトはレジストリにリンクすることができません。 アーティファクトを組織内のチームエンティティを使用してログに記録していることを確認してください。 組織のチーム内でログに記録されたアーティファクトのみが組織のレジストリにリンクされることができます。
アーティファクトをレジストリにリンクしたい場合は、チームエンティティを使用してアーティファクトをログしてください。

あなたのチームエンティティを見つける

W&B はあなたのチームの名前をチームのエンティティとして使用します。 例えば、あなたのチームが team-awesome と呼ばれている場合、あなたのチームエンティティは team-awesome です。 あなたのチームの名前を確認するには:
  1. あなたのチームの W&B プロファイルページに移動します。
  2. サイトの URL をコピーします。それはhttps://wandb.ai/<team>の形式です。ここで <team> はあなたのチームの名前とチームのエンティティの両方です。

チームエンティティからログする

  1. wandb.init()を使用して run を初期化するときに、エンティティとしてチームを指定します。もし run を初期化するときに entity を指定しなかった場合、run はあなたのデフォルトエンティティを使用しますが、それがチームエンティティであるとは限りません。
      import wandb   
    
      run = wandb.init(
        entity='<team_entity>', 
        project='<project_name>'
        )
    
  2. run にアーティファクトをログするには、run.log_artifact を使用するか、Artifact オブジェクトを作成してからファイルを追加します:
    artifact = wandb.Artifact(name="<artifact_name>", type="<type>")
    
    アーティファクトのログ方法についての詳細は、アーティファクトを構成するを参照してください。
  3. 個人エンティティにログされたアーティファクトがある場合、それを組織内のエンティティに再ログする必要があります。

W&B App UIでレジストリのパスを確認する

UIを使用してレジストリのパスを確認する方法は2つあります: 空のコレクションを作成してコレクションの詳細を表示するか、コレクションのホームページで自動生成されたコードをコピー&ペーストすることです。

自動生成されたコードをコピーして貼り付ける

  1. Registry app に移動します: https://wandb.ai/registry/.
  2. アーティファクトをリンクしたいレジストリをクリックします。
  3. ページの上部に自動生成されたコードブロックが表示されます。
  4. これをコピーしてコードに貼り付け、パスの最後の部分をコレクションの名前に置き換えてください。

空のコレクションを作成する

  1. Registry app に移動します: https://wandb.ai/registry/.
  2. アーティファクトをリンクしたいレジストリをクリックします。
  3. 空のコレクションをクリックします。 空のコレクションが存在しない場合は、新しいコレクションを作成します。
  4. 表示されるコードスニペット内で、.link_artifact() 内の target_path フィールドを識別します。
  5. (任意) コレクションを削除します。
例えば、上記の手順を完了した後、target_pathパラメータを持つコードブロックを見つけます:
target_path = 
      "smle-registries-bug-bash/wandb-registry-Golden Datasets/raw_images"
これを構成要素に分解すると、プログラム的にアーティファクトをリンクするために必要なパスを作成するために必要なものが見えます:
ORG_ENTITY_NAME = "smle-registries-bug-bash"
REGISTRY_NAME = "Golden Datasets"
COLLECTION_NAME = "raw_images"
一時コレクションのコレクション名を、リンクしたいアーティファクトのコレクション名に置き換えることを忘れないでください。
I