Mosaic AI Model Serving での外部モデル
重要
この記事のコード例では、パブリック プレビューの MLflow Deployments CRUD API の使用方法を示します。
この記事では、Mosaic AI Model Serving での外部モデルについて説明します。これには、サポートされているモデル プロバイダーと制限事項が含まれます。
外部モデルとは
外部モデルは、Databricks の外部でホストされているサードパーティ モデルです。 Model Serving でサポートされている外部モデルを使用すると、組織内のさまざまな大規模言語モデル (LLM) プロバイダー (OpenAI や Anthropic など) の使用と管理を効率化できます。 プロバイダーとして Mosaic AI Model Serving を使ってカスタム モデルを提供することもでき、これによりそれらのエンドポイントにレート制限が提供されます。 このサポートの一環として、Model Serving では、特定の LLM 関連の要求を処理する統合エンドポイントを提供することで、これらのサービスとの対話を簡略化する高度なインターフェイスが提供されます。
さらに、外部モデルに対する Azure Databricks のサポートにより、一元的な資格情報管理が提供されます。 API キーを 1 つの安全な場所に格納することで、組織はシステム全体で機密性の高い API キーの公開を最小限に抑えることで、セキュリティ体制を強化できます。 また、コード内でこれらのキーを公開したり、エンド ユーザーにキーの安全な管理を要求したりするのを防ぐのにも役立ちます。
MLflow Deployments SDK を使用した外部モデル エンドポイントの作成と、それらのエンドポイントによって提供されるサポート対象モデルへのクエリ実行に関するステップ バイ ステップのガイダンスについては、「チュートリアル: 外部モデル エンドポイントを作成して OpenAI モデルにクエリを実行する」をご参照ください。 Serving UI と REST API の使用方法の手順については、次のガイドをご参照ください。
要件
- モデル プロバイダーの API キーまたは認証フィールド。
- 外部モデルでサポートされているリージョンの Databricks ワークスペース。
モデル プロバイダー
Model Serving の外部モデルは、さまざまなモデル プロバイダーをサポートするように設計されています。 プロバイダーは、OpenAI、Anthropic などの機械学習モデルのソースを表します。 各プロバイダーには、外部モデル エンドポイント構成の external_model
フィールド内にカプセル化された特定の特性と構成があります。
次のプロバイダーがサポートされています。
- openai: OpenAI および Azure OpenAI と Azure OpenAI と AAD の Azure 統合によって提供されるモデルの場合。
- anthropic: Anthropic によって提供されるモデルの場合。
- cohere: Cohere によって提供されるモデルの場合。
- amazon-bedrock: Amazon Bedrock によって提供されるモデルの場合。
- google-cloud-vertex-ai: Google Cloud Vertex AI によって提供されるモデルの場合。
- databricks-model-serving: 互換性のあるスキーマを使う Mosaic AI Model Serving エンドポイントの場合。 「エンドポイントの構成」を参照してください。
ここに一覧表示されていないプロバイダーのサポートを要求する場合は、Databricks アカウント チームにお問い合わせください。
サポートされているモデル
選択したモデルは、API 呼び出しから取得した応答の結果に直接影響します。 そのため、ユース ケースの要件に合ったモデルを選択します。 たとえば、会話型の応答を生成する場合、チャット モデルを選択できます。 逆に、テキストの埋め込みを生成する場合は、埋め込みモデルを選択できます。
以下の表は、サポートされているモデルと対応するエンドポイントの種類のリスト (完全なものではない) を示しています。 以下に一覧表示されているモデルの関連付けは、特定のプロバイダーで使用できるようになったときに、新しくリリースされたモデルの種類のエンドポイントを構成する場合に役立つガイドとして使用できます。 お客様は、該当するモデル ライセンスへのコンプライアンスを遵守する責任を負います。
Note
LLM の急速な開発により、このリストが常に最新であるという保証はありません。
モデル プロバイダー | llm/v1/completions | llm/v1/chat | llm/v1/embeddings |
---|---|---|---|
OpenAI** | * gpt-3.5-turbo-instruct * babbage-002 * davinci-002 |
* gpt-3.5-turbo * gpt-4 * gpt-4o * gpt-4o-2024-05-13 * gpt-4o-mini * gpt-3.5-turbo-0125 * gpt-3.5-turbo-1106 * gpt-4-0125-preview * gpt-4-turbo-preview * gpt-4-1106-preview * gpt-4-vision-preview * gpt-4-1106-vision-preview |
* text-embedding-ada-002 * text-embedding-3-large * text-embedding-3-small |
Azure OpenAI** | * text-davinci-003 * gpt-35-turbo-instruct |
* gpt-35-turbo * gpt-35-turbo-16k * gpt-4 * gpt-4-32k * gpt-4o |
* text-embedding-ada-002 * text-embedding-3-large * text-embedding-3-small |
Anthropic | * claude-1 * claude-1.3-100k * claude-2 * claude-2.1 * claude-2.0 * claude-instant-1.2 |
* claude-3-5-sonnet-20240620 * claude-3-haiku-20240307 * claude-3-opus-20240229 * claude-3-sonnet-20240229 * claude-2.1 * claude-2.0 * claude-instant-1.2 |
|
Cohere** | * command * command-light |
* command-r-plus * command-r * command * command-light-nightly * command-light * command-nightly |
* embed-english-v2.0 * embed-multilingual-v2.0 * embed-english-light-v2.0 * embed-english-v3.0 * embed-english-light-v3.0 * embed-multilingual-v3.0 * embed-multilingual-light-v3.0 |
Mosaic AI Model Serving | Databricks serving endpoint | Databricks serving endpoint | Databricks サービス エンドポイント |
Amazon Bedrock | アントロピック: * claude-instant-v1 * claude-v2 Cohere: * command-text-v14 * command-light-text-v14 AI21 Labs: * j2-grande-instruct * j2-jumbo-instruct * j2-mid * j2-mid-v1 * j2-ultra * j2-ultra-v1 |
アントロピック: * claude-v2 * claude-v2:1 * claude-3-sonnet-20240229-v1:0 * claude-3-5-sonnet-20240620-v1:0 Cohere: * command-r-plus-v1:0 * command-r-v1:0 * command-text-v14 * command-light-text-v14 |
Amazon: * titan-embed-text-v1 * titan-embed-g1-text-02 Cohere: * embed-english-v3 * embed-multilingual-v3 |
AI21 Labs† | * j2-mid * j2-light * j2-ultra |
||
Google Cloud Vertex AI | text-bison | * chat-bison * gemini-pro |
textembedding-gecko |
**
モデル プロバイダーでは、微調整された完了モデルとチャット モデルがサポートされます。 微調整されたモデルのクエリを実行するには、external model
構成の name
フィールドに、微調整されたモデルの名前を設定します。
† モデル プロバイダーでは、カスタム補完モデルがサポートされています。
Mosaic AI Model Serving エンドポイントで提供されるモデルを使用する
プロバイダーとしての Mosaic AI Model Serving エンドポイントは、llm/v1/completions
、llm/v1/chat
、llm/v1/embeddings
の各エンドポイントの種類でサポートされています。 これらのエンドポイントは、必須としてマークされている標準クエリ パラメーターを受け入れる必要があります。一方、他のパラメーターは、Mosaic AI Model Serving エンドポイントでサポートされているかどうかに応じて、無視される場合があります。
標準クエリ パラメーターについては、API リファレンスの POST /serving-endpoints/{name}/invocations を参照してください。
これらのエンドポイントは、次の OpenAI 形式で応答を生成する必要があります。
入力候補タスクの場合:
{
"id": "123", # Not Required
"model": "test_databricks_model",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
チャット タスクの場合:
{
"id": "123", # Not Required
"model": "test_chat_model",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?",
},
"finish_reason": "stop"
},
{
"index": 1,
"message": {
"role": "human",
"content": "\n\nWhat is the weather in San Francisco?",
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
埋め込みタスクの場合:
{
"data": [
{
"embedding": [
0.0023064255,
-0.009327292,
.... # (1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
},
{
"embedding": [
0.0023064255,
-0.009327292,
.... #(1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
}
],
"model": "test_embedding_model",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
エンドポイントの構成
外部モデルを提供してクエリを実行するには、サービス エンドポイントを構成する必要があります。 「外部モデル提供エンドポイントを作成する」を参照してください
外部 Model Serving エンドポイントの場合は、external_model
フィールドとそのパラメーターを、エンドポイント構成の served_entities
セクションに含める必要があります。 Serving エンドポイントで複数の外部モデルを構成する場合は、traffic_config
を指定して、各外部モデルのトラフィック ルーティングの割合を定義する必要があります。
external_model
フィールドには、このエンドポイントからの要求の転送先となるモデルが定義されます。 モデルを指定する場合、要求するモデルがプロバイダーによってサポートされていることが重要です。 たとえば、プロバイダーとしての openai
では text-embedding-ada-002
などのモデルがサポートされますが、他のプロバイダーではサポートされない場合があります。 モデルがプロバイダーによってサポートされていない場合、そのモデルに要求をルーティングしようとすると、Databricks から HTTP 4xx エラーが返されます。
次の表は、external_model
フィールド パラメーターをまとめたものです。 エンドポイントの構成パラメーターについては、POST /api/2.0/serving-endpoints を参照してください。
パラメーター | 説明 |
---|---|
name |
使用するモデルの名前。 たとえば、OpenAI の GPT-3.5-Turbo モデルの場合は gpt-3.5-turbo です。 |
provider |
このモデルのプロバイダーの名前が指定されます。 この文字列値は、サポートされている外部モデル プロバイダーに対応している必要があります。 たとえば、OpenAI の GPT-3.5 モデルの場合は openai です。 |
task |
タスクは、必要な言語モデルの対話の種類に対応します。 サポートされているタスクは、"llm/v1/completions"、"llm/v1/chat"、"llm/v1/embeddings" です。 |
<provider>_config |
モデルに必要な追加の構成の詳細が含まれています。 これには、API ベース URL と API キーの指定が含まれます。 「エンドポイントのプロバイダーを構成する」を参照してください。 |
create_endpoint()
API を使用して外部モデル エンドポイントを作成する例を以下に示します。 この例では、入力候補エンドポイントに送信された要求は、anthropic
によって提供される claude-2
モデルに転送されます。
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
name="anthropic-completions-endpoint",
config={
"served_entities": [
{
"name": "test",
"external_model": {
"name": "claude-2",
"provider": "anthropic",
"task": "llm/v1/completions",
"anthropic_config": {
"anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
}
}
}
]
}
)
エンドポイントに複数の外部モデルを提供する
また、タスクの種類が同じで、name
がモデルごとに一意である限り、1 つの Serving エンドポイントに複数の外部モデルを構成することもできます。 次の例で作成される Serving エンドポイントは、トラフィックの 50% を OpenAI によって提供される gpt-4
にルーティングし、残りの 50% を Anthropic によって提供される claude-3-opus-20240229
にルーティングします。
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
client.create_endpoint(
name="mix-chat-endpoint",
config={
"served_entities": [
{
"name": "served_model_name_1",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}"
}
}
},
{
"name": "served_model_name_2",
"external_model": {
"name": "claude-3-opus-20240229",
"provider": "anthropic",
"task": "llm/v1/chat",
"anthropic_config": {
"anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
}
}
}
],
"traffic_config": {
"routes": [
{"served_model_name": "served_model_name_1", "traffic_percentage": 50},
{"served_model_name": "served_model_name_2", "traffic_percentage": 50}
]
},
}
)
エンドポイントのプロバイダーを構成する
エンドポイントを作成するときは、指定されたモデル プロバイダーに必要な構成を指定する必要があります。 次のセクションでは、各モデル プロバイダーで使用できるエンドポイント構成パラメーターの概要を示します。
Note
Databricks は、各モデル プロバイダー向けに指定された資格情報を暗号化し、安全に格納します。 これらの資格情報は、関連付けられているエンドポイントが削除されると自動的に削除されます。
OpenAI
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
openai_api_key |
OpenAI サービスを使用する OpenAI API キーの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、openai_api_key_plaintext を参照してください。 |
openai_api_key または openai_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
openai_api_key_plaintext |
OpenAI サービスを使用する OpenAI API キー。プレーンテキスト文字列として指定します。 Azure Databricks シークレットを使用してキーを参照する場合は、openai_api_key を参照してください。 |
次のいずれかのフィールドを使用して API キーを指定する必要があります (openai_api_key または openai_api_key_plaintext を指定する必要があります)。 |
|
openai_api_type |
使用する OpenAI API の種類を指定する省略可能なフィールド。 | いいえ | openai |
openai_api_base |
OpenAI API のベース URL。 | いいえ | https://api.openai.com/v1 |
openai_api_version |
OpenAI API バージョンを指定する省略可能なフィールド。 | いいえ | |
openai_organization |
OpenAI で組織を指定する省略可能なフィールド。 | いいえ |
Cohere
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
cohere_api_key |
Cohere API キーの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、cohere_api_key_plaintext を参照してください。 |
cohere_api_key または cohere_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
cohere_api_key_plaintext |
プレーンテキスト文字列として指定される Cohere API キー。 Azure Databricks シークレットを使用してキーを参照する場合は、cohere_api_key を参照してください。 |
cohere_api_key または cohere_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
cohere_api_base |
Cohere サービスのベース URL。 | いいえ |
Anthropic
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
anthropic_api_key |
Anthropic API キーの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、anthropic_api_key_plaintext を参照してください。 |
anthropic_api_key または anthropic_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
anthropic_api_key_plaintext |
プレーンテキスト文字列として指定される Anthropic API キー。 Azure Databricks シークレットを使用してキーを参照する場合は、anthropic_api_key を参照してください。 |
anthropic_api_key または anthropic_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
Azure OpenAI
Azure OpenAI には、直接の OpenAI サービスと比較して異なる機能があります。 概要については、比較に関するドキュメントを参照してください。
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
openai_api_key |
Azure サービスを使用する OpenAI API キーの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、openai_api_key_plaintext を参照してください。 |
openai_api_key または openai_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
openai_api_key_plaintext |
Azure サービスを使用する OpenAI API キー。プレーンテキスト文字列として指定します。 Azure Databricks シークレットを使用してキーを参照する場合は、openai_api_key を参照してください。 |
openai_api_key または openai_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
openai_api_type |
アクセス トークンの検証には azure を使用します。 |
はい | |
openai_api_base |
Azure によって提供される Azure OpenAI API サービスのベース URL。 | はい | |
openai_api_version |
日付で指定された、利用する Azure OpenAI サービスのバージョン。 | はい | |
openai_deployment_name |
Azure OpenAI サービスのデプロイ リソースの名前。 | はい | |
openai_organization |
OpenAI で組織を指定する省略可能なフィールド。 | いいえ |
Microsoft Entra ID で Azure OpenAI を使っている場合は、エンドポイント構成で次のパラメーターを使用します。
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
microsoft_entra_tenant_id |
Microsoft Entra ID 認証のテナント ID。 | はい | |
microsoft_entra_client_id |
Microsoft Entra ID 認証のクライアント ID。 | はい | |
microsoft_entra_client_secret |
Microsoft Entra ID 認証に使用されるクライアント シークレットの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、microsoft_entra_client_secret_plaintext を参照してください。 |
microsoft_entra_client_secret または microsoft_entra_client_secret_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
microsoft_entra_client_secret_plaintext |
Microsoft Entra ID 認証に使用するクライアント シークレット。プレーンテキスト文字列として指定します。 Azure Databricks シークレットを使用してキーを参照する場合は、microsoft_entra_client_secret を参照してください。 |
microsoft_entra_client_secret または microsoft_entra_client_secret_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
openai_api_type |
Microsoft Entra ID を使用した認証には azuread を使用します。 |
はい | |
openai_api_base |
Azure によって提供される Azure OpenAI API サービスのベース URL。 | はい | |
openai_api_version |
日付で指定された、利用する Azure OpenAI サービスのバージョン。 | はい | |
openai_deployment_name |
Azure OpenAI サービスのデプロイ リソースの名前。 | はい | |
openai_organization |
OpenAI で組織を指定する省略可能なフィールド。 | いいえ |
次の例では、Azure OpenAI を使用してエンドポイントを作成する方法を示します。
client.create_endpoint(
name="openai-chat-endpoint",
config={
"served_entities": [{
"external_model": {
"name": "gpt-3.5-turbo",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_type": "azure",
"openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}",
"openai_api_base": "https://my-azure-openai-endpoint.openai.azure.com",
"openai_deployment_name": "my-gpt-35-turbo-deployment",
"openai_api_version": "2023-05-15"
}
}
}]
}
)
Google Cloud Vertex AI
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
private_key |
Google Cloud Vertex AI サービスにアクセスできるサービス アカウントの秘密キーの Azure Databricks 秘密鍵参照。 「サービス アカウント キー を管理するためのベスト プラクティス」参照してください。 API キーを直接貼り付ける場合は、private_key_plaintext を参照してください。 |
private_key または private_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
private_key_plaintext |
Google Cloud Vertex AI サービスにアクセスできるサービス アカウントの秘密キー。プレーンテキスト文字列として指定します。 「サービス アカウント キー を管理するためのベスト プラクティス」参照してください。 Azure Databricks シークレットを使用してキーを参照する場合は、private_key を参照してください。 |
private_key または private_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
region |
これは、Google Cloud Vertex AI サービスのリージョンです。 詳細については、「サポートされるリージョン」を参照してください。 一部のモデルは、特定のリージョンでのみ使用できます。 | はい | |
project_id |
これは、サービス アカウントが関連付けられている Google Cloud プロジェクト ID です。 | はい |
Amazon Bedrock
Amazon Bedrock を外部モデル プロバイダーとして使用するには、お客様は指定された AWS リージョン内で Bedrock が有効になっており、指定された AWS キー ペアが Bedrock サービスとやり取りするのに適切なアクセス許可を持っていることを確認する必要があります。 詳細については、AWS の ID とアクセス管理に関するページをご覧ください。
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
aws_region |
使用する AWS リージョン。 Bedrock をそこで有効にする必要があります。 | はい | |
aws_access_key_id |
Bedrock サービスと対話するためのアクセス許可を持つ AWS アクセス キー ID の Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、aws_access_key_id_plaintext を参照してください。 |
aws_access_key_id または aws_access_key_id_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
aws_access_key_id_plaintext |
Bedrock サービスと対話するためのアクセス許可を持つ AWS アクセス キー ID。プレーンテキスト文字列として指定します。 Azure Databricks シークレットを使用してキーを参照する場合は、aws_access_key_id を参照してください。 |
aws_access_key_id または aws_access_key_id_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
aws_secret_access_key |
アクセス キー ID とペアになっており、Bedrock サービスと対話するためのアクセス許可を持つ AWS シークレット アクセス キーの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、aws_secret_access_key_plaintext を参照してください。 |
aws_secret_access_key または aws_secret_access_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
aws_secret_access_key_plaintext |
アクセス キー ID とペアになっており、Bedrock サービスと対話するためのアクセス許可を持つ AWS シークレット アクセス キー。プレーンテキスト文字列として指定します。 Azure Databricks シークレットを使用してキーを参照する場合は、aws_secret_access_key を参照してください。 |
aws_secret_access_key または aws_secret_access_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
bedrock_provider |
Amazon Bedrock 内で基になるプロバイダー。 サポートされる値 (大文字と小文字を区別しない) には、Anthropic、Cohere、AI21Labs、Amazon などがあります | はい |
次の例では、Amazon Bedrock を使用してエンドポイントを作成する方法を示します。
client.create_endpoint(
name="bedrock-anthropic-completions-endpoint",
config={
"served_entities": [
{
"external_model": {
"name": "claude-v2",
"provider": "amazon-bedrock",
"task": "llm/v1/completions",
"amazon_bedrock_config": {
"aws_region": "<YOUR_AWS_REGION>",
"aws_access_key_id": "{{secrets/my_amazon_bedrock_secret_scope/aws_access_key_id}}",
"aws_secret_access_key": "{{secrets/my_amazon_bedrock_secret_scope/aws_secret_access_key}}",
"bedrock_provider": "anthropic",
},
}
}
]
},
)
AWS のアクセス許可の問題がある場合、Databricks では Amazon Bedrock API を使用して資格情報を直接確認することをお勧めします。
AI21 Labs
構成パラメーター | 説明 | 必要 | Default |
---|---|---|---|
ai21labs_api_key |
AI21 Labs API キーの Azure Databricks 秘密鍵参照。 API キーを直接貼り付ける場合は、ai21labs_api_key_plaintext を参照してください。 |
ai21labs_api_key または ai21labs_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
|
ai21labs_api_key_plaintext |
AI21 Labs API キー。プレーンテキスト文字列として指定します。 Azure Databricks シークレットを使用してキーを参照する場合は、ai21labs_api_key を参照してください。 |
ai21labs_api_key または ai21labs_api_key_plaintext のいずれかのフィールドを使用して API キーを指定する必要があります。 |
外部モデル エンドポイントにクエリを実行する
外部モデル エンドポイントを作成すると、ユーザーからのトラフィックを受信できるようになります。
OpenAI クライアント、REST API、または MLflow Deployments SDK を使用して、エンドポイントにスコアリング要求を送信できます。
- POST /serving-endpoints/{name}/invocations のスコアリング要求の標準クエリ パラメーターを参照してください。
- 基盤モデルと外部モデルに対してクエリを実行する
次の例では、OpenAI クライアントを使って、Anthropic によってホストされている claude-2
入力候補モデルにクエリを実行します。 OpenAI クライアントを使うには、model
フィールドに、クエリ対象のモデルをホストするモデル提供エンドポイントの名前を設定します。
この例では、Anthropic モデル プロバイダーから外部モデルにアクセスするように構成された、以前に作成したエンドポイント anthropic-completions-endpoint
を使用します。 外部モデル エンドポイントを作成する方法を参照してください。
クエリを実行できるその他のモデルとそのプロバイダーについては、「サポートされているモデル」を参照してください。
import os
import openai
from openai import OpenAI
client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)
completion = client.completions.create(
model="anthropic-completions-endpoint",
prompt="what is databricks",
temperature=1.0
)
print(completion)
出力応答の形式は次のようになります。
{
"id": "123", # Not Required
"model": "anthropic-completions-endpoint",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
その他のクエリ パラメーター
エンドポイントのプロバイダーによってサポートされているその他のパラメーターをクエリの一部として渡すことができます。
次に例を示します。
logit_bias
(OpenAI、Cohere でサポートされています)。top_k
(Anthropic、Cohere でサポートされています)。frequency_penalty
(OpenAI、Cohere でサポートされています)。presence_penalty
(OpenAI、Cohere でサポートされています)。stream
(OpenAI、Anthropic、Cohere、Amazon Bedrock for Anthropic でサポートされています)。 これは、チャットと入力候補の要求にのみ使用できます。
制限事項
選択した外部モデルによっては、構成により、データの発生元リージョンの外部でデータが処理される場合があります。 「モデル提供の制限とリージョン」をご参照ください。
1 つの Serving エンドポイントに複数の外部モデルを構成する場合は、すべての外部モデルが同じタスクの種類で、name
がモデルごとに一意である必要があります。 同じ Serving エンドポイントで外部モデルと非外部モデルの両方を使うことはできません。