APIs für bedarfsgesteuert bereitgestellten Durchsatz von Basismodellen

Diese Seite zeigt, wie man Modelle mit Foundation Model APIs und On-Demand-Provisioned Throughput bereitstellt.

Was ist bedarfsgesteuert bereitgestellter Durchsatz?

Wenn Sie ein bereitgestelltes Durchsatzmodell für Endpunkte in Azure Databricks erstellen, weisen Sie dedizierte Ableitungskapazität zu, um einen konsistenten Durchsatz für das Foundation-Modell sicherzustellen, das Sie bereitstellen möchten. Modellbereitstellungsendpunkte, die Foundationmodelle bedienen, können in Blöcken von Modelleinheiten bereitgestellt werden. Mit der Anzahl der Modelleinheiten, die Sie zuweisen, können Sie genau den Durchsatz erwerben, der erforderlich ist, um Ihre KI-Produktionsanwendung zuverlässig zu unterstützen.

Bereitgestellter On-Demand-Durchsatz hat keine Mindestvertragslaufzeit. Du zahlst für die zugewiesene Kapazität und kannst sie jederzeit ändern oder entfernen.

Eine Liste der unterstützten Modellarchitekturen für bereitgestellte Durchsatzendpunkte finden Sie unter Unterstützte Foundation-Modelle zur Modellbereitstellung.

Wenn Sie keine dedizierte Kapazität benötigen, empfiehlt Databricks prioritätsbasiertes Pay-per-Token für Foundation Model-APIs.

Anforderungen

Siehe Anforderungen.

Databricks empfiehlt die Verwendung der Foundation-Modelle, die im Unity-Katalog vorinstalliert sind. Sie finden diese Modelle im Katalog system im Schema ai (system.ai).

Hinweis

Wenn Ihre Organisation Foundation-Modell-Unity-Katalogberechtigungen zum Einschränken des Modellzugriffs verwendet, müssen bereitgestellte Durchsatzendpunkte für nicht zulässige Modelle manuell gelöscht werden.

So stellen Sie ein Basismodell bereit:

  1. Navigieren Sie im Katalog-Explorer zu system.ai.
  2. Klicken Sie auf den Namen des Modells, das Sie bereitstellen möchten.
  3. Klicken Sie auf der Modellseite auf die Schaltfläche Dieses Modell bereitstellen.
  4. Die Seite Bereitstellungsendpunkt erstellen wird angezeigt. Siehe Erstellen eines Endpunkts mit bereitgestelltem Durchsatz mithilfe der Benutzeroberfläche.

Hinweis

Um ein Meta Llama Model aus system.ai im Unity Catalog bereitzustellen, müssen Sie die entsprechende Instruct Version auswählen. Basisversionen der Meta Llama-Modelle werden für die Bereitstellung aus system.ai in Unity Catalog nicht unterstützt. Siehe Foundation-Modelle, die auf Databricks gehostet werden, unterstützte Meta-Llama-Modellvarianten.

Erstellen des bereitgestellten Durchsatzendpunkts mithilfe der Benutzeroberfläche

Nachdem sich das protokollierte Modell im Unity-Katalog befindet, richten Sie einen Endpunkt für die bereitgestellte Durchsatzverarbeitung mit den folgenden Schritten ein:

  1. Navigieren Sie in Ihrem Arbeitsbereich zur Benutzeroberfläche für die Bereitstellung.
  2. Wählen Sie Bereitstellungsendpunkt erstellen aus.
  3. Wählen Sie im Feld Entität Ihr Modell aus dem Unity-Katalog aus. Für in Frage kommende Modelle wird auf der Benutzeroberfläche für die bereitgestellte Entität der Bildschirm Bereitgestellter Durchsatz angezeigt.
  4. In der Dropdownliste Nach oben können Sie die maximalen Token pro Sekunde für Ihren Endpunkt konfigurieren.
    1. Endpunkte mit bereitgestelltem Durchsatz werden automatisch skaliert. Sie können Ändern auswählen, um die Mindestanzahl von Token pro Sekunde anzuzeigen, auf die Ihr Endpunkt herunterskalieren kann.

Bereitgestellter Durchsatz

Erstellen Des bereitgestellten Durchsatzendpunkts mithilfe der REST-API

Die REST-API-Anfrage zur Erstellung eines bereitgestellten Durchsatz-Endpunkts hängt davon ab, ob das Foundation-Modell die Kapazität in Durchsatzbändern oder Modelleinheiten misst. Um zu bestimmen, welches Maß auf Ihr Modell angewendet wird, siehe Modelleinheiten im provisionierten Durchsatz.

Wenn Sie Python bevorzugen, können Sie auch einen Endpunkt mithilfe des MLflow Deployment SDKerstellen.

