Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.
Auf dieser Seite wird gezeigt, wie Sie benutzerdefinierte großsprachige Modelle (LLMs) für die Modellbereitstellung mithilfe eines vLLM-Moduls bereitstellen. Verwenden Sie diesen Workflow, um fein abgestimmte Modelle, PEFT-Varianten, multimodale Modelle und andere Foundation-Modelle zu bedienen, die in Foundation Model-APIs (FMAPI) nicht verfügbar sind. Das Start-Notebook am Ende dieser Seite enthält den gesamten ausführbaren Code für die folgenden Schritte.
Wann benutzerdefinierte LLM-Bereitstellungen verwendet werden sollten
Azure Databricks empfiehlt benutzerdefinierte LLM-Dienste, wenn Sie über einen der folgenden Anwendungsfälle verfügen:
- Voll fein abgestimmte Modelle mit benutzerdefinierten Gewichten, die Sie auf Azure Databricks trainiert haben.
- Modelle von Hugging Face, die in FMAPI nicht verfügbar sind.
- Benutzerdefinierte PEFT-Rezepte, die FMAPI nicht unterstützt.
- Spezialisierte Modelle außerhalb des FMAPI-Katalogs, z. B. MedGemma.
- Multimodale Modelle (Vision-Language) wie
Qwen/Qwen2.5-VL-3B-Instruct. - Jedes Modell, das auf ein 1xH100 passt (80 GB GPU-Speicher).
Requirements
Benutzerdefinierte LLM-Bereitstellung befindet sich in Der Betaversion. Arbeitsbereichsadministratoren können dieses Feature über die Vorschauseite aktivieren oder deaktivieren. Siehe Manage Azure Databricks Previews.
Serverlose GPU-Berechnung. Eine A10 GPU ist die empfohlene Entwicklungsumgebung für kleinere Modelle, H100 für größere Modelle.
MLflow 3.12 oder höher. Das Startnotebook ist angeheftet
mlflow==3.12.0. Wenn Sie Ihre eigene Umgebung erstellen, verwenden Sie dieselbe Version.
Schritt 1: Einrichten Ihrer Umgebung
Erstellen Sie ein Notizbuch auf serverlosen GPU-Compute mit einer A10-GPU. Installieren Sie vLLM und deren Abhängigkeiten. Das Starter-Notebook legt eine getestete vLLM-Version fest.
Sie können Abhängigkeiten auch über eine serverlose Umgebung angeben, anstatt %pip install zu verwenden.
Important
Legen Sie Ihr Arbeitsverzeichnis auf lokale Festplatte fest (z. B. mit tempfile.mkdtemp()). Das /Workspace Dateisystem unterstützt keine großen Dateien wie Modellgewichtungen.
Schritt 2: Herunterladen ihres Modells
Laden Sie Modellgewichte von Hugging Face mit snapshot_download. Das Start-Notebook verwendet Qwen/Qwen3-4B als Beispiel, aber Sie können jedes Modell verwenden, das in das Speicherbudget Ihrer ausgewählten GPU passt, einschließlich der folgenden Modelle:
- Multimodale Modelle wie
Qwen/Qwen2.5-VL-3B-Instructfür Vision-Language-Anwendungsfälle. - Größere Modelle, die auf eine 1xH100 passen, wie etwa
openai/gpt-oss-120b.
Wählen Sie eine GPU basierend auf den Speicher- und Leistungsanforderungen Ihres Modells aus.
| Grafikprozessor (GPU) | GPU-Arbeitsspeicher | workload_type |
|---|---|---|
| T4 | 16 GB | GPU_SMALL |
| A100 | 80 GB | GPU_LARGE |
Schritt 3: Lokales Testen des Modells mit vLLM
Testen Sie vor der Bereitstellung das Modell direkt in Ihrem serverlosen GPU-Notizbuch, indem Sie einen lokalen vLLM-Server starten. Mit lokalen Tests können Sie das Modell überprüfen, mit vLLM-Parametern experimentieren und Probleme beheben, bevor Sie einen Dienstendpunkt erstellen.
Wichtige Dinge zu wissen:
- Serverlose GPU-Compute ermöglicht nur Ports 3000-3999 für lokale Tests. Wählen Sie einen Port in diesem Bereich aus; Das Startnotizbuch verwendet 3080.
- Der vLLM-Server stellt unter
/invocationseine OpenAI-kompatible API bereit. - Sie können sowohl normale als auch Streaminganforderungen testen.
- Optimieren Sie Parameter wie
--dtype,--max-model-len, und--gpu-memory-utilizationfür Ihr Modell. - Fügen Sie
--enforce-eagerhinzu, um den Start zu beschleunigen, auf Kosten eines Teils der Inferenzleistung. - Verwenden Sie für größere Modelle eine serverlose GPU-Variante für H100 für lokale Tests.
Wenn Sie mit der Konfiguration zufrieden sind, beenden Sie den lokalen Server, bevor Sie fortfahren.
Schritt 4: Protokollieren des Modells mit einem benutzerdefinierten Einstiegspunkt
Dieser Schritt verbindet Ihr lokales Setup mit Model Serving und verfügt über die folgenden Konfigurationsanforderungen:
- Der Parameter
taskmuss den Wert"llm/v1/chat"haben. - Der Einstiegspunkt muss am Port 8080 beginnen, dem port, den das Model Serving erwartet.
- Der Einstiegspunktbefehl muss das, was Sie in Schritt 3 getestet haben, mit Port 8080 anstelle des lokalen Ports spiegeln.
- Der Einstiegspunkt wird aus dem Ordner "MLflow-Modellartefakte" gestartet, sodass Modellpfade relativ zu diesem Ordner sind.
metadata = {
"task": "llm/v1/chat",
"entrypoint": (
"python -u -m vllm.entrypoints.openai.api_server "
"--model qwen3 --served-model-name qwen "
"--host 0.0.0.0 --port 8080 "
"--dtype float16 --max-model-len 16384 "
"--gpu-memory-utilization 0.85"
),
}
Schritt 5: Registrieren des Modells im Unity-Katalog
Registrieren Sie das Modell mit mlflow.register_model in Unity Catalog. Die Bereitstellung benutzerdefinierter LLMs hängt von Express-Bereitstellungen ab. Verwenden Sie den env_pack="databricks_model_serving" Parameter, um ihn zu aktivieren.
Fügen Sie beispielsweise Folgendes zu Ihrem Notizbuch hinzu:
model_version = mlflow.register_model(model_info.model_uri, UC_MODEL_NAME, env_pack="databricks_model_serving")
Schritt 6: Erstellen eines Dienstendpunkts
Erstellen Sie den Endpunkt über die UI oder programmgesteuert mit dem Azure Databricks SDK. Die wichtigsten Entscheidungen sind Rechentyp, Workload-Größe und das Verhalten bei der Skalierung auf null.
Wählen Sie anhand Ihres Modells und Ihrer Cloud eine workload_type aus:
workload_type |
Grafikprozessor (GPU) | Hinweise |
|---|---|---|
GPU_SMALL |
1x T4 (16 GB) | Kleinste Option. |
GPU_LARGE |
1x A100 (80 GB) | Empfohlen für große LLM-Workloads. |
workload_size (Small, Mediumoder Large) steuert die Anzahl der bereitgestellten Replikate hinter dem Endpunkt. Verwenden Sie Small für Entwicklung und Workloads mit geringem Datenaufkommen.
Das folgende Beispiel zeigt eine typische Konfiguration:
ServedEntityInput(
entity_name="main.<catalog>.<model_name>",
entity_version="<version>",
workload_type=ServingModelWorkloadType.GPU_MEDIUM,
workload_size="Small",
scale_to_zero_enabled=True,
)
Auf-Null-Skalierung und Kapazitätsplanung
Benutzerdefiniertes LLM-Serving in der Beta stellt eine feste Anzahl von Replikaten hinter Ihrem Endpunkt bereit.
Die automatische Skalierung zwischen mehr als null Replikaten wird noch nicht unterstützt, daher müssen Sie größe workload_type und workload_size für ihren Spitzendatenverkehr festlegen. Der Endpunkt stellt Anforderungen, die die Kapazität der bereitgestellten Replikate überschreiten, in die Warteschlange.
Setzen Sie scale_to_zero_enabled=True, damit der Endpunkt bei Inaktivität auf null Replikate herunterskaliert wird und bei der nächsten Anfrage das erste Replikat per Kaltstart gestartet wird.
Warning
LLM-Endpunkte haben lange Kaltstartzeiten. Das Laden von Modellgewichten und das Starten von vLLM dauert in der Regel ein bis mehrere Minuten, je nach Modellgröße und GPU. Verwenden Sie scale_to_zero_enabled=True für Entwicklungs- oder Workloads mit niedriger Priorität, bei denen eine Latenz von mehreren Minuten bei der ersten Anfrage gelegentlich akzeptabel ist. Legen Sie für latenzempfindlichen Produktionsdatenverkehr fest scale_to_zero_enabled=False , damit der Endpunkt immer bereit ist.
Schritt 7: Abfragen Ihres Endpunkts
Nachdem der Endpunkt bereit ist, wird er auf der Seite des Endpunkts automatisch im AI Playground angezeigt. Sie können sie auch programmgesteuert mit dem Databricks SDK, dem OpenAI SDK oder curl abfragen.
Databricks SDK
w.serving_endpoints.query(
name="<endpoint-name>",
messages=[ChatMessage(role=ChatMessageRole.USER, content="Hello")],
)
OpenAI SDK
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=f"{DATABRICKS_HOST}/serving-endpoints",
)
client.chat.completions.create(
model="<endpoint-name>",
messages=[{"role": "user", "content": "Hello"}],
)
cURL
curl -X POST \
-u "token:$DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Hello"}]}' \
https://<workspace-url>/serving-endpoints/<endpoint-name>/invocations
Überwachen Sie Ihren Endpunkt
Die Bereitstellung benutzerdefinierter LLMs verwendet dieselbe Observability-Infrastruktur wie standardmäßige Endpunkte für die benutzerdefinierte Modellbereitstellung, jedoch mit einigen vLLM-spezifischen Erweiterungen, die in den folgenden Abschnitten beschrieben werden.
Liveprotokolle
Die Registerkarte Protokolle auf der Endpunktseite in der Serving-Benutzeroberfläche zeigt stdout und stderr aus Ihrem vLLM-Prozess in Echtzeit an. Sie können auch über die Protokoll-API auf diese Ausgabe zugreifen.
Persistent gespeicherte Protokolle und Metriken
Wenn Telemetrie aktiviert ist, werden protokolle und Metriken für die langfristige Aufbewahrung, SQL-Abfrage und Compliance in Unity Catalog Delta-Tabellen beibehalten. Siehe Benutzerdefinierte Modellbereitstellungsdaten in Unity Catalog beibehalten für vollständige Einrichtungsanweisungen, Anforderungen und Tabellenschemas.
Für benutzerdefinierte LLM-Dienste speziell:
-
Protokolle:
stdoutundstderraus dem vLLM-Prozess werden automatisch erfasst. Es ist kein anwendungsseitiger Protokollierungscode erforderlich. -
Metrics: Azure Databricks verschrottet automatisch den Prometheus
/metrics-Endpunkt des vLLM-Servers und speichert die Metriken zusammen mit Protokollen. Standardmäßig erhalten Sie Latenz, Durchsatz, Tokenanzahl, Warteschlangentiefe und KV-Cache-Auslastung pro Anforderung.
Telemetriedaten abfragen
Während der Betaversion gibt es keine Benutzeroberfläche zum Visualisieren von Protokollen oder Metriken. Abfragen der gespeicherten Daten direkt im Unity-Katalog mithilfe von SQL oder einem Notizbuch. Sehen Sie sich die Metrik- und Protokollschemas an, die in persist custom model serving data to Unity Catalog dokumentiert sind.
Das folgende Notizbuch zeigt, wie Sie die dauerhaften vLLM-Metriken analysieren und visualisieren:
Benutzerdefiniertes LLM-Notizbuch zur Bereitstellung von Metriken
Beispiel-Notebook
Entwickeln und testen Sie das Modell in einem Notebook mit serverloser GPU, protokollieren Sie anschließend dieselbe Konfiguration und stellen Sie sie als Bereitstellungsendpunkt bereit. Das folgende Notebook enthält den vollständigen ausführbaren Ablauf aus diesem Leitfaden.
Benutzerdefiniertes Starter-Notebook für die LLM-Bereitstellung
Einschränkungen
Die folgenden Einschränkungen gelten während der Betaversion.
- Keine automatische Skalierung zwischen Replikaten. Scale-to-Zero wird unterstützt.
- Nur die LLM-Chat-Aufgabe (
llm/v1/chat) wird unterstützt, einschließlich multimodaler Funktionen. - Keine Routenoptimierung.
- Keine Benutzeroberfläche zum Visualisieren von Protokollen oder Metriken. Abfrage-Telemetrie direkt im Unity-Katalog.
Wenden Sie sich für Feedback oder Fragen an Ihr Azure Databricks Kontoteam.