azure-ai-ml-py について
ワークスペース、ジョブ、モデル、データ、コンピューティングを管理する Python 向け Azure Machine Learning SDK v2 クライアントライブラリです。MLClient を通じてリソース操作、ジョブ監視、パイプライン構築を行えます。
主な機能
- 01ワークスペースとデータ資産の管理
- 02モデルの登録と検索
- 03コンピューティングの作成と管理
- 04ジョブの送信と監視
- 05複数ステップのパイプライン構築
- 06環境とデータストアの管理
活用シーン
- 01Azure ML ワークスペースの一覧表示や作成
- 02データセットとモデルのバージョン登録
- 03トレーニングジョブの送信とログ確認
- 04複数ステップの ML パイプライン実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill azure-ai-ml-pyインストール後、Claude Code で/azure-ai-ml-pyを入力して読み込まれたか確認します。
詳細
Python 向け Azure Machine Learning SDK v2
ワークスペース、ジョブ、モデル、データ、コンピューティングなどの Azure ML リソースを管理するクライアントライブラリです。
対象範囲と実行
作成や更新、またはコンピューティングやジョブの送信を行う前に、サブスクリプション、テナント、ワークスペース、リージョン、予算を確認してください。例は断片的なものです。トレーニングコンポーネント、ソースファイル、環境定義は含まれていません。現在サポートされている、レビュー済みの SDK/環境バージョンを選択してください。過去のイメージや @latest の例は、再現性を保証するものではありません。最小権限の ID を使用し、プライベートなジョブデータを出力しないでください。
インストール
pip install azure-ai-ml
環境変数
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
AZURE_RESOURCE_GROUP=<your-resource-group>
AZURE_ML_WORKSPACE_NAME=<your-workspace-name>
認証
import os
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient(
credential=DefaultAzureCredential(),
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
workspace_name=os.environ["AZURE_ML_WORKSPACE_NAME"]
)
設定ファイルから
import os
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Uses config.json in current directory or parent
ml_client = MLClient.from_config(
credential=DefaultAzureCredential()
)
ワークスペースの管理
ワークスペースの作成
from azure.ai.ml.entities import Workspace
ws = Workspace(
name="my-workspace",
location="eastus",
display_name="My Workspace",
description="ML workspace for experiments",
tags={"purpose": "demo"}
)
ml_client.workspaces.begin_create(ws).result()
ワークスペースの一覧表示
for ws in ml_client.workspaces.list():
print(f"{ws.name}: {ws.location}")
データアセット
データの登録
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
# Register a file
my_data = Data(
name="my-dataset",
version="1",
path="azureml://datastores/workspaceblobstore/paths/data/train.csv",
type=AssetTypes.URI_FILE,
description="Training data"
)
ml_client.data.create_or_update(my_data)
フォルダーの登録
my_data = Data(
name="my-folder-dataset",
version="1",
path="azureml://datastores/workspaceblobstore/paths/data/",
type=AssetTypes.URI_FOLDER
)
ml_client.data.create_or_update(my_data)
モデルレジストリ
モデルの登録
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
model = Model(
name="my-model",
version="1",
path="./model/",
type=AssetTypes.CUSTOM_MODEL,
description="My trained model"
)
ml_client.models.create_or_update(model)
モデルの一覧表示
for model in ml_client.models.list(name="my-model"):
print(f"{model.name} v{model.version}")
コンピューティング
コンピューティングクラスターの作成
from azure.ai.ml.entities import AmlCompute
cluster = AmlCompute(
name="cpu-cluster",
type="amlcompute",
size="Standard_DS3_v2",
min_instances=0,
max_instances=4,
idle_time_before_scale_down=120
)
ml_client.compute.begin_create_or_update(cluster).result()
コンピューティングの一覧表示
for compute in ml_client.compute.list():
print(f"{compute.name}: {compute.type}")
ジョブ
コマンドジョブ
from azure.ai.ml import command, Input
job = command(
code="./src",
command="python train.py --data ${{inputs.data}} --lr ${{inputs.learning_rate}}",
inputs={
"data": Input(type="uri_folder", path="azureml:my-dataset:1"),
"learning_rate": 0.01
},
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest",
compute="cpu-cluster",
display_name="training-job"
)
returned_job = ml_client.jobs.create_or_update(job)
print(f"Job URL: {returned_job.studio_url}")
ジョブの監視
ml_client.jobs.stream(returned_job.name)
パイプライン
from azure.ai.ml import dsl, Input, Output
@dsl.pipeline(
compute="cpu-cluster",
description="Training pipeline"
)
def training_pipeline(data_input):
prep_step = prep_component(data=data_input)
train_step = train_component(
data=prep_step.outputs.output_data,
learning_rate=0.01
)
return {"model": train_step.outputs.model}
pipeline = training_pipeline(
data_input=Input(type="uri_folder", path="azureml:my-dataset:1")
)
pipeline_job = ml_client.jobs.create_or_update(pipeline)
環境
カスタム環境の作成
from azure.ai.ml.entities import Environment
env = Environment(
name="my-env",
version="1",
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
conda_file="./environment.yml"
)
ml_client.environments.create_or_update(env)
データストア
データストアの一覧表示
for ds in ml_client.datastores.list():
print(f"{ds.name}: {ds.type}")
既定のデータストアを取得
default_ds = ml_client.datastores.get_default()
print(f"Default: {default_ds.name}")
MLClient の操作
| プロパティ | 操作 |
|---|---|
workspaces | create, get, list, delete |
jobs | create_or_update, get, list, stream, cancel |
models | create_or_update, get, list, archive |
data | create_or_update, get, list |
compute | begin_create_or_update, get, list, delete |
environments | create_or_update, get, list |
datastores | create_or_update, get, list, get_default |
components | create_or_update, get, list |
ベストプラクティス
- データ、モデル、環境にはバージョン管理を使用します
- コンピューティングコストを抑えるため、アイドル時のスケールダウンを設定します
- 再現性のあるトレーニングには環境を使用します
- 進行状況を監視するには、ジョブのログをストリーミングします
- トレーニングジョブの成功後にモデルを登録します
- 複数の手順からなるワークフローにはパイプラインを使用します
- 整理やコスト追跡のためにリソースにタグを付けます
使用する場面
このスキルは、概要で説明されているワークフローや操作を実行する場合に適用できます。
制限事項
- このスキルは、タスクが上記の対象範囲に明確に該当する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、処理を中止して確認を求めてください。
コメント
Markdown 対応