Das folgende Beispiel erstellt einen Endpunkt für ein Fundamentmodell, das Durchsatzbänder verwendet. Für diese Modelle müssen Sie in Ihrer Anfrage die min_provisioned_throughput Felder und max_provisioned_throughput angeben. Informationen zum Identifizieren des geeigneten Bereichs des bereitgestellten Durchsatzes für Ihr Modell finden Sie unter Schrittweises Abrufen des bereitgestellten Durchsatzes.

import requests
import json

# Set the name of the MLflow endpoint
endpoint_name = "prov-throughput-endpoint"

# Name of the registered MLflow model
model_name = "ml.llm-catalog.foundation-model"

# Get the latest version of the MLflow model
model_version = 3

# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"

headers = {"Content-Type": "text/json", "Authorization": f"Bearer {API_TOKEN}"}

optimizable_info = requests.get(
  url=f"{API_ROOT}/api/2.0/serving-endpoints/get-model-optimization-info/{model_name}/{model_version}",
  headers=headers).json()

if 'optimizable' not in optimizable_info or not optimizable_info['optimizable']:
  raise ValueError("Model is not eligible for provisioned throughput")

chunk_size = optimizable_info['throughput_chunk_size']

# Minimum desired provisioned throughput
min_provisioned_throughput = 2 * chunk_size

# Maximum desired provisioned throughput
max_provisioned_throughput = 3 * chunk_size

# Send the POST request to create the serving endpoint
data = {
  "name": endpoint_name,
  "config": {
    "served_entities": [
      {
        "entity_name": model_name,
        "entity_version": model_version,
        "min_provisioned_throughput": min_provisioned_throughput,
        "max_provisioned_throughput": max_provisioned_throughput,
      }
    ]
  },
}

response = requests.post(
  url=f"{API_ROOT}/api/2.0/serving-endpoints", json=data, headers=headers
)

print(json.dumps(response.json(), indent=4))

Das folgende Beispiel erstellt einen Endpunkt für ein Fundamentmodell, das Modelleinheiten verwendet. Für diese Modelle geben Sie das provisioned_model_units Feld in Ihrer Anfrage an und senden die POST-Anfrage an den /api/2.0/serving-endpoints/pt Endpunkt.

import requests
import json

# Set the name of the provisioned throughput endpoint
endpoint_name = "prov-throughput-endpoint"

# Name of the foundation model
model_name = "system.ai.gpt-oss-120b"

# Get the latest version of the foundation model
model_version = 1

# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"

headers = {"Content-Type": "text/json", "Authorization": f"Bearer {API_TOKEN}"}

optimizable_info = requests.get(
  url=f"{API_ROOT}/api/2.0/serving-endpoints/get-model-optimization-info/{model_name}/{model_version}",
  headers=headers).json()

if 'optimizable' not in optimizable_info or not optimizable_info['optimizable']:
  raise ValueError("Model is not eligible for provisioned throughput")

chunk_size = optimizable_info['model_unit_chunk_size']

# Desired provisioned throughput
desired_model_units = 2 * chunk_size

# Send the POST request to create the serving endpoint
data = {
  "name": endpoint_name,
  "config": {
    "served_entities": [
      {
        "entity_name": model_name,
        "entity_version": model_version,
        "provisioned_model_units": desired_model_units,
      }
    ]
  },
}

response = requests.post(
  url=f"{API_ROOT}/api/2.0/serving-endpoints/pt", json=data, headers=headers
)

print(json.dumps(response.json(), indent=4))

Logarithmische Wahrscheinlichkeit für Chatvervollständigungsaufgaben

Für Chatabschlussaufgaben können Sie den logprobs-Parameter verwenden, um die Protokollwahrscheinlichkeit eines Token bereitzustellen, das als Teil des Erstellungsprozesses für große Sprachenmodelle erfasst wird.For chat completion tasks, you can use the logprobs parameter to provide the log probability of a token being sampled as part of the large language model generation process. Sie können logprobs für eine Vielzahl von Szenarien verwenden, einschließlich Klassifizierung, Bewertung der Modellunsicherheit und Ausführen von Auswertungsmetriken. Details zu Parametern finden Sie unter chat completions API .

Schrittweises Abrufen des bereitgestellten Durchsatzes

Der bereitgestellte Durchsatz ist in Schritten von Token pro Sekunde verfügbar, wobei bestimmte Schritten je nach Modell variieren. Um den geeigneten Bereich für Ihre Anforderungen zu identifizieren, empfiehlt Databricks die Verwendung der Modelloptimierungsinformations-API innerhalb der Plattform.

GET api/2.0/serving-endpoints/get-model-optimization-info/{registered_model_name}/{version}

Im Folgenden sehen Sie eine Beispielantwort der API:

{
  "optimizable": true,
  "model_type": "llama",
  "throughput_chunk_size": 1580
}

Einschränkung

  • Die Modellbereitstellung kann aufgrund von GPU-Kapazitätsproblemen fehlschlagen, was zu einem Timeout bei der Erstellung oder Aktualisierung des Endpunkts führt. Wenden Sie sich an Ihr Databricks-Kontoteam, um bei der Lösung zu helfen.