Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
Den här sidan visar hur du kan drifta din egen LLM på en Model Serving GPU-endpoint. Varje modell som vLLM kör blir en produktionsändpunkt med ett OpenAI-kompatibelt API. Så här fungerar det:
- Du kör inferensservern, till exempel vLLM, och väljer dess version och inställningar.
- Du testar servern i en serverless GPU notebook. En felaktig flagga eller ett minnesbristfel dyker upp inom sekunder istället för efter en utplacering.
- Du driftsätter samma kommando och miljö som du byggt och vet fungerar till en produktionstjänst-endpoint.
Quickstart
Importera följande notebook till din arbetsyta och klicka på Kör allt på AI Runtime med ett A10-grafikkort. På cirka 15 minuter har du en Qwen3.5-4B-endpoint som svarar på OpenAI-kompatibla chattförfrågningar.
Kör Qwen3.5-4B med vLLM
När du ska använda anpassad LLM-servering
Använd anpassad LLM-drift i följande fall:
- Du finjusterade en LLM på AI Runtime och vill driftsätta den. Se avsnittet nedan för ett exempel.
- Du vill leverera en öppen modell som Foundation Model API:er (FMAPI) inte stödjer, som en ny LLM, en tal-till-text-modell eller en embedding-modell.
- Du vill ändra körtiden eller arkitekturen för en LLM och behöver kontroll över körtiden och miljön.
Använd inte anpassad LLM-servering i följande fall:
- FMAPI levererar modellen du behöver, oförändrad. FMAPI är enklare att använda och mycket optimerad.
- Modellen passar inte på ett enda grafikkort med cirka 80 GB minne. Till exempel passar Qwen3.8-27B och gpt-oss-120b, men Kimi K3 och GLM 5.3 gör det inte.
- Du behöver genomströmning på toppnivå eller pris per token utan att justera. Prestandan matchar open-source vLLM på samma GPU.
Requirements
Anpassad LLM-servering har följande krav:
- Din arbetsyta måste ha serverless GPU-beräkning.
- Du måste registrera modellen från en serverlös GPU-notebook. En modell som har loggats från en CPU-miljö paketerar CPU-beroenden, och GPU-ändpunkten startar inte.
- Du måste ha behörighet att skapa modeller i ett Unity Catalog-schema.
- Du måste registrera modellen hos
env_pack="databricks_model_serving". Anpassad LLM-servering byggs på express-driftsättningar, som paketerar notebookens miljö med modellen. - Du måste använda MLflow 3.12 eller högre och
databricks-sdk0.102.0 eller högre. AI v6-miljön inkluderar båda.
startanteckningsböcker
Varje notebook tar en modell från Hugging Face till en endpoint som anropas, som quickstart. Kör en som den är, eller börja från en för att driftsätta din egen modell.
| Modell | Task | Miljö | Notebook GPU | Endpoint GPU |
|---|---|---|---|---|
| Qwen3.5-4B | Chatt | AI v6 eller Standard v6 | A10 | A10G (AWS), A100 (Azure) |
| Qwen3.8-27B | Chatta med verktygsanrop | AI v6 | H100 | H100 (AWS), A100 (Azure) |
| Gemma 4 26B-A4B | Chatta med verktygsanrop | AI v6 | H100 | H100 (AWS), A100 (Azure) |
| Muse Glimmer 30B | Chatt | Standard v6 | H100 | H100 (AWS), A100 (Azure) |
| Whisper large-v3-turbo | Tal till text | AI v6 | A10 | A10G (AWS), A100 (Azure) |
| Qwen3-Embedding-0.6B | Embeddings | AI v6 | A10 | A10G (AWS), A100 (Azure) |
AI v6 och Standard v6 är AI-miljöer för runtime. AI v6 levereras med vLLM, PyTorch, Transformers och andra vanliga maskininlärningspaket förinstallerade och redo att användas. Se AI v6-paketlistan. En Standard v6-notebook installerar vLLM själv, så du väljer vilken version av vLLM som ska användas. Använd en Standard v6-notebook när din modell behöver en nyare vLLM eller transformers än vad AI v6 har, som med Muse Glimmer.
Kör din egen modell
För att använda en annan modell, välj startnotebooken med samma uppgift och den GPU som din modell behöver. Byt MODEL_REPO_ID och flaggorna i vllm_command, kör sedan anteckningsboken. Varje notebook kör följande steg:
- Ladda ner modellvikterna från Hugging Face, eller hämta dem från en träningscheckpunkt.
- Starta vLLM i anteckningsboken och fråga den.
- Logga modellen med vLLM-kommandot som dess ingångspunkt och registrera den i Unity Catalog som en express-driftsättning.
- Skapa en endpoint för servering som startar samma kommando.
- Fråga ändpunkten med OpenAI-klienten, Databricks SDK eller SQL
ai_query.
I följande exempel lagrar modellen metadata uppgiften och ingångspunkten:
import mlflow
from mlflow.pyfunc.model import ChatCompletionResponse, ChatModel
# The endpoint runs the entrypoint and never calls predict, but MLflow needs a model class to log.
class Placeholder(ChatModel):
def predict(self, context, messages, params):
return ChatCompletionResponse.from_dict({"choices": []})
model_info = mlflow.pyfunc.log_model(
name="my-model",
python_model=Placeholder(),
artifacts={"model_dir": "my-model"}, # the weights folder, which --model names
metadata={
"task": "llm/v1/chat",
"entrypoint": (
"python -u -m vllm.entrypoints.openai.api_server "
"--model my-model --served-model-name my-model "
"--host 0.0.0.0 --port 8080 --max-model-len 16384"
),
},
)
mlflow.register_model(model_info.model_uri, "<catalog>.<schema>.my_model", env_pack="databricks_model_serving")
Driftsätt en finjusterad modell
Finjustera en modell i AI Runtime och driftsätt den från samma notebook. För ett exempel, se Supervised fine-tuning (Full) and serving of Qwen3.5-0.8B. Handledningen finjusterar Qwen3.5-0.8B på en enda H100, jämför svar före och efter träning och driftsätter den finjusterade modellen.
Uppgifter som stöds
Elementet task i modellens metadata anger vilket API endpointen betjänar. Din server måste exponera det OpenAI-kompatibla API:et för den uppgiften. Andra uppgifter, såsom llm/v1/completions, stöds inte. Följande tabell listar de stödda uppgifterna.
task |
Modelltyp | Fråga med hjälp av |
|---|---|---|
llm/v1/chat |
chattmodeller, inklusive visions- och språkmodeller | chat.completions |
llm/v1/embeddings |
Inbäddningsmodeller | embeddings |
llm/v1/audio/transcriptions |
Tal till text-modeller | audio.transcriptions |
llm/v1/audio/translations |
Översättningsmodeller för tal till engelska | audio.translations |
Välj ett grafikkort
Azure Databricks rekommenderar att utveckla på samma GPU som du kör på, så de inställningar du testar är de inställningar du distribuerar. Följande tabell listar GPU:erna för anpassad LLM-servering.
workload_type |
GPU (grafikprocessor) | Notes |
|---|---|---|
GPU_SMALL |
1 x T4 (16 GB) | Modeller med upp till cirka 5 miljarder parametrar. |
GPU_LARGE |
1x A100 (80 GB) | Stora modeller. Allmänt tillgänglig. |
GPU_LARGE_RTX |
1x RTX PRO 6000 (96 GB) | Mer minne och hastighet än A100. Tillgänglig i southeastasia och westus2. |
Vanliga problem
Följande problem är de vanligaste när du byter bärbar dator:
- Nedladdningen misslyckas i
/Workspace, vilket inte accepterar filer med flera GB. Ladda ner modellvikterna till lokal disk, precis som startanteckningsböckerna gör. - Den lokala servern startar inte. Serverlösa GPU-notebooks tillåter bara portar från 3000 till 3999, så testa på någon av dessa portar. Endast entrypoint använder port 8080, och den måste annars matcha kommandot du testade.
- Ändpunkten kan inte hitta vikterna. Instegspunkten körs i modellens artefaktmapp, så
--modelmåste ange viktmappen du loggade. - En embeddingmodell tillhandahåller inte embeddingar. Starta vLLM med
--runner pooling. -
Registreringen ger
TimeoutError('Timed out after 0:05:00')vid uppladdning avmodel_version.tarellermodel_environment.tar. Uppgradera tilldatabricks-sdk0.102.0 eller högre och registrera modellen igen.
Skapa en slutpunkt
Skapa endpointen från Serving UI eller med Databricks SDK, som startnotebooks gör.
workload_type väljer GPU:n, och workload_size (Small, Medium, eller Large) sätter antalet repliker.
ServedEntityInput(
entity_name="<catalog>.<schema>.<model>",
entity_version="<version>",
workload_type=ServingModelWorkloadType.GPU_MEDIUM,
workload_size="Small",
scale_to_zero_enabled=False,
)
Scale-to-zero och kapacitet
För närvarande skalar anpassade LLM-endpoints inte automatiskt, så dimensionera workload_size för din topptrafik.
Med scale-to-zero stoppas alla repliker för en inaktiv endpoint. Nästa förfrågan dröjer en till flera minuter medan vLLM laddar modellen igen och alla repliker startar. Azure Databricks rekommenderar att man stänger av skal-till-noll för produktionstrafik.
Varning
Uppskalningskapaciteten är inte garanterad. När Azure Databricks behöver skaffa ett nytt GPU för din endpoint, till exempel vid skapande, vid en workload_size ökning eller när en endpoint vaknar från noll, kan förfrågan sluta svara om molnleverantören inte har GPU-kapacitet i din region. Detta gäller för alla GPU-typer. Databricks minimerar detta med varma pooler och förreservation, som håller GPU-kapaciteten tillgänglig och redo.
Ställ en fråga till din ändpunkt
En färdig chatt-endpoint visas i AI Playground. Följande exempel gör anrop till en endpoint med Databricks SDK, OpenAI-klienten och REST.
Databricks SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole
w = WorkspaceClient()
w.serving_endpoints.query(
name="<endpoint-name>",
messages=[ChatMessage(role=ChatMessageRole.USER, content="Hello")],
)
OpenAI-klient
from openai import OpenAI
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"}])
client.embeddings.create(model="<endpoint-name>", input=["The quick brown fox jumps over the lazy dog."])
with open("speech.flac", "rb") as audio:
client.audio.transcriptions.create(model="<endpoint-name>", file=audio)
REST: chatt
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
REST: inbäddningar
curl -X POST \
-u "token:$DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"input":["The quick brown fox jumps over the lazy dog."]}' \
https://<workspace-url>/serving-endpoints/<endpoint-name>/invocations
Vissa inbäddningsmodeller förväntar sig ett prefix på varje indata, såsom search_query: eller search_document:. Kolla modellkortet.
Övervaka slutpunkten
Slutpunktens flik Loggar visar din servers stdout och stderr i realtid.
logs API returnerar samma utdata.
Azure Databricks vidarebefordrar din vLLM-servers metrics och visar dem på endpointens Metrics-flik:
- Latens: tid till första token, tid per utgångstoken, förfrågningslatens och kötid.
- Belastning: förfrågningar körs och väntar.
- KV-cache: användning och träfffrekvens.
- Genomströmning: prompt- och genereringstokens per sekund.
Exportmetrics API returnerar samma mätvärden i Prometheus-format, så du kan skrapa dem in i Prometheus eller Datadog.
Med telemetri aktiverat sparar Azure Databricks också serverloggarna och vLLM Prometheus-metrikerna i Unity Catalog-tabeller, så att du kan fråga dem under längre perioder. Se Persistera anpassad modellserveringsdata till Unity Catalog.
Pricing
Du betalar per GPU-instanstimme, samma som för annan GPU-anpassad modelldrift. Se Model Serving-prissättning.
Begränsningar och regiontillgänglighet
Du registrerar en anpassad LLM från AI Runtime, så anpassad LLM-servering finns tillgänglig i samma regioner som serverless GPU-beräkning. Det är amerikanska regioner på AWS och Azure. GCP stöds inte.
Följande funktioner kommer snart:
- LoRA-adapter.
- Tjänst över flera regioner.
- Logga modeller utanför AI Runtime, till exempel från Databricks Runtime eller CPU-serverlös.
Följande funktioner stöds inte:
- KV-cachemedveten routning.
- Ruttoptimering.