Hugging Face が公開しているモデルは、Microsoft Foundry でデプロイするために Foundry モデル カタログで利用できます。 現在の Foundry エクスペリエンスでは、これらのモデルはマネージド コンピューティングを使用します。
この記事では、デプロイ可能な Hugging Face モデルを検出し、マネージド コンピューティングを使用してデプロイし、アプリケーションからエンドポイントを呼び出します。
モデルの検出では、現在のプロジェクトにデプロイできる Hugging Face モデルを見つけるには、現在のプロジェクトで利用可能 フィルターを使用します。 すべての Hugging Face 発行モデルを表示するには、可用性フィルターを [すべてのモデル] に設定します。 Foundry でモデルを現在使用できない場合は、 Foundry (クラシック) に デプロイできるように、モデル カードに [Foundry で続行] (クラシック) ボタンが表示されます。
Important
Foundry マネージド コンピューティングは現在プレビュー段階です。 プレビュー機能は、一部のリージョンでは利用できない場合があり、補足条件が適用されます。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
Foundry の Hugging Face モデルは世界中で利用可能です。 リージョン別の一般的なサービスの可用性情報については、リージョン別のAzure製品を参照してください。
Hugging Face モデルを責任を持って使用する
Hugging Face から提供されるモデルは、Microsoftによってテストまたは評価されない非Microsoft製品です。 モデルをデプロイする前に、法的またはエクスポート制御に関する考慮事項を評価し、独自のモデル のリスクと安全性の評価を行うなど、特定のユース ケースに適していることを確認します。 Foundry で提供されるモデルに 対する Foundry のリスクと安全性の評価 と Hugging Face のセキュリティ対策について説明します。
Important
Hugging Face のモデルには、Hugging Face モデルの詳細ページで入手できるサードパーティのライセンス条項が適用されます。 モデルのライセンス条項に準拠するのは、お客様の責任です。
Prerequisites
- フォンドリー プロジェクト。
- Foundry アカウント スコープでの次のロールの割り当て:
- マネージド コンピューティング デプロイを作成、更新、削除するには、Cognitive Services Contributor (または Foundry Owner / Foundry Account Owner) が必要です。
- Foundry ユーザーは、プレイグラウンド、SDK、または REST からMicrosoft Entra IDを使用してデプロイを呼び出します。 ロールの定義については、 Foundry でのロールベースのアクセス制御に関するページを参照してください。
- 選択したアクセラレータ ファミリのAzure サブスクリプションで使用可能な GPU マネージド コンピューティング クォータ。 Foundry マネージド コンピューティング クォータは、AZURE VM クォータとは別であり、別の要求パスを使用します。 Foundry ポータルで、Manage>Quota>Managed compute>Request クォータに移動して、現在の割り当てを確認するか、引き上げを要求します。 詳細なガイダンスについては、「 クォータの追加要求」を参照してください。
Hugging Face モデルをデプロイする
モデルを検索して選択する
Foundry ポータルで、上部のナビゲーション バーの [検出] に移動し、左側のウィンドウで [モデル] を選択します。
Collections フィルターで Hugging Face を選択すると、Hugging Face が公開している利用可能なモデルが表示されます。
Project フィルターで [使用可能] を選択すると、現在projectとリージョンにデプロイできるモデルのみが表示されます。
[デプロイ オプション] フィルターで、[マネージド コンピューティング] を選択すると、マネージド コンピューティング デプロイで使用可能なモデルのみが表示されます。
モデル タイルを選択して、モデルの詳細カードを開きます。
設定とデプロイ
モデルの詳細カードで、[デプロイ] を選択 します。 この操作により、展開構成パネルが既定で選択された状態で開きます。
デプロイ名を入力します。 デプロイ名が必要であり、ドット (
.) を含めることはできません。 英数字、アンダースコア、ハイフンのみを使用し、2 ~ 64 文字を使用します。デプロイ テンプレートを選択します。
モデルのサイズとパフォーマンスの要件に一致する アクセラレータの種類 を選択します。 ポータルは、互換性のあるアクセラレータに対して使用可能なオプションを事前フィルター処理します。
インスタンス数を指定します。
- テストと開発には 1 つのインスタンスを使用します。
- 可用性を確保し、トラフィックの急増を処理するには、運用環境に 2 つ以上のインスタンスを使用します。
展開 を選択します。 通常、デプロイ プロセスには数分かかります。 完了すると、ポータルにデプロイの詳細ページが表示され、次の情報が表示されます。
- モデルを呼び出すためのエンドポイント URL
- 認証用の API キー
- デプロイの状態とログ
Python SDK を使用したデプロイ (代替)
自動化を希望する場合は、Python管理 SDK を使用して、同じマネージド コンピューティング デプロイを作成します。 プレースホルダーを、サブスクリプションと選択したモデルの値に置き換えます。
MODELとTEMPLATEの値を取得するには、Foundry ポータルでモデルの詳細カードと展開ウィザードを開き、完全修飾レジストリ資産 ID をコピーします。
python -m pip install --upgrade azure-identity azure-mgmt-cognitiveservices openai
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 = "<your-deployment-name>"
MODEL = "azureml://registries/azure-huggingface/models/<model-id>/versions/<version>"
TEMPLATE = "azureml://registries/azure-huggingface/deploymenttemplates/<template-id>/labels/<label>"
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": "<accelerator-type>",
"versionUpgradeOption": "OnceNewDefaultVersionAvailable",
},
},
).result()
print(f"State: {deployment.properties.provisioning_state}")
print(f"ID: {deployment.id}")
展開を確認して使用する
デプロイが完了したら、アプリケーションに統合する前にエンドポイントを検証します。
デプロイの詳細ページで、デプロイの状態が [成功] であることを確認します。
デプロイの詳細ページからテスト推論を実行して、モデルがタスクの種類に対して正常な応答を返したことを確認します。
デプロイに失敗した場合は、デプロイ ログを確認します。 次に、選択したモデルとアクセラレータの種類の GPU クォータとリージョンの可用性を確認します。 Foundry マネージド コンピューティング クォータは、AZURE VM クォータとは別です。 クォータ チェックと要求の増加については、「 クォータの追加要求」を参照してください。
アプリケーションからエンドポイントを呼び出す
検証が成功したら、統合 Foundry エンドポイントのベース URL を使用してデプロイを呼び出します。
https://<account>.services.ai.azure.com/openai/v1/
要求本文で、モデル ID ではなく、 model フィールドを デプロイ名に設定します。
Microsoft Entra ID を使用して OpenAI SDK をPythonする
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI
ACCOUNT_NAME = "<your-foundry-account>"
DEPLOYMENT_NAME = "<your-deployment-name>"
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=token_provider,
)
response = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[{"role": "user", "content": "What is the capital of Nigeria?"}],
)
print(response.choices[0].message.content)
API キーを使用して OpenAI SDK をPythonする
from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient
from openai import OpenAI
SUBSCRIPTION_ID = "<your-subscription-id>"
RESOURCE_GROUP = "<your-resource-group>"
ACCOUNT_NAME = "<your-foundry-account>"
DEPLOYMENT_NAME = "<your-deployment-name>"
mgmt = CognitiveServicesManagementClient(
DefaultAzureCredential(), SUBSCRIPTION_ID
)
api_key = mgmt.accounts.list_keys(RESOURCE_GROUP, ACCOUNT_NAME).key1
client = OpenAI(
base_url=f"https://{ACCOUNT_NAME}.services.ai.azure.com/openai/v1",
api_key=api_key,
)
response = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[{"role": "user", "content": "What is the capital of Nigeria?"}],
)
print(response.choices[0].message.content)
cURL を使用してエンドポイントをテストする
cURL 要求を使用して、ポータルの外部でデプロイを検証します。 エンドポイントの URL、API キー、モデル名を実際のデプロイ値に置き換えます。
curl -X POST "https://<your-foundry-account>.services.ai.azure.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "api-key: <your-api-key>" \
-d '{
"messages": [{"role": "user", "content": "What is the capital of Nigeria?"}],
"temperature": 0.2,
"max_tokens": 256,
"model": "<your-deployment-name>"
}'
応答が成功すると、HTTP 200 が返され、 choices[0].message.contentが含まれます。
Foundry における Hugging Face モデルの仕組み
Foundry の Face モデルをハグすると、マネージド コンピューティング デプロイ パスが使用され、推論用の専用 GPU ベースのエンドポイントが作成されます。
大まかに言うと、
- モデルカタログで Hugging Face モデルを見つけることができます。
- 現在のプロジェクトに配置可能なモデルにフィルター処理します。
- サポートされているモデルをデプロイします。Foundry は専用 GPU コンピューティング インスタンスをプロビジョニングし、エンドポイントを公開します。
- Foundry マネージド コンピューティングの価格体系を使用して、エンドポイント経由でデプロイを呼び出します。
マネージド コンピューティングでは、専用の GPU コンピューティング インスタンス、エンドポイントベースの推論アクセス、Foundry Models Managed Compute 価格モデルを使用した課金が提供されます。 現在の料金と課金の詳細については、「 Foundry Models の価格 - マネージド コンピューティング」を参照してください。
デプロイの概念については、「Microsoft Foundry のマネージド コンピューティング」を参照してください。
データ ホスティングとモデルの重み付け
Foundry で利用できるハギングフェイス モデルの場合、モデルの重みはAzureに格納されます。 この動作は、Foundry (classic) の Hugging Face 公開モデルや Azure Machine Learning における、デプロイ時に Hugging Face Hub からモデル重みがダウンロードされる動作とは異なります。
デプロイ可能な Hugging Face モデルを検出する
モデルカタログで、モデルフィルターを使用して、Hugging Face が公開したモデルに絞り込んで検索します。 現在デプロイできるモデルに焦点を当てるには、Projectで [使用可能] をオンにします。
このフィルターを有効にすると、選択したプロジェクト コンテキストで現在配置可能なモデルのみがカタログに表示されます。 次のすべての条件に該当する場合、このフィルター処理されたビューにモデルが表示されます。
- モデルは Foundry モデル カタログにあります。
- サブスクリプションには、少なくとも 1 つの互換性のあるアクセラレータの種類に対して使用可能な GPU マネージド コンピューティング クォータがあります。
- モデルは、プロジェクトの Azure リージョンで使用できます。
表示されるモデルが表示されない場合は、Foundry (クラシック) に切り替える前に Foundry でクォータとリージョンのカバレッジを確認します。
サポートされているモデル
Foundry では、次のすべての条件を満たす Hugging Face モデルがサポートされています。
- Hugging Face Hub に
Transformers、Diffusers、またはSentence-Transformersタグが必要です。 - 商用の使用と再配布を許可する許容されるライセンス (Apache 2.0、MIT、OpenRAIL-Mなど) を持っている。
-
、
chat-completion、またはimage-to-textなどのembeddingsがある。 - モデルの重みは Safetensors 形式であり、モデルには
trust_remote_codeは必要ありません。
セキュリティ要件
デプロイの前に、Hugging Face コレクション内のすべてのモデルで、必須のセキュリティ スキャンが行われます。
- マルウェアスキャン: このプロセスでは、モデルをスキャンして、埋め込まれたマルウェアや有害なバイナリを特定します。
-
コード検査: このプロセスでは、Hugging Face が明示的に検証しない限り、または信頼できる組織から来た場合を除き、
trust_remote_code=Trueを必要とするモデルは禁止されます。 - 安全な形式の適用: ピックル形式に起因するリスクを排除するため、モデルの重みは Safetensors形式である必要があります。
- 検証チェック: このプロセスでは、公開前に API の準拠とパフォーマンスについて、すべてのモデル、ランタイム、アクセラレータの組み合わせをテストします。
詳細については、Hugging Face のセキュリティ ドキュメントを参照してください。
Foundry または Foundry (クラシック) を選択する
次の表を使用して、シナリオに適合するエクスペリエンスを判断します。
| シナリオ | Use |
|---|---|
| モデルは現在のプロジェクトで使用できます | 鋳造所 |
| Azureから直接ソース化されたモデルの重み付け | 鋳造所 |
| モデルはHugging Face Hubでアクセス制限されています | Foundry (クラシック) |
| 現在のプロジェクトに対してモデルが表示されない | Foundry (クラシック) |
| Hugging Face Hub から直接提供されるモデルウェイト | Foundry (クラシック) |
Foundry でモデルを使用できない場合
一部の Hugging Face 公開モデルは、Foundry では現在使用できない場合があります。 その場合、モデル カードに [ Foundry で続行] (クラシック) ボタンが表示されます。 Foundry (クラシック) で同等のエクスペリエンスを開くには、それを選択します。
Foundry(クラシック)は、現在の Foundry プロジェクト環境で利用できない Hugging Face 公開モデルに対するフォールバック先のままです。 現在の Foundry エクスペリエンスでのマネージド コンピューティングデプロイ機能の詳細については、「Microsoft Foundry のマネージド コンピューティング」を参照してください。 Microsoft Foundry の Hugging Face フィードバック ポータルを通じてモデルをリクエストすることもできます。
現在のエクスペリエンスとクラシック エクスペリエンスの違いを理解するには、 Foundry (クラシック) ポータルからの移行を参照してください。
FAQ
アクセス制限付きの Hugging Face モデルは Foundry で利用できますか?
No. Foundry では、アクセス制限付きの Hugging Face モデルは利用できません。 ゲート モデルでは、使用する前にモデル作成者からの認証と承認が必要です。 ゲート モデルのサポートには Foundry (クラシック) を使用します。 「 Hugging Face Hub からマネージド コンピューティング (クラシック) へのモデルのデプロイ」を参照してください。
マネージド コンピューティングで CPU コンピューティングを使用して Hugging Face モデルをデプロイできますか?
Hugging Face モデルのマネージド コンピューティング デプロイでは、エンタープライズ レベルの GPU アクセラレータが使用されます。 別のデプロイ パスが必要な場合は、Foundry (クラシック) を検討してください。
必要なモデルが Foundry で使用できない場合はどうすればよいですか?
Foundry でモデルを使用できない場合を参照してください。
現在デプロイ可能なモデルのみを検索するにはどうすればよいですか?
モデル カタログで、[コレクション] フィルターを [Hugging Face] に設定し、[デプロイ] オプションを [マネージド コンピューティング] に設定し、Project フィルターで [使用可能] を有効にして、projectとリージョンに現在デプロイ可能なモデルのみを表示します。