Azure Machine Learning レジストリを管理する
Azure Machine Learning エンティティは、次の 2 つの大きなカテゴリに分類できます。
- モデル、環境、コンポーネント、データセットなどの資産は、ワークスペースに依存しない永続エンティティです。 たとえば、モデルは任意のワークスペースに登録し、任意のエンドポイントにデプロイできます。
- コンピューティング、ジョブ、エンドポイントなどのリソースはワークスペース固有の一時的なエンティティです。 たとえば、オンライン エンドポイントには、特定のワークスペース内の特定のインスタンスに固有のスコアリング URI があります。 同様に、ジョブは既知の期間実行され、実行されるたびにログとメトリックが生成されます。
資産は、中央リポジトリに格納され、異なるワークスペース (場合によっては異なるリージョン) で使用されるのに適しています。 リソースはワークスペース固有です。
Azure Machine Learning レジストリを使うと、それらの資産をさまざまなワークスペースで作成して使用できます。 レジストリでは、資産に短い待機時間でアクセスできるようにマルチリージョンのレプリケーションがサポートされているため、異なる Azure リージョンにあるワークスペースの資産を使用できます。 レジストリを作成すると、レプリケーションを容易にするために必要な Azure リソースがプロビジョニングされます。 まず、サポートされている各リージョンの Azure BLOB ストレージ アカウントです。 次に、サポートされている各リージョンへのレプリケーションが有効になっている 1 つの Azure Container Registry です。
前提条件
この記事の手順に従う前に、次の前提条件が満たされていることをご確認ください。
Azure CLI と Azure CLI の
ml
拡張機能。 詳しくは、CLI (v2) のインストール、設定、使用に関するページをご覧ください。重要
この記事の CLI の例では、Bash (または互換性のある) シェルを使用していることを前提としています。 たとえば、Linux システムや Linux 用 Windows サブシステムなどです。
Azure Machine Learning ワークスペース。 お持ちでない場合は、CLI (v2) のインストール、セットアップ、使用に関する記事の手順を使用して作成します。
ヒント
CLI 用の古いバージョンの ml
拡張機能を使用している場合は、この機能を使用する前に最新バージョンに更新することが必要になる可能性があります。 最新バージョンに更新するには、次のコマンドを使用します。
az extension update -n ml
詳しくは、CLI (v2) のインストール、設定、使用に関するページをご覧ください。
レジストリの作成を準備する
レジストリの作成に進む前に、次の情報を慎重に決定する必要があります。
名前を選択する
名前を選ぶ前に、次の要素を考慮してください。
- レジストリは、すべてのワークスペースで組織内のチーム間で ML 資産を共有しやすくするためのものです。 共有スコープを反映した名前を選択します。 この名前は、グループ、部門、または組織を識別するのに役立ちます。
- レジストリ名は組織固有です (Microsoft Entra テナント)。 たとえば、チーム名や組織名にプレフィックスを付け、汎用名を使用しないようにする場合があります。
- レジストリ名は、コードで参照されるモデル、環境、およびコンポーネントの ID で使用されるため、一度作成すると変更できません。
- 長さは 2 ~ 32 文字です。
- 英数字、アンダースコア、ハイフンを使用できます。 その他の特殊文字はありません。 スペースなし - レジストリ名は、コードで参照できるモデル ID、環境 ID、およびコンポーネント ID の一部です。
- 名前にはアンダースコアまたはハイフンを含めることができますが、アンダースコアまたはハイフンで始めることはできません。 英数字で始める必要があります。
Azure リージョンの選択
レジストリを使用すると、ワークスペース間で資産を共有できます。 これを行うために、レジストリは複数の Azure リージョン間でコンテンツをレプリケートします。 レジストリの作成時に、レジストリがサポートする領域の一覧を定義する必要があります。 現在ワークスペースがあるすべてのリージョンの一覧を作成し、近い将来追加する予定です。 この一覧は、最初に使用するリージョンの適切なセットです。 レジストリを作成するときは、プライマリ リージョンとその他のリージョンのセットを定義します。 レジストリの作成後にプライマリ リージョンを変更することはできませんが、その他のリージョンは後で更新できます。
アクセス許可を確認してください
レジストリを作成する予定のサブスクリプションまたはリソース グループの "所有者" または "共同作成者" であることを確認します。 これらの組み込みの役割が 1 つもない場合は、この記事の最後にあるアクセス許可に関するセクションを確認してください。
レジストリの作成
YAML定義を作成し、registry.yml
と名前を付けます。
Note
プライマリの場所は、YAML ファイルに 2 回表示されます。 次の例で、eastus
は、最初にプライマリの場所 (location
項目) として一覧表示され、一覧 replication_locations
にも表示されます。
name: DemoRegistry1
tags:
description: Basic registry with one primary region and to additional regions
foo: bar
location: eastus
replication_locations:
- location: eastus
- location: eastus2
- location: westus
YAML ファイルの構造について詳しくは、レジストリ YAML のリファレンスに関する記事をご覧ください。
ヒント
通常、Azure Portal には "米国東部" などの Azure リージョンの表示名が表示されますが、レジストリ作成 YAML には、スペースと小文字のないリージョンの名前が必要です。 YAML で指定できるリージョンの名前へのリージョン表示名のマッピングを検索するために az account list-locations -o table
を使用します。
レジストリ作成コマンドを実行します。
az ml registry create --file registry.yml
ストレージ アカウントの種類と SKU を指定する (省略可能)
ヒント
Azure Storage アカウントの種類と SKU の指定は、Azure CLI からのみ使用できます。
Azure Storage には、さまざまな機能と価格を持つ複数の種類のストレージ アカウントが用意されています。 詳細については、「ストレージ アカウントの種類」の記事を参照してください。 ニーズに最適なストレージ アカウント SKU を特定したら、適切な SKU の種類の値を見つけます。 YAML ファイルで、選択した SKU の種類をstorage_account_type
フィールドの値として使用します。 このフィールドは、replication_locations
リストの各 location
の下にあります。
次に、Azure Blob Storage アカウントを使用するか、Azure Data Lake Storage Gen2 を使用するかを決定します。 Azure Data Lake Storage Gen2 を作成するには、storage_account_hns
を true
に設定します。 Azure Blob Storage を作成するには、storage_account_hns
を false
に設定します。 この storage_account_hns
フィールドは、replication_locations
リストの各 location
の下にあります。
Note
hns
の storage_account_hns
部分は、Azure Data Lake Storage Gen2 アカウントの階層型名前空間 機能を参照します。
次の YAML ファイルの例は、この高度なストレージ構成を示しています。
name: DemoRegistry2
tags:
description: Registry with additional configuration for storage accounts
foo: bar
location: eastus
replication_locations:
- location: eastus
storage_config:
storage_account_hns: False
storage_account_type: Standard_LRS
- location: eastus2
storage_config:
storage_account_hns: False
storage_account_type: Standard_LRS
- location: westus
storage_config:
storage_account_hns: False
storage_account_type: Standard_LRS
レジストリにユーザーを追加する
ユーザーがレジストリの資産 (モデル、環境、コンポーネント) のみを使用できるようにするか、レジストリ内の資産の使用と作成の両方を許可するかを決定します。 Azure ロールベースのアクセス制御 を使用してアクセス許可を管理する方法に慣れていない場合は、ロールを割り当てる手順を確認します。
ユーザーがレジストリから資産を作成および使用できるようにする
ユーザーに資産の読み取りのみを許可するには、組み込みの 閲覧者 ロールをユーザーに付与します。 組み込みロールを使用しない場合は、次のアクセス許可を持つカスタム ロールを作成します
権限 | 説明 |
---|---|
Microsoft.MachineLearningServices/registries/read | ユーザーがレジストリを一覧表示し、レジストリ メタデータを取得できるようにします |
Microsoft.MachineLearningServices/registries/assets/read | ユーザーが資産を参照し、ワークスペース内の資産を使用できるようにする |
ユーザーがレジストリから資産を作成および使用できるようにする
ユーザーが資産の読み取りと作成または削除の両方を許可できるようにするには、前述の読み取りアクセス許可に加えて、次の書き込みアクセス許可を付与します。
権限 | 説明 |
---|---|
Microsoft.MachineLearningServices/registries/assets/write | レジストリーに資産を作成する |
Microsoft.MachineLearningServices/registries/assets/delete | レジストリ内の資産を削除する |
警告
組み込みの 共同作成者 ロールと 所有者 ロールを使用すると、ユーザーはレジストリを作成、更新、削除できます。 ユーザーがレジストリーから資産を作成して使用し、レジストリーを作成または更新しないようにするには、カスタム・ロールを作成する必要があります。 カスタムロールを参照して、アクセス許可からカスタム ロールを作成する方法を確認します。
ユーザーがレジストリを作成および管理できるようにする
ユーザーがレジストリを作成、更新、および削除できるようにするには、組み込みの共同作成者または所有者ロールを付与します。 組み込みロールを使用しない場合は、レジストリ内の資産の読み取り、作成、削除を行うための上記のすべてのアクセス許可に加えて、次のアクセス許可を持つカスタムロールを作成します。
権限 | 説明 |
---|---|
Microsoft.MachineLearningServices/registries/write | ユーザーがレジストリーを作成または更新できるようにします |
Microsoft.MachineLearningServices/registries/delete | ユーザーがレジストリーを削除できるようにします |