1 つ以上のエイリアスを使用して、特定のアーティファクトバージョンを参照します。W&B は、同じ名でリンクした各 アーティファクト に自動的にエイリアスを割り当てます。特定のアーティファクトバージョンを参照するために、1 つ以上のカスタムエイリアスを作成することもできます。
エイリアスは、Registry UI ではエイリアス名が表示された長方形として表示されます。エイリアスが保護されている場合は、ロックアイコン付きの灰色の長方形で表示されます。そうでない場合、エイリアスはオレンジ色の長方形で表示されます。エイリアスはRegistry間で共有されません。
エイリアスを使用する場合とタグを使用する場合特定のアーティファクトバージョンを参照するには、エイリアスを使用します。コレクション 内では、各エイリアスは一意です。特定のエイリアスを同時に持てるアーティファクトバージョンは 1 つだけです。共通のテーマに基づいてアーティファクトバージョンや コレクション を整理およびグループ化するには、タグ を使用します。複数のアーティファクトバージョンと コレクション で同じタグを共有できます。
アーティファクトバージョンにエイリアスを追加すると、必要に応じて Registry automation を開始し、Slack チャンネルに通知したり webhook をトリガーしたりできます。オートメーションが、リクエスト内でアクセストークンやその他の機密情報を必要とする webhook を呼び出す場合は、それらの文字列をチームシークレットとして保存し、オートメーションの webhook を設定するときに選択します。“
W&B は、同じ名でリンクした各 アーティファクト バージョンに、次のエイリアスを自動的に割り当てます。
- コレクションにリンクした最新の アーティファクト バージョンには、
latest エイリアス。
- 一意のバージョン番号。W&B は、リンクした各 アーティファクト バージョンをゼロ始まりで数えます。W&B は、そのカウント番号を使用して、その アーティファクト に一意のバージョン番号を割り当てます。
たとえば、zoo_model という名の アーティファクト を 3 回リンクすると、W&B はそれぞれ v0、v1、v2 という 3 つのエイリアスを作成します。v2 には latest エイリアスも付きます。
固有のユースケースに応じて、特定のアーティファクトバージョンに 1 つ以上のカスタムエイリアスを作成できます。たとえば、次のような使い方があります。
- モデルのトレーニングに使用したデータセットを識別するために、
dataset_version_v0、dataset_version_v1、dataset_version_v2 といったエイリアスを使用できます。
- 最も高い性能を持つアーティファクトモデルのバージョンを追跡するために、
best_model エイリアスを使用できます。
Registry で Member または Admin Registry ロール を持つユーザーは、その Registry 内でリンクされたアーティファクトにカスタムエイリアスを追加または削除できます。Restricted Viewer または Viewer ロール を持つ Users は、エイリアスを追加または削除できません。
保護されたエイリアス を使うと、変更や削除から保護するアーティファクトバージョンにラベルを付けて識別できます。
W&B Registry または Python SDK を使用してカスタムエイリアスを作成できます。ユースケースに応じて、ニーズに最も合う以下のタブをクリックしてください。
- W&B Registry にアクセスします。
- コレクション内の View details ボタンをクリックします。
- Versions セクションで、対象のアーティファクトバージョンの View ボタンをクリックします。
- Aliases フィールドの横にある + ボタンをクリックして、1 つ以上のエイリアスを追加します。
Python SDK を使用してアーティファクトバージョンをコレクションにリンクする際に、link_artifact() の alias パラメーターの引数として、必要に応じて 1 つ以上のエイリアスのリストを指定できます。指定したエイリアスがまだ存在しない場合、W&B がエイリアス (非保護エイリアス) を作成します。次のコードスニペットは、Python SDK を使用してアーティファクトバージョンをコレクションにリンクし、そのアーティファクトバージョンにエイリアスを追加する方法を示しています。<> 内の値はご自身の値に置き換えてください。import wandb
# run を初期化します
with wandb.init(entity = "<team_entity>", project = "<project_name>") as run:
# artifact オブジェクトを作成します
# type パラメーターは、
# artifact オブジェクトのタイプとコレクションのタイプの両方を指定します
artifact = wandb.Artifact(name = "<name>", type = "<type>")
# ファイルを artifact オブジェクトに追加します。
# ローカルマシン上のファイルへのパスを指定します。
artifact.add_file(local_path = "<local_path_to_artifact>")
# artifact のリンク先となるコレクションと Registry を指定します
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"
# artifact バージョンをコレクションにリンクします
# この artifact バージョンに 1 つ以上のエイリアスを追加します
run.link_artifact(
artifact = artifact,
target_path = target_path,
aliases = ["<alias_1>", "<alias_2>"]
)
変更や削除を防ぎたい アーティファクト バージョンにラベルを付けて識別するには、保護されたエイリアスを使用します。たとえば、組織の機械学習の本番パイプラインで使用している アーティファクト バージョンにラベルを付けて識別するために、production の保護されたエイリアスを使用できます。
Registry 管理者ユーザーと、Admin ロールを持つサービスアカウントは、保護されたエイリアスを作成したり、アーティファクト バージョンに保護されたエイリアスを追加または削除したりできます。Member、Viewer、Restricted Viewer ロールを持つ Users とサービスアカウントは、保護されたバージョンのリンクを解除したり、保護されたエイリアスを含む コレクション を削除したりできません。詳しくは、Registry access の設定を参照してください。
一般的な保護されたエイリアスには、次のものがあります。
- Production: その アーティファクト バージョンは本番環境で使用できる状態です。
- Staging: その アーティファクト バージョンはテストできる状態です。
以下の手順では、W&B Registry UI で保護されたエイリアスを作成する方法を説明します。
- W&B Registry にアクセスします。
- レジストリを選択します。
- ページ右上の歯車アイコンをクリックして、レジストリの Settings を表示します。
- Protected Aliases セクションで、+ ボタンをクリックして 1 つ以上の保護されたエイリアスを追加します。
作成後、各保護されたエイリアスは、Protected Aliases セクションにロックアイコン付きの灰色の長方形として表示されます。
保護されていないカスタムエイリアスとは異なり、保護されたエイリアスは W&B Registry UI でのみ作成でき、Python SDK からプログラムで作成することはできません。アーティファクト バージョンに保護されたエイリアスを追加するには、W&B Registry UI または Python SDK を使用できます。
以下の手順では、W&B Registry UI を使用して アーティファクト バージョンに保護されたエイリアスを追加する方法を説明します。
- W&B Registry にアクセスします。
- コレクション内の View details ボタンをクリックします。
- Versions セクションで、特定の アーティファクト バージョンの View ボタンを選択します。
- Aliases フィールドの横にある + ボタンをクリックして、1 つ以上の保護されたエイリアスを追加します。
保護されたエイリアスを作成すると、管理者は Python SDK を使ってそのエイリアスを アーティファクト バージョンにプログラムで追加できます。アーティファクト バージョンに保護されたエイリアスを追加する方法の例については、上記の Create a custom alias セクションにある W&B Registry タブと Python SDK タブを参照してください。
既存のエイリアスは、W&B Registry のグローバル検索バーで検索できます。保護されたエイリアスを検索するには、次の手順に従います。
- W&B Registry にアクセスします。
- ページ上部の検索バーに検索語を入力し、Enter キーを押して検索します。
入力した語が既存のレジストリ、コレクション名、アーティファクト のバージョンタグ、コレクションタグ、またはエイリアスに一致すると、検索結果が検索バーの下に表示されます。
以下のコードスニペットでは、アーティファクト バージョンを作成し、カスタムエイリアスを追加する方法を示します。この例では、UCI Machine Learning Repository の Zoo データセットと、Zoo_Classifier_Models Registry 内の Model コレクション を使用します。
import wandb
# run を初期化する
with wandb.init(entity = "smle-reg-team-2", project = "zoo_experiment") as run:
# アーティファクト オブジェクトを作成する
# type パラメーターは、アーティファクト オブジェクトの
# タイプとコレクションのタイプの両方を指定する
artifact = wandb.Artifact(name = "zoo_dataset", type = "dataset")
# アーティファクト オブジェクトにファイルを追加する。
# ローカルマシン上のファイルのパスを指定する。
artifact.add_file(local_path="zoo_dataset.pt", name="zoo_dataset")
artifact.add_file(local_path="zoo_labels.pt", name="zoo_labels")
# アーティファクトをリンクするコレクションと Registry を指定する
REGISTRY_NAME = "Model"
COLLECTION_NAME = "Zoo_Classifier_Models"
target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"
# アーティファクト バージョンをコレクションにリンクする
# このアーティファクト バージョンに 1 つ以上のエイリアスを追加する
run.link_artifact(
artifact = artifact,
target_path = target_path,
aliases = ["production-us", "production-eu"]
)
- まず、アーティファクト オブジェクト (
wandb.Artifact()) を作成します。
- 次に、2 つのデータセットの PyTorch テンソルを
wandb.Artifact.add_file() で アーティファクト オブジェクトに追加します。
- 最後に、
link_artifact() を使って アーティファクト バージョンを Zoo_Classifier_Models Registry 内の Model コレクションにリンクします。また、aliases パラメーターに production-us と production-eu を引数として渡し、アーティファクト バージョンに 2 つのカスタムエイリアスも追加します。