1 つ以上のエイリアスを使って特定のアーティファクトバージョンを参照します。W&B は自動的にエイリアスを割り当てて、同じ名前でリンクされた各アーティファクトに付与します。特定のアーティファクトバージョンを参照するために、カスタムエイリアスを 1 つ以上作成することもできます。
エイリアスは Registry の UI 上で、そのエイリアス名が書かれた長方形として表示されます。エイリアスが保護されている場合は、鍵アイコン付きの灰色の長方形として表示されます。そうでない場合、エイリアスはオレンジ色の長方形として表示されます。エイリアスはレジストリ間で共有されません。
エイリアスとタグの使い分けエイリアスは、特定のアーティファクトバージョンを参照するために使用します。コレクション内の各エイリアスは一意であり、特定のエイリアスを持てるアーティファクトバージョンは同時に 1 つだけです。タグは、共通のテーマに基づいてアーティファクトバージョンやコレクションを整理・グループ化するために使用します。複数のアーティファクトバージョンやコレクションが同じタグを共有できます。
アーティファクトバージョンにエイリアスを追加する際、オプションで Registry automation を実行して、Slack チャンネルへの通知や Webhook のトリガーを行うことができます。
W&B は、同じ名前でリンクされた各アーティファクトバージョンに対して、自動的に次のエイリアスを割り当てます。
- コレクションに対してもっとも最近リンクされたアーティファクトバージョンには、
latest エイリアスが割り当てられます。
- 一意のバージョン番号。W&B は、リンクするたびに各アーティファクトバージョンを(0 からのインデックスで)カウントし、そのカウント番号を使ってそのアーティファクトに一意のバージョン番号を割り当てます。
たとえば、zoo_model という名前のアーティファクトを 3 回リンクすると、W&B はそれぞれに v0、v1、v2 という 3 つのエイリアスを作成します。v2 には latest エイリアスも割り当てられます。
ユースケースに応じて、特定のアーティファクトバージョンに1つ以上のカスタムエイリアスを作成できます。例:
dataset_version_v0、dataset_version_v1、dataset_version_v2 などのエイリアスを使用して、モデルがどのデータセットで学習されたかを識別できます。
best_model エイリアスを使用して、最もパフォーマンスの高いアーティファクトモデルバージョンを追跡できます。
レジストリで Member または Admin レジストリロール を持つユーザーは、そのレジストリにリンクされたアーティファクトに対してカスタムエイリアスを追加または削除できます。Restricted Viewer または Viewer ロール を持つユーザーはエイリアスの追加・削除ができません。
保護されたエイリアスを使用すると、変更や削除から保護するアーティファクトバージョンにラベルを付けて識別できます。
カスタムエイリアスは 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:
# アーティファクトオブジェクトを作成する
# typeパラメーターはアーティファクトオブジェクトの種類と
# コレクションの種類の両方を指定する
artifact = wandb.Artifact(name = "<name>", type = "<type>")
# アーティファクトオブジェクトにファイルを追加する
# ローカルマシン上のファイルパスを指定する
artifact.add_file(local_path = "<local_path_to_artifact>")
# アーティファクトをリンクするコレクションとレジストリを指定する
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"
# アーティファクトバージョンをコレクションにリンクする
# このアーティファクトバージョンに1つ以上のエイリアスを追加する
run.link_artifact(
artifact = artifact,
target_path = target_path,
aliases = ["<alias_1>", "<alias_2>"]
)
保護されたエイリアスを使用して、変更や削除を行うべきでないアーティファクトバージョンにラベル付けし、識別します。たとえば、組織の機械学習プロダクションパイプラインで使用されているアーティファクトバージョンをラベル付けして識別するために、production という保護されたエイリアスを使用することを検討してください。
Registry admin ユーザーおよび Admin ロールを持つサービスアカウントは、保護されたエイリアスを作成し、アーティファクトバージョンに対して保護されたエイリアスを追加または削除できます。Member、Viewer、Restricted Viewer ロールのユーザーおよびサービスアカウントは、保護されたバージョンとのリンクを解除したり、保護されたエイリアスを含むコレクションを削除したりすることはできません。詳細については、レジストリアクセスの設定を参照してください。
一般的な保護されたエイリアスには次のものがあります:
- Production:アーティファクトバージョンは本番環境で使用する準備ができています。
- Staging:アーティファクトバージョンはテストに使用する準備ができています。
以下の手順は、W&B Registry UI で保護されたエイリアスを作成する方法を説明します。
- W&B Registry に移動します。
- レジストリを選択します。
- ページ右上の歯車ボタンをクリックして、そのレジストリの設定を表示します。
- 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 レジストリ内の 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_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 レジストリ内の Model コレクションにリンクします。また、aliases パラメータに production-us と production-eu を引数として渡すことで、そのアーティファクトバージョンにカスタムエイリアスを2つ追加します。