Azure AIモデル推論は、基礎モデルの共通機能セットを公開し、開発者が多様なモデル群から予測を均一かつ一貫した方法で利用するためのAPIです。 開発者は、使用している基礎コードを変更することなく、Azure AI Foundryポータルに展開されたさまざまなモデルと通信できます。
特典
言語モデルのような基礎モデルは、近年著しい進歩を遂げています。 これらの進歩は自然言語処理やコンピュータビジョンなど様々な分野に革命をもたらし、チャットボット、バーチャルアシスタント、言語翻訳サービスなどのアプリケーションを可能にしました。
基礎モデルは特定の分野で優れていますが、統一された能力セットには欠けています。 特定のタスクに優れているモデルや、同じタスク間でも、あるモデルは問題にアプローチし、別のアプローチを取ることがあります。 開発者は、 適切なモデルを適切な仕事に使 うことで、この多様性の恩恵を受けることができます。
- 特定の下流タスクのパフォーマンスを向上させること。
- よりシンプルな作業には、より効率的なモデルを活用しましょう。
- 特定のタスクでより速く動作できる小型モデルを使いましょう。
- 複数のモデルを組み合わせて知的な体験を育てましょう。
基礎モデルを統一的に利用することで、開発者は移植性を損なうことなく、基盤となるコードを変更することなく、これらの利点を実現できます。
Inference SDKのサポート
Azure AI Inference パッケージは、Azure AI モデル推論APIをサポートするすべてのモデルを利用でき、簡単に変更できます。 Azure AI InferenceパッケージはAzure AI Foundry SDKの一部です。
| Language | Documentation | Package | 例示 |
|---|---|---|---|
| C# | リファレンス | azure-ai-inference (NuGet) | C# の例 |
| Java | リファレンス | azure-ai-inference (Maven) | Javaの例 |
| JavaScript | リファレンス | @azure/ai-inference (npm) | JavaScript の例 |
| Python | リファレンス | azure-ai-inference (PyPi) | Pythonの例 |
能力
以下の節では、APIが公開する機能の一部について説明します。
モダリティ
APIは、以下のモダリティについて開発者がどのように予測を利用できるかを示しています:
- 情報取得:エンドポイントの下で展開されたモデルの情報を返します。
- テキスト埋め込み:入力テキストを表す埋め込みベクトルを作成します。
- チャット完了:与えられたチャット会話に対してモデル応答を作成します。
- 画像埋め込み:入力テキストと画像を表す埋め込みベクターを作成します。
Extensibility
Azure AIモデル推論APIは、モデルがサブスクライブできる一連のモダリティとパラメータを指定しています。 しかし、一部のモデルはAPIが示す機能以上の機能を持っている場合があります。 その場合、APIは開発者がペイロードに追加パラメータとして渡すことを可能にします。
ヘッダー extra-parameters: pass-throughを設定することで、APIは未知のパラメータを直接基礎モデルに渡そうとします。 モデルがそのパラメータを処理できれば、リクエストは完了します。
以下の例は、Mistral-Largeがサポートするパラメータsafe_promptを渡すリクエストを示していますが、これはAzure AI Model Inference APIには指定されていません。
Request
POST /chat/completions?api-version=2025-04-01
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" },
"safe_prompt": true
}
Note
extra-parametersのデフォルト値はerrorであり、ペイロードに追加パラメータが示されるとエラーを返します。 あるいは、リクエスト内の未知パラメータを extra-parameters: drop に設定することもできます。 この機能は、モデルがサポートしないと分かっている追加パラメータでリクエストを送信する場合に活用してください。それでもリクエストを完了させたい場合に備えて。 典型的な例としてパラメータを示すことが seed です。
異なる能力セットを持つモデル
Azure AIモデル推論APIは一般的な能力セットを示しますが、各モデルはそれらを実装するかどうかを判断できます。 モデルが特定のパラメータをサポートできない場合には、特定のエラーが返されます。
以下の例は、チャット完了リクエストに対するパラメータ reponse_format を示し、 JSON 形式での返信を求める応答を示しています。 例では、モデルがそのような機能をサポートしていないため、エラー422がユーザーに返されます。
Request
POST /chat/completions?api-version=2025-04-01
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "json_object" },
}
応答
{
"status": 422,
"code": "parameter_not_supported",
"detail": {
"loc": [ "body", "response_format" ],
"input": "json_object"
},
"message": "One of the parameters contain invalid values."
}
Tip
プロパティ details.loc を調べて問題のパラメータの位置を把握し、リクエストで渡された値を details.input ることができます。
コンテンツの安全性
Azure AIモデル推論APIはAzure AI Content Safetyをサポートしています。 Azure AI Content Safetyをオンにしたデプロイメントを使用すると、入力と出力が有害なコンテンツの検出と防止を目的とした分類モデル群を通過します。 コンテンツフィルタリング(プレビュー)システムは、入力プロンプトと出力完了の両方で、潜在的に有害な特定のカテゴリを検出し、対応を行います。
以下の例は、コンテンツセーフティがトリガーされたチャット完了リクエストの応答を示しています。
Request
POST /chat/completions?api-version=2025-04-01
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
}
],
"temperature": 0,
"top_p": 1,
}
応答
{
"status": 400,
"code": "content_filter",
"message": "The response was filtered",
"param": "messages",
"type": null
}
作業の開始
Azure AI モデル推論APIはAzure AI Services Resourcesで利用可能です。 他のAzure製品と同様に、Azureサブスクリプションでリソースを作成・設定し、Azure AIモデル推論、つまりサービスのインスタンスとして作成・設定できます。 複数のチームが異なる要件を持つ場合に備え、必要に応じてリソースを作成し、それぞれ独立して設定できます。
Azure AI Servicesリソースを作成したら、API呼び出しを始める前にモデルをデプロイしなければなりません。 デフォルトではモデルは利用できないので、どのモデルから始めるかを自分でコントロールできます。 チュートリアル