Freigeben über


Externe Modelle in Mosaic AI Model Serving

Wichtig

Die Codebeispiele in diesem Artikel veranschaulichen die Verwendung der öffentliche Vorschau der CRUD-API für MLflow-Bereitstellungen.

In diesem Artikel werden externe Modelle in Mosaic AI Model Serving beschrieben, einschließlich der unterstützten Modellanbieter und Einschränkungen.

Was sind externe Modelle?

Externe Modelle sind Drittanbietermodelle, die außerhalb von Databricks gehostet werden. Mithilfe der Modellbereitstellung können Sie die Verwendung und Verwaltung verschiedener LLM-Anbieter (Large Language Model) wie OpenAI und Anthropic innerhalb einer Organisation mit externen Modellen optimieren. Sie können auch Mosaic AI Model Serving als Anbieter verwenden, um benutzerdefinierte Modelle zu bedienen, die Quotengrenzen für diese Endpunkte bieten. Im Rahmen dieser Unterstützung bietet die Modellbereitstellung eine allgemeine Schnittstelle, die die Interaktion mit diesen Diensten vereinfacht, indem ein einheitlicher Endpunkt zur Behandlung bestimmter LLM-bezogener Anforderungen bereitgestellt wird.

Darüber hinaus bietet die Azure Databricks-Unterstützung für externe Modelle eine zentralisierte Verwaltung von Anmeldeinformationen. Durch das Speichern von API-Schlüsseln an einem sicheren Ort können Organisationen ihren Sicherheitsstatus verbessern, da sie die Gefährdung vertraulicher API-Schlüssel im gesamten System minimieren. Außerdem können Sie verhindern, dass diese Schlüssel innerhalb von Code verfügbar sind oder dass Endbenutzer*innen Schlüssel sicher verwalten müssen.

Im Tutorial: Erstellen externer Modellendpunkte zum Abfragen von OpenAI-Modellen finden Sie Schrittanleitungen zur Erstellung externer Modellendpunkte und zum Abfragen unterstützter Modelle, die von diesen Endpunkten bereitgestellt werden, mithilfe des Bereitstellungs-SDK von MLflow. Anweisungen zur Verwendung der Benutzeroberfläche und der REST-API für die Bereitstellung finden Sie in den folgenden Leitfäden:

Anforderungen

Modellanbieter

Externe Modelle in der Modellbereitstellung wurden entwickelt, um eine Vielzahl von Modellanbietern zu unterstützen. Ein Anbieter stellt die Quelle der Machine Learning-Modelle dar, z. B. OpenAI, Anthropic usw. Jeder Anbieter weist spezifische Merkmale und Konfigurationen auf, die im external_model-Felds der Konfiguration des externen Modellendpunkts festgehalten sind.

Die folgenden Anbieter werden unterstützt:

  • openai: Für Modelle, die von OpenAI und den Azure-Integrationen für Azure OpenAI und Azure OpenAI mit AAD angeboten werden.
  • anthropic: Für Modelle von Anthropic.
  • cohere: Für Modelle von Cohere.
  • amazon-bedrock: Für Modelle, die von Amazon Bedrock angeboten werden.
  • ai21labs: Für Modelle von AI21Labs.
  • google-cloud-vertex-ai: Für Modelle, die von Google Cloud Vertex AI angeboten werden.
  • databricks-model-serving: Für Mosaic AI Model Serving-Endpunkte mit kompatiblen Schemas. Siehe Endpunktkonfiguration.

Wenden Sie sich an Ihr Databricks-Kontoteam, um Support für einen Anbieter anzufordern, der hier nicht aufgeführt ist.

Unterstützte Modelle

Das gewählte Modell wirkt sich direkt auf die Ergebnisse der Antworten aus den API-Aufrufen aus. Wählen Sie daher ein Modell aus, das den Anforderungen Ihres Anwendungsfalls entspricht. Zum Generieren von Unterhaltungsantworten können Sie beispielsweise ein Chatmodell auswählen. Entsprechend können Sie zum Generieren von Einbettungen von Text ein Einbettungsmodell auswählen.

Die folgende Tabelle enthält eine nicht vollständige Liste der unterstützten Modelle und entsprechenden Endpunkttypen. Modellzuordnungen, die unten aufgeführt sind, können als hilfreiche Anleitung beim Konfigurieren eines Endpunkts für alle neu veröffentlichten Modelltypen, sobald sie für einen bestimmten Anbieter verfügbar sind, verwendet werden. Kunden sind dafür verantwortlich, die Einhaltung anwendbarer Modelllizenzen sicherzustellen.

