Note
Foundry のマネージド コンピューティングは現在パブリック プレビュー段階であり、それを使用するには 登録が必要です 。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
Microsoft Foundry のマネージド コンピューティング デプロイ (プレビュー) では、専用 GPU 容量でオープンソース モデルがホストされます。 Microsoftは、GPU トポロジ、ランタイム、コンテナー イメージ、セキュリティ修正プログラムの適用を所有しています。 ワークロードに合ったモデル、デプロイ テンプレート、アクセラレータ ファミリ、スケーリング動作を選択します。 この記事では、Microsoft Foundry のマネージド コンピューティングにオープンソース モデルをデプロイするためのエンド ツー エンドのワークフローについて説明します。
この記事では、次の方法について説明します。
- モデル カタログでモデルを選択する
- デプロイ テンプレートを選択する
- Foundry ポータルまたは Python SDK を使用してモデルをデプロイする
- OpenAI SDK を使用して推論を実行する
- デプロイをスケールして監視する
- より多くのクォータを要求する
Foundry でのマネージド コンピューティングデプロイの概要 (モデル インスタンス、デプロイ テンプレート、ランタイム、アクセラレータ ファミリ、課金、現在の制限など) については、Microsoft Foundry (プレビュー) の
前提条件
有効な Azure サブスクリプション。 作成するには、「Azure無料アカウントを作成するを参照してください。
リソースを作成するアクセス許可があるサブスクリプション内のリソース グループ。
Microsoft Foundry アカウント (
AIServicesの種類の Cognitive Services アカウント) と Foundry プロジェクト。 作成するには、「 Foundry プロジェクトを作成する」を参照してください。Foundry アカウントのスコープにおける次の Azure ロール割り当て:
- Cognitive Services Contributor (または Foundry Owner / Foundry Account Owner) — マネージド コンピューティング デプロイを作成、更新、削除するために必要です。 Microsoft Foundry のマネージド コンピューティングのコントロール プレーン操作のためのロールベースのアクセス制御を参照してください。
- Foundry User — Playground、SDK、または REST からMicrosoft Entra IDを使用してデプロイを呼び出すために必要です。
ターゲット リージョンにデプロイする予定のアクセラレータ ファミリ (A100、H100、または MI300X) の マネージド コンピューティング クォータ が承認されました。 マネージド コンピューティング クォータは、AZURE VM クォータとは別です。 この記事の最後にある クォータの追加 要求を参照してください。
SDK と CLI のローカル ツールの例:
pip install "azure-mgmt-cognitiveservices==15.0.0b2" azure-identity openai requests az loginAzure CLI 2.60 以降。
Important
Foundry のマネージド コンピューティングは パブリック プレビュー段階です。 API、SKU 名、およびサポートされているリージョンは、一般公開前に変更される可能性があります。 組み込みのコンテンツ フィルター処理は、パブリック プレビューのマネージド コンピューティング データ パスの一部ではありません。 要求レベルまたは応答レベルのフィルター処理が必要な場合は、アプリケーションから直接 Azure AI Content Safety API を呼び出します。
カタログ内のモデルを選択する
マネージド コンピューティングは、Foundry モデル カタログの Hugging Face Collection からモデルをデプロイし、 azure-huggingface レジストリから提供します。
-
Microsoft Foundry にサインインします。
「New Foundry」トグルがオンになっていることを確認してください。 これらの手順は Foundry (新規) を参照します。
- サブスクリプションと Foundry リソースを選択します。
- 右上のナビゲーションで [ ビルド ] を選択し、左側のウィンドウで [モデル ] を選択します。
- コレクションでカタログを絞り込みます。 [ 顔を抱き締める] を選択します。 他のフィルターを使用して、デプロイするモデルを絞り込む (Qwen などのモデル ファミリを選択するなど) か、モダリティまたはタスクを使用することもできます。 モデル名で検索することもできます。
- モデル カード (
nvidia-nemotron-3-nano-30b-a3b-fp8など) を選択して詳細を開きます。
モデル カードには、アップストリーム ライセンス、モダリティ、サポートされているタスク、モデル用に発行されたデプロイ テンプレートが表示されます。 ポータル ウィザードを使用する代わりに、Python SDK または REST を使用してデプロイする場合は、デプロイ呼び出しへの入力として 3 つの値が必要です。 これらの値は、Foundry ポータルで次のように見つけることができます。
モデル ID: モデルの完全修飾レジストリ資産 ID。 カタログの モデル カード で使用できます ([モデルの詳細] ウィンドウからコピー)。 Example:
azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2デプロイ テンプレート ID: モデルのランタイム、アクセラレータ ファミリとカウント、コンテキストの長さを識別します。 モデル カードで [配置] を選択すると開く展開ウィザードで使用できます。 テンプレートを選択し、ウィザードからデプロイ テンプレート ID をコピーします。 Example:
azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latestNote
モデル ID とデプロイ テンプレート ID は互換性がある必要があります。すべてのテンプレートには、サポートされているモデルのバージョンが一覧表示されます。 ポータル ウィザードには、選択したモデルの互換性のあるテンプレートのみが表示されます。 コードを使用してデプロイする場合は、両方の参照が
azure-huggingfaceレジストリ内の有効なレジストリ資産に解決されることを確認します。デプロイ テンプレートの詳細については、マネージド コンピューティングの概要に関する記事の デプロイ テンプレート を参照してください。
アクセラレータの種類:
H100_80GB、A100_80GB、MI_300_192GBなど。 展開ウィザードの各テンプレートの横に表示されます。
モデルをデプロイする
モデル カードで [ 配置 ] を選択して、デプロイ ウィザードを開きます。
デプロイ名を指定します。 デプロイ名は、推論時にアプリケーションが
modelフィールドに渡すものです。安定したアプリケーションフレンドリ名 (nemotron-3-nano-30bなど) を選択します。展開の種類 (グローバルマネージド コンピューティング) は、展開ウィザードで事前に選択されています。
ワークロードに一致する デプロイ テンプレート を選択します。 たとえば、中程度のコンテキスト長で低コストの H100 シングル アクセラレータ テンプレート、またはプロンプトが単一アクセラレータ コンテキストの制限を超える場合は 2 アクセラレータ テンプレートなどです。
アクセラレータの 種類 (例:
H100_80GB) を選択します。モデル インスタンスを
1に設定します (ワークロードを測定済みの場合は、それ以上の値に設定します)。 モデル インスタンス は、マネージド コンピューティングのサイズを決定するものであり、デプロイ SKU のcapacity値です。 各インスタンスは、テンプレートによって定義されたアクセラレータの数を使用します。たとえば、容量 2 のインスタンスごとに 1 つの H100 を指定するテンプレートでは、合計で 2 つの H100 アクセラレータが使用されます。Tip
最初のデプロイの
capacity: 1から開始し、ワークロードを測定した後で容量を増やしてスケールアウトします。 容量を増やす方法については、 デプロイの管理とスケーリング に関するページを参照してください。チェック ボックスをオンにして、デプロイのコストを確認します。
展開 を選択します。 通常、プロビジョニングには 10 ~ 15 分かかります。
デプロイメントを確認する
デプロイの詳細ページは、モデルが Foundry エンドポイントの背後にあるときに、 Creating から Succeeded に更新されます。 デプロイの詳細 (プロビジョニングの状態、デプロイの種類、デプロイの作成時に行ったその他の選択など) を確認できます。
テスト要求を送信する
デプロイの準備ができたら、Foundry Playground で対話形式でテストします。
- [ プレイグラウンド ] タブを選択して、[デプロイの 詳細 ] ページから切り替えます。
- デプロイをテストするためのプロンプトを送信します。
展開を監視する
マネージド コンピューティング デプロイは、他の Foundry デプロイと同じAzure Monitorサーフェイスにメトリックを出力します。 Foundry ポータルのデプロイの詳細ページの [監視 ] タブには、次の情報が表示されます。
- HTTP 状態コードでグループ化された要求数。
- 応答時間のパーセンタイル (p50、p90、p99)。
- チャット補完モデルの場合: 入力トークン数と出力トークン数、time-to-first-token(TTFT)のパーセンタイル、およびトークン間デコード時間のパーセンタイル。
詳細な分析またはアラートを行うには、
デプロイメントを削除する
デプロイを削除すると、アクセラレータの割り当てが解放され、すぐに課金が停止されます。 デプロイを削除するには:
- Foundry ポータルでデプロイの一覧に移動します。
- デプロイ名の横にあるラジオ ボタンを選択します。
- 右側のウィンドウで [削除] を選択します。
より多くのクォータを要求する
マネージド コンピューティングのクォータは、Foundry クォータ プロセスを通じて、リージョンごとの各アクセラレータ ファミリに対して付与され、Azure VM クォータとは別です。 既存のAzure VM クォータは、マネージド コンピューティングデプロイには適用できません。
より多くのクォータを要求するには:
- 右上のナビゲーションで [操作] を選択し、左側のウィンドウで [クォータ] を選択します。
- [ マネージド コンピューティング ] タブを選択します。次の表に、アクセラレータ ファミリとリージョン別にグループ化された現在の割り当ての一覧を示します。
- 右上隅にある [ クォータの要求 ] を選択します。
- 要求フォームで、アクセラレータ ファミリ (A100、H100、または MI300X)、ターゲット リージョン、および要求されたクォータを選択します。 要求を送信します。
承認されたクォータ変更が反映されるまで最大 15 分かかります。 [ クォータ] ページを更新して、更新された割り当てを確認します。 クォータの概念の詳細については、「 リソースのクォータの管理と引き上げ」を参照してください。
モデルをデプロイするには、次のPython スクリプトを使用します。 プレースホルダーを、独自のサブスクリプション ID、リソース グループ、Foundry アカウント名、デプロイ名に置き換えます。
Tip
最初のデプロイの capacity: 1 から開始し、ワークロードを測定した後で容量を増やしてスケールアウトします。 容量を増やす方法については、 デプロイの管理とスケーリング に関するページを参照してください。
from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient
SUBSCRIPTION_ID = "<your-subscription-id>"
RESOURCE_GROUP = "<your-resource-group>"
ACCOUNT_NAME = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"
MODEL = "azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2"
TEMPLATE = "azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest"
client = CognitiveServicesManagementClient(
DefaultAzureCredential(), SUBSCRIPTION_ID
)
deployment = client.managed_compute_deployments.begin_create_or_update(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
resource={
"sku": {"name": "GlobalManagedCompute", "capacity": 1},
"properties": {
"model": MODEL,
"deploymentTemplate": TEMPLATE,
"acceleratorType": "H100_80GB",
"versionUpgradeOption": "OnceNewDefaultVersionAvailable",
},
},
).result() # blocks until terminal state (~10–15 min)
print(f"State: {deployment.properties.provisioning_state}")
print(f"ID: {deployment.id}")
デプロイメントを確認する
デプロイが作成されたら、トラフィックを送信する前に正常であることを確認します。
d = client.managed_compute_deployments.get(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
)
print(f"State: {d.properties.provisioning_state}") # expect: Succeeded
print(f"Model: {d.properties.model}")
print(f"Template: {d.properties.deployment_template}")
print(f"Accelerator: {d.properties.accelerator_type}")
print(f"Capacity: {d.sku.capacity}")
検索対象:
-
provisioningState: Succeededは、デプロイがライブであることを意味します。 -
acceleratorTypeは、要求した値と一致します。 -
sku.capacityは、要求したインスタンスの数と一致します。
provisioningStateがFailed場合は、「トラブルシューティング」を参照してください。
テスト要求を送信する
マネージド コンピューティング デプロイは、次の場所にある統合 Foundry エンドポイントを介して到達可能です。
https://<account>.services.ai.azure.com/openai/v1/
要求本文の model フィールドは、モデル ID ではなく、指定した デプロイ名 を受け取ります。
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI
ACCOUNT_NAME = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default",
)
client = OpenAI(
base_url=f"https://{ACCOUNT_NAME}.services.ai.azure.com/openai/v1",
api_key="placeholder", # required by OpenAI SDK; overridden by Authorization header
default_headers={"Authorization": f"Bearer {token_provider()}"},
)
resp = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(resp.choices[0].message.content)
Microsoft Entra IDを使用してデプロイを呼び出す場合は、Foundry アカウントで Azure AI User ロールが必要です。
デプロイの管理とスケーリング
マネージド コンピューティング デプロイはモデル中心であるため、ノードのサイズ設定ではなく、モデル インスタンスの数を変更してデプロイをスケーリングします。
容量の変更
d = client.managed_compute_deployments.get(
RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME
)
d.sku.capacity = 3
client.managed_compute_deployments.begin_create_or_update(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
resource=d,
).result()
ランタイムとモデルの更新を取得する
デプロイで versionUpgradeOption を OnceNewDefaultVersionAvailable に設定すると、Microsoft が新しい既定のモデルとランタイム バージョンを公開したときに、それらがデプロイに自動的に適用されるようになります。 ランタイム パッチと CVE 修正プログラムは、ライブ 顧客のデプロイに自動的に適用されます。モデルを再デプロイして取得することはありません。
展開を監視する
マネージド コンピューティング デプロイは、他の Foundry デプロイと同じAzure Monitorサーフェイスにメトリックを出力します。 詳細な分析またはアラートを行うには、
- HTTP 状態コードでグループ化された要求数。
- 応答時間のパーセンタイル (p50、p90、p99)。
- チャット補完モデルの場合: 入力トークン数と出力トークン数、time-to-first-token(TTFT)のパーセンタイル、およびトークン間デコード時間のパーセンタイル。
デプロイごとにグループ化し、アラートを構成することもできます。 デプロイごとの課金タグは自動的に出力されます。 デプロイ タグで Cost Management をフィルター処理し、特定のマネージド コンピューティング デプロイに支出を割り当てます。 詳細については、Microsoft Foundry のコストを計画および管理するをご覧ください。
デプロイメントを削除する
デプロイを削除すると、アクセラレータの割り当てが解放され、すぐに課金が停止されます。 デプロイを削除するには:
client.managed_compute_deployments.begin_delete(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
).result()
アクセス制御の概要
| Action | 最小権限 |
|---|---|
| マネージド コンピューティング デプロイを作成、更新、または削除する | Foundry アカウントの Cognitive Services 共同作成者 (または Foundry 所有者/Foundry アカウント所有者) |
| デプロイの読み取りまたはデプロイの一覧表示 | Cognitive Services ユーザー、Foundry ユーザー、Foundry プロジェクト マネージャー、または上記のいずれかの役割 |
| Microsoft Entra IDを使用してデプロイを呼び出す | Foundry アカウントの Foundry ユーザー |
| API キーを使用してデプロイを呼び出す | アカウント キー (呼び出し自体にAzureロールは必要ありません。キーの取得には読み取りアクセスが必要です) |
Azure リソース プロバイダーの操作の完全な一覧、ロールとアクセス許可の対応表、および標準デプロイとの比較については、Microsoft Foundry のロールベースのアクセス制御 — マネージド コンピュートのコントロール プレーンの操作 を参照してください。
Troubleshooting
provisioningState: Failed
要求されたアクセラレータ ファミリがターゲット リージョンのクォータを承認していること、および選択したデプロイ テンプレートにそのアクセラレータ ファミリが一覧表示されていることを確認します。 モデルとデプロイ テンプレートの不一致 (たとえば、別のモデル バージョン用に発行されたテンプレート) が一般的な原因です。 両方の参照先が azure-huggingface レジストリ内の有効なレジストリ アセットであることを確認します。
作成時に "クォータ超過"
Foundry アカウントには、要求されたアクセラレータ ファミリのリージョンに十分なマネージド コンピューティング クォータがありません。 クォータの追加を要求します。 Azure VM クォータはマネージド コンピューティングには適用されません。
リージョンの "容量不足"
このリージョンでは、指定されたアクセラレータ ファミリーのキャパシティを利用できませんでした。 別のファミリを試す (たとえば、H100 ではなく MI300X にデプロイする)、インスタンスごとにアクセラレータが少ないテンプレートを選択するか、別のリージョンをターゲットにします。 MI300X などのより大きなメモリ ファミリには、多くの場合、A100 に収まらないモデルの容量があります。
/openai/v1/ ルートで 404 エラー
https://<account>.services.ai.azure.com/openai/v1/chat/completionsに対するチャット完了要求で 404 が返された場合は、次のことを確認します。
- 要求本文のデプロイ名は、作成したデプロイと一致します。
- デプロイの
provisioningStateはSucceeded。 - モデルのランタイムは、チャットの完了を公開します。 一部のランタイム (埋め込み用の TEI など) では、チャット完了ルートが公開されません。代わりに、モデル カードに記載されているルートを使用してください。
デプロイがCreatingの状態で20分以上停止している
一部の大規模なモデルでは、通常の 10 ~ 15 分よりも時間がかかります。
provisioningStateが 20 分後もCreating場合は、Foundry ポータルのデプロイの詳細ページで操作の状態メッセージを確認し、基になるリージョンが機能低下していないことを確認します。 デプロイが操作メッセージがないまま 30 分を超えて Creating の状態のままである場合は、そのデプロイを削除して再試行してください。 プロビジョニングはデプロイ名に対してべき等です。