Mosaic AI Model Serving での外部モデル

重要

この記事のコード例では、パブリック プレビューの MLflow Deployments CRUD API の使用方法を示します。

この記事では、Mosaic AI Model Serving での外部モデルについて説明します。これには、サポートされているモデル プロバイダーと制限事項が含まれます。

外部モデルとは

重要

外部モデルを提供するモデル サービング エンドポイントで Mosaic AI Gateway を設定できるようになりました。 AI Gateway は、これらのモデル サービング エンドポイントに、ガバナンス、監視、および本番環境の準備機能を提供します。 「Mosaic AI Gateway」を参照してください。

外部モデルは、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 の使用方法の手順については、次のガイドをご参照ください。

要件

モデル プロバイダー

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
* gpt-4o-mini
* 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
* gemini-1.0-pro
* gemini-1.5-pro
* gemini-1.5-flash
textembedding-gecko

** モデル プロバイダーでは、微調整された完了モデルとチャット モデルがサポートされます。 微調整されたモデルのクエリを実行するには、external model 構成の name フィールドに、微調整されたモデルの名前を設定します。

† モデル プロバイダーでは、カスタム補完モデルがサポートされています。

Mosaic AI Model Serving エンドポイントで提供されるモデルを使用する

プロバイダーとしての Mosaic AI Model Serving エンドポイントは、llm/v1/completionsllm/v1/chatllm/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 キーを指定する必要があります。

エンドポイントでの AI Gateway の構成

レート制限、使用状況追跡、ガードレールなどの Mosaic AI Gateway 機能を有効にするようにエンドポイントを設定することもできます。

モデル サービング エンドポイントでの AI Gateway の構成」を参照してください。

外部モデル エンドポイントにクエリを実行する

外部モデル エンドポイントを作成すると、ユーザーからのトラフィックを受信できるようになります。

OpenAI クライアント、REST API、または MLflow Deployments SDK を使用して、エンドポイントにスコアリング要求を送信できます。

次の例では、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 エンドポイントで外部モデルと非外部モデルの両方を使うことはできません。

その他のリソース