Hinweis

Angesichts der rasanten Entwicklung von LLMs kann nicht garantiert werden, dass diese Liste immer auf dem neuesten Stand ist.

Modellanbieter 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-Bereitstellungsendpunkt Databricks-Bereitstellungsendpunkt Databricks-Bereitstellungsendpunkt
Amazon Bedrock Anthropic:

* 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
Anthropic:

* 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

** Der Modellanbieter unterstützt die optimierten Vervollständigungs- und Chatmodelle. Um ein optimiertes Modell abzufragen, füllen Sie das name-Feld der external model-Konfiguration mit dem Namen Ihres optimierten Modells auf.

† Modellanbieter unterstützt benutzerdefinierte Vervollständigungsmodelle.

Verwenden von Modellen, die auf Mosaic AI Model Serving-Endpunkten bereitgestellt werden

Mosaic AI Model Serving-Endpunkte als Anbieter, wird für die Endpunkttypen llm/v1/completions, llm/v1/chat und llm/v1/embeddings unterstützt. Diese Endpunkte müssen die als erforderlich markierten Standardabfrageparameter akzeptieren, während andere Parameter möglicherweise ignoriert werden, je nachdem, ob der Mosaic AI Model Serving-Endpunkt sie unterstützt.

Weitere Informationen zu Standardabfrageparametern finden Sie unter POST /serving-endpoints/{name}/invocations in der API-Referenz.

Diese Endpunkte müssen Antworten im folgenden OpenAI-Format erzeugen.

Für Abschlussaufgaben:

{
"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
  }
}

Für Chataufgaben:

{
  "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
  }
}

Für Einbettungsaufgaben:

{
  "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
  }
}

Endpunktkonfiguration

Um externe Modelle zu bedienen und abzufragen, müssen Sie einen Bereitstellungsendpunkt konfigurieren. Weitere Informationen finden Sie unter Erstellen eines Bereitstellungsendpunkts für ein externes Modell

Für einen externen Modellbereitstellungsendpunkt müssen Sie das Feld external_model und dessen Parameter im Abschnitt served_entities der Endpunktkonfiguration einschließen. Wenn Sie mehrere externe Modelle in einem Bereitstellungsendpunkt konfigurieren, müssen Sie eine traffic_config angeben, um den Prozentsatz für Datenverkehrsrouting für jedes externe Modell zu definieren.

Das Feld external_model definiert das Modell, an das dieser Endpunkt Anforderungen weiterleitet. Bei der Angabe eines Modells ist es wichtig, dass der Anbieter das angeforderte Modell unterstützt. Beispielsweise unterstützt openai als Anbieter Modelle wie text-embedding-ada-002, aber andere Anbieter möglicherweise nicht. Wenn das Modell vom Anbieter nicht unterstützt wird, gibt Databricks beim Versuch, Anforderungen an dieses Modell weiterzuleiten, einen HTTP 4xx-Fehler zurück.

In der folgenden Tabelle sind die Parameter für das Feld external_model zusammengefasst. Weitere Informationen zu Endpunktkonfigurationsparametern finden Sie unter POST /api/2.0/serving-endpoints.

Parameter Beschreibungen
name Der Name des zu verwendenden Modells. Beispiel : gpt-3.5-turbo für das OpenAI GPT-3.5-Turbo-Modell.
provider Gibt den Namen des Anbieters für dieses Modell an. Dieser Zeichenfolgenwert muss einem unterstützten externen Modellanbieterentsprechen. Beispiel: openai für OpenAI GPT-3.5-Modelle.
task Die Aufgabe entspricht dem Typ der von Ihnen gewünschten Sprachmodellinteraktion. Unterstützte Aufgaben sind „llm/v1/completions”, „llm/v1/chat”, „llm/v1/embeddings”.
<provider>_config Enthält alle zusätzlichen Konfigurationsdetails, die für das Modell erforderlich sind. Diese umfassen die API-Basis-URL und den API-Schlüssel. Siehe Konfigurieren des Anbieters für einen Endpunkt.

Im Folgenden sehen Sie ein Beispiel zum Erstellen eines externen Modellendpunkts mithilfe der create_endpoint()-API. In diesem Beispiel wird eine an den Abschlussendpunkt gesendete Anforderung an das von anthropic bereitgestellte claude-2-Modell weitergeleitet.

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}}"
                    }
                }
            }
        ]
    }
)

