Azure Machine Learning レジストリを管理する

Azure Machine Learning エンティティは、次の 2 つの大きなカテゴリに分類できます。

  • モデル環境コンポーネントデータセットなどの資産は、ワークスペースに依存しない永続エンティティです。 たとえば、モデルは任意のワークスペースに登録し、任意のエンドポイントにデプロイできます。
  • コンピューティングジョブエンドポイントなどのリソースはワークスペース固有の一時的なエンティティです。 たとえば、オンライン エンドポイントには、特定のワークスペース内の特定のインスタンスに固有のスコアリング URI があります。 同様に、ジョブは既知の期間実行され、実行されるたびにログとメトリックが生成されます。

資産は、中央リポジトリに格納され、異なるワークスペース (場合によっては異なるリージョン) で使用されるのに適しています。 リソースはワークスペース固有です。

Azure Machine Learning レジストリを使うと、それらの資産をさまざまなワークスペースで作成して使用できます。 レジストリでは、資産に短い待機時間でアクセスできるようにマルチリージョンのレプリケーションがサポートされているため、異なる Azure リージョンにあるワークスペースの資産を使用できます。 レジストリを作成すると、レプリケーションを容易にするために必要な Azure リソースがプロビジョニングされます。 まず、サポートされている各リージョンの Azure BLOB ストレージ アカウントです。 次に、サポートされている各リージョンへのレプリケーションが有効になっている 1 つの Azure Container Registry です。

Diagram of the relationships between assets in workspace and registry.

前提条件

この記事の手順に従う前に、次の前提条件が満たされていることをご確認ください。

ヒント

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_hnstrue に設定します。 Azure Blob Storage を作成するには、storage_account_hnsfalse に設定します。 この storage_account_hns フィールドは、replication_locations リストの各 location の下にあります。

Note

hnsstorage_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 ユーザーがレジストリーを削除できるようにします

次の手順