Azure AI モデル推論エンドポイントを使用する
Azure AI サービスの Azure AI 推論サービスを使用すると、お客様が、1 つのエンドポイントと資格情報を使用して、フラグシップ モデル プロバイダーから最も強力なモデルを実行できるようになります。 つまり、1 行のコードも変更することなく、モデルを切り替えてお使いのアプリケーションから実行できます。
この記事では、サービス内でモデルを編成する方法と、推論エンドポイントを使用してそれらを呼び出す方法について説明します。
デプロイ
Azure AI モデル推論サービスでは、デプロイの概念を使用してモデルを使用できるようになります。 デプロイでは、特定の構成でモデルに名前を付けることができます。 その後、要求でその名前を示すことで、このようなモデル構成を呼び出すことができます。
デプロイでは以下がキャプチャされます。
- モデル名
- モデル バージョン
- プロビジョニング/容量の種類1
- コンテンツ フィルタリングの構成1
- レート制限の構成1
1 構成は、選択したモデルによって異なる場合があります。
Azure AI サービス リソースには必要な数のモデル デプロイを含めることができます。また、それらのモデルに対して推論が実行されない限り、コストは発生しません。 デプロイは Azure リソースであるため、Azure ポリシーの対象となります。
デプロイの作成方法の詳細については、モデル デプロイの追加と構成に関する記事を参照してください。
Azure AI 推論エンドポイント
Azure AI 推論エンドポイントを使用すると、お客様が、同じ認証とスキーマによる 1 つのエンドポイントを使用して、リソースにデプロイされたモデルの推論を生成できるようになります。 このエンドポイントは、Azure AI モデル推論サービスのすべてのモデルでサポートされている Azure AI モデル推論 API に従います。
エンドポイントの URL と資格情報は、[概要] セクションで確認できます。 エンドポイントには通常、https://<resource-name>.services.ai.azure.com/models
の形式が含まれます。
以下のように Azure AI 推論 SDK を使用してエンドポイントに接続できます。
pip のように、パッケージ マネージャーを使用してパッケージ azure-ai-inference
をインストールします。
pip install azure-ai-inference>=1.0.0b5
警告
Azure AI サービス リソースには、Python のバージョン azure-ai-inference>=1.0.0b5
が必要です。
その後、パッケージを使用してモデルを使用できます。 次の例では、チャット入力候補を使用してクライアントを作成する方法を示します。
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
サンプルを確認し、API リファレンス ドキュメントを参照して、作業を開始してください。
その他のコード例とリソースについては、「サポートされている言語と SDK」を参照してください。
ルーティング
推論エンドポイントは、要求の内部の name
パラメーターをデプロイの名前と照合することで、要求を特定のデプロイにルーティングします。 つまり、"デプロイは、特定の構成下で特定のモデルのエイリアスとして機能する" ということです。 この柔軟性により、特定のモデルをサービスで複数回デプロイできますが、必要に応じて異なる構成でデプロイできます。
たとえば、Mistral-large
という名前のデプロイを作成した場合、そのようなデプロイを次のようにして呼び出すことができます。
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="Explain Riemann's conjecture in 1 paragraph"),
],
model="mistral-large"
)
print(response.choices[0].message.content)
ヒント
デプロイのルーティングでは、大文字と小文字は区別されません。
サポートされている言語と SDK
Azure AI モデル推論サービスにデプロイされているすべてのモデルが、Azure AI モデル推論 API とそれに関連する SDK ファミリをサポートします。これは、次の言語で利用できます。
Language | ドキュメント | パッケージ | 例 |
---|---|---|---|
C# | リファレンス | azure-ai-inference (NuGet) | C# のサンプル |
Java | リファレンス | azure-ai-inference (Maven) | Java のサンプル |
JavaScript | リファレンス | @azure/ai-inference (npm) | JavaScript のサンプル |
Python | リファレンス | azure-ai-inference (PyPi) | Python のサンプル |
Azure OpenAI 推論エンドポイント
Azure OpenAI モデルでは、Azure OpenAI API もサポートされています。 この API は、OpenAI モデルのすべての機能を公開し、アシスタント、スレッド、ファイル、バッチ推論などの追加機能をサポートします。
OpenAI モデル デプロイにはそれぞれ、Azure OpenAI 推論エンドポイントの下に、そのようなデプロイに関連付けられた独自の URL があります。 ただし、同じ認証メカニズムを使用して実行できます。 通常、URLは https://<resource-name>.openai.azure.com/openai/deployments/<model-deployment-name>
という形式になります。 詳細については、Azure OpenAI API のリファレンス ページを参照してください
各デプロイには、Azure OpenAI のベース URL とルート /deployments/<model-deployment-name>
を連結した URL があります。
重要
各 URL はそれぞれのモデル デプロイ専用であるため、Azure OpenAI エンドポイントのルーティング メカニズムはありません。
サポートされている言語と SDK
Azure OpenAI エンドポイントは、OpenAI SDK (AzureOpenAI
クラス) および Azure OpenAI SDK でサポートされています。これは次の複数の言語で利用できます。
Language | ソース コード | Package | 例 |
---|---|---|---|
C# | ソース コード | Azure.AI.OpenAI (NuGet) | C# のサンプル |
Go | ソース コード | azopenai (Go) | Go のサンプル |
Java | ソース コード | azure-ai-openai (Maven) | Java のサンプル |
JavaScript | ソース コード | @azure/openai (npm) | JavaScript のサンプル |
Python | ソース コード | openai (PyPi) | Python のサンプル |