Bereitstellen mehrerer externer Modelle an einen Endpunkt

Sie können auch mehrere externe Modelle in einem Bereitstellungsendpunkt konfigurieren, solange alle denselben Aufgabentyp aufweisen und jedes Modell über einen eindeutigen name verfügt. Im folgenden Beispiel wird ein Bereitstellungsendpunkt erstellt, der 50 % des Datenverkehrs an gpt-4 weiterleitet, der von OpenAI bereitgestellt wird, und die verbleibenden 50 % an claude-3-opus-20240229, der von Anthropic bereitgestellt wird.

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}
            ]
        },
    }
)

Konfigurieren des Anbieters für einen Endpunkt

Wenn Sie einen Endpunkt erstellen, müssen Sie die erforderlichen Konfigurationen für den angegebenen Modellanbieter angeben. In den folgenden Abschnitten werden die verfügbaren Endpunktkonfigurationsparameter für jeden Modellanbieter zusammengefasst.

OpenAI

Konfigurationsparameter Beschreibung Erforderlich Standard
openai_api_key Der geheime Schlüsselverweis von Azure Databricks für einen OpenAI-API-Schlüssel mit dem OpenAI-Dienst. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie openai_api_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: openai_api_key oder openai_api_key_plaintext.
openai_api_key_plaintext Der OpenAI-API-Schlüssel mit dem OpenAI-Dienst, der als Klartext-Zeichenfolge bereitgestellt wird. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie openai_api_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: openai_api_key oder openai_api_key_plaintext muss bereitgestellt werden.
openai_api_type Ein optionales Feld, um den Typ der zu verwendenden OpenAI-API anzugeben. Nein
openai_api_base Die Basis-URL für die OpenAI-API. Nein https://api.openai.com/v1
openai_api_version Ein optionales Feld zum Angeben der OpenAI-API-Version. Nein
openai_organization Ein optionales Feld zum Angeben der Organisation in OpenAI. Nein

Cohere

Konfigurationsparameter Beschreibung Erforderlich Standard
cohere_api_key Der geheime Schlüsselverweis von Azure Databricks für einen Cohere-API-Schlüssel. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie cohere_api_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: cohere_api_key oder cohere_api_key_plaintext.
cohere_api_key_plaintext Der Cohere-API-Schlüssel, der als Klartext-Zeichenfolge bereitgestellt wird. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie cohere_api_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: cohere_api_key oder cohere_api_key_plaintext.
cohere_api_base Die Basis-URL für den Cohere-Dienst. No

Anthropic

Konfigurationsparameter Beschreibung Erforderlich Standard
anthropic_api_key Der geheime Schlüsselverweis von Azure Databricks für einen Anthropic API-Schlüssel. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie anthropic_api_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: anthropic_api_key oder anthropic_api_key_plaintext.
anthropic_api_key_plaintext Der Anthropic API-Schlüssel, der als Klartext-Zeichenfolge bereitgestellt wird. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie anthropic_api_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: anthropic_api_key oder anthropic_api_key_plaintext.

Azure OpenAI

Azure OpenAI verfügt im Vergleich zum direkten OpenAI-Service über bestimmte Funktionen. Eine Übersicht finden Sie in der Vergleichsdokumentation.

Konfigurationsparameter Beschreibung Erforderlich Standard
openai_api_key Der geheime Schlüsselverweis von Azure Databricks für einen OpenAI-API-Schlüssel mit dem Azure-Dienst. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie openai_api_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: openai_api_key oder openai_api_key_plaintext.
openai_api_key_plaintext Der OpenAI-API-Schlüssel mit dem Azure-Dienst, der als Klartext-Zeichenfolge bereitgestellt wird. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie openai_api_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: openai_api_key oder openai_api_key_plaintext.
openai_api_type Verwenden Sie azure für die Überprüfung des Zugriffstokens. Ja
openai_api_base Die Basis-URL für den Azure OpenAI-API-Dienst, der von Azure bereitgestellt wird. Ja
openai_api_version Die Version des zu verwendenden Azure OpenAI-Diensts, angegeben nach einem Datum. Ja
openai_deployment_name Der Name der Bereitstellungsressource für den Azure OpenAI-Dienst. Ja
openai_organization Ein optionales Feld zum Angeben der Organisation in OpenAI. No

Wenn Sie Azure OpenAI mit Microsoft Entra ID verwenden, verwenden Sie die folgenden Parameter in Ihrer Endpunktkonfiguration.

Konfigurationsparameter Beschreibung Erforderlich Standard
microsoft_entra_tenant_id Die Mandanten-ID für die Authentifizierung von Microsoft Entra ID Ja
microsoft_entra_client_id Die Client-ID für die Authentifizierung von Microsoft Entra ID Ja
microsoft_entra_client_secret Der Geheimschlüsselverweis von Azure Databricks für einen geheimen Clientschlüssel, der für die Microsoft Entra ID-Authentifizierung verwendet wird. Wenn Sie den geheimen Clientschlüssel lieber direkt einfügen möchten, lesen Sie microsoft_entra_client_secret_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: microsoft_entra_client_secret oder microsoft_entra_client_secret_plaintext.
microsoft_entra_client_secret_plaintext Der geheime Clientschlüssel, der für die Microsoft Entra ID-Authentifizierung verwendet wird, die als Klartext-Zeichenfolge bereitgestellt wird. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie microsoft_entra_client_secret. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: microsoft_entra_client_secret oder microsoft_entra_client_secret_plaintext.
openai_api_type Benutzen Sie azuread für die Authentifizierung mit Microsoft Entra ID. Ja
openai_api_base Die Basis-URL für den Azure OpenAI-API-Dienst, der von Azure bereitgestellt wird. Ja
openai_api_version Die Version des zu verwendenden Azure OpenAI-Diensts, angegeben nach einem Datum. Ja
openai_deployment_name Der Name der Bereitstellungsressource für den Azure OpenAI-Dienst. Ja
openai_organization Ein optionales Feld zum Angeben der Organisation in OpenAI. Nein

Im folgenden Beispiel wird das Erstellen eines Endpunkts mit Azure OpenAI veranschaulicht:

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

Konfigurationsparameter Beschreibung Erforderlich Standard
private_key Der geheime Schlüsselverweis von Azure Databricks für einen privaten Schlüssel für das Dienstkonto, das Zugriff auf den Google Cloud Vertex KI-Dienst hat. Weitere Informationen finden Sie unter Best Practices für die Verwaltung von Dienstkontoschlüsseln. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie private_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: private_key oder private_key_plaintext.
private_key_plaintext Der private Schlüssel für das Dienstkonto, das Zugriff auf den Google Cloud Vertex AI-Dienst hat, der als Klartextgeheimnis bereitgestellt wird. Weitere Informationen finden Sie unter Best Practices für die Verwaltung von Dienstkontoschlüsseln. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie private_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: private_key oder private_key_plaintext.
region Dies ist die Region für den Google Cloud Vertex AI-Dienst. Weitere Informationen finden Sie im Artikel zu den unterstützten Regionen. Einige Modelle sind nur in bestimmten Regionen verfügbar. Ja
project_id Dies ist die Google Cloud-Projekt-ID, der das Dienstkonto zugeordnet ist. Ja

Amazon Bedrock

Um Amazon Bedrock als externen Modellanbieter zu verwenden, müssen Kunden/Kundinnen sicherstellen, dass Bedrock in der angegebenen AWS-Region aktiviert ist und dass das angegebene AWS-Schlüsselpaar über die entsprechenden Berechtigungen für die Interaktion mit Bedrock-Diensten verfügt. Weitere Informationen finden Sie unter AWS Identitäts- und Zugriffsverwaltung.

Konfigurationsparameter Beschreibung Erforderlich Standard
aws_region Die zu verwendende AWS-Region. Dort muss Bedrock aktiviert sein. Ja
aws_access_key_id Der geheime Schlüsselverweis von Azure Databricks für eine AWS-Zugriffsschlüssel-ID mit Berechtigungen für die Interaktion mit Bedrock-Diensten. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie aws_access_key_id. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: aws_access_key_id oder aws_access_key_id_plaintext.
aws_access_key_id_plaintext Eine AWS-Zugriffstasten-ID mit Berechtigungen für die Interaktion mit Bedrock-Diensten, die als Klartext-Zeichenfolge bereitgestellt werden. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie aws_access_key_id. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: aws_access_key_id oder aws_access_key_id_plaintext.
aws_secret_access_key Der geheime Schlüsselverweis von Azure Databricks für einen geheimen AWS-Zugriffsschlüssel, der mit der Zugriffstasten-ID gekoppelt ist, mit Berechtigungen für die Interaktion mit Bedrock-Diensten. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie aws_secret_access_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: aws_secret_access_key oder aws_secret_access_key_plaintext.
aws_secret_access_key_plaintext Ein geheimer AWS-Zugriffsschlüssel, der mit der Zugriffstasten-ID gekoppelt ist, mit Berechtigungen für die Interaktion mit Bedrock-Diensten, die als Klartext-Zeichenfolge bereitgestellt werden. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie aws_secret_access_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: aws_secret_access_key oder aws_secret_access_key_plaintext.
bedrock_provider Der zugrunde liegende Anbieter in Amazon Bedrock. Unterstützte Werte (Groß- und Kleinschreibung beachten) umfassen: Anthropic, Cohere, AI21Labs, Amazon Ja

Im folgenden Beispiel wird veranschaulicht, wie ein Endpunkt mit Amazon Bedrock erstellt wird.

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",
                    },
                }
            }
        ]
    },
)

Wenn AWS-Berechtigungsprobleme auftreten, empfiehlt Databricks, dass Sie die Anmeldeinformationen direkt mit der Amazon Bedrock-API überprüfen.

AI21 Labs

Konfigurationsparameter Beschreibung Erforderlich Standard
ai21labs_api_key Der geheime Schlüsselverweis von Azure Databricks für einen AI21 Labs-API-Schlüssel. Wenn Sie den API-Schlüssel lieber direkt einfügen möchten, lesen Sie ai21labs_api_key_plaintext. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: ai21labs_api_key oder ai21labs_api_key_plaintext.
ai21labs_api_key_plaintext Ein AI21 Labs-API-Schlüssel, der als Klartext-Zeichenfolge bereitgestellt wird. Wenn Sie ihren Schlüssel lieber mit Azure Databricks Secrets referenzieren möchten, lesen Sie ai21labs_api_key. Sie müssen einen API-Schlüssel mithilfe eines der folgenden Felder bereitstellen: ai21labs_api_key oder ai21labs_api_key_plaintext.

Abfragen eines externen Modellendpunkts

Nachdem Sie einen externen Modellendpunkt erstellt haben, ist er bereit, Datenverkehr von Benutzer*innen zu empfangen.

Sie können Bewertungsanforderungen mithilfe des OpenAI-Clients, der REST-API oder des MLflow-Bereitstellungs-SDKs an den Endpunkt senden.

Im folgenden Beispiel wird das von Anthropic gehostete claude-2-Abschlussmodell mithilfe des OpenAI-Clients abgefragt. Um den OpenAI-Client zu verwenden, füllen Sie das model-Feld mit dem Namen des Modellbereitstellungsendpunkts auf, der das Modell hostet, das Sie abfragen möchten.

In diesem Beispiel wird ein zuvor erstellter Endpunkt anthropic-completions-endpoint verwendet, der für den Zugriff auf externe Modelle vom Anthropic-Modellanbieter konfiguriert ist. Erfahren Sie, wie Sie externe Modellendpunkte erstellen.

Unter Unterstützte Modelle finden Sie weitere Modelle, die Sie abfragen können, sowie deren Anbieter.

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)

Erwartetes Ausgabeantwortformat:

{
"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
  }
}

Zusätzliche Abfrageparameter

Sie können im Rahmen Ihrer Abfrage zusätzliche Parameter übergeben, die vom Anbieter des Endpunkts unterstützt werden.

Beispiel:

  • logit_bias (unterstützt von OpenAI, Cohere).
  • top_k (unterstützt von Anthropic, Cohere).
  • frequency_penalty (unterstützt von OpenAI, Cohere).
  • presence_penalty (unterstützt von OpenAI, Cohere).
  • stream (unterstützt von OpenAI, Anthropic, Cohere, Amazon Bedrock für Anthropic). Dies ist nur für Chat- und Vervollständigungsanforderungen verfügbar.

Begrenzungen

Je nach ausgewähltem externen Modell kann ihre Konfiguration dazu führen, dass Ihre Daten außerhalb der Region, aus der Ihre Daten stammen, verarbeitet werden. Weitere Informationen finden Sie unter Grenzwerte und Regionen für die Modellbereitstellung.

Falls Sie mehrere externe Modelle in einem Bereitstellungsendpunkt konfigurieren möchten, müssen alle externen Modelle denselben Aufgabentyp aufweisen und jedes Modell benötigt einen eindeutigen name. Sie können nicht sowohl externe Modelle als auch nicht externe Modelle im selben Bereitstellungsendpunkt haben.

Zusätzliche Ressourcen