Anteckning
Å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.
Den här artikeln beskriver hur du skapar modellserverslutpunkter som hanterar anpassade modeller med databricks-modellservering.
Modellservern innehåller följande alternativ för att skapa slutpunkter:
- Användargränssnittet för servering
- REST-API
- SDK för MLflow-distributioner
Information om hur du skapar slutpunkter som hanterar generativa AI-modeller finns i Skapa grundmodell som betjänar slutpunkter.
Krav
- Din arbetsyta måste finnas i en region som stöds.
- Om du använder anpassade bibliotek eller bibliotek från en privat speglingsserver med din modell kan du läsa Använda anpassade Python-bibliotek med modellservern innan du skapar modellslutpunkten.
- Om du vill skapa slutpunkter med MLflow Deployments SDK måste du installera MLflow-distributionsklienten. Installera den genom att köra:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Åtkomstkontroll
Information om alternativ för åtkomstkontroll för modell som betjänar slutpunkter för slutpunktshantering finns i Hantera behörigheter för en modell som betjänar slutpunkten.
Identiteten som en modell som betjänar slutpunktskörningar under är kopplad till slutpunktens ursprungliga skapare. När slutpunkten har skapats kan den associerade identiteten inte ändras eller uppdateras på slutpunkten. Den här identiteten och dess associerade behörigheter används för att komma åt Unity Catalog-resurser för distributioner. Om identiteten inte har rätt behörighet för att komma åt de nödvändiga Unity Catalog-resurserna måste du ta bort slutpunkten och återskapa den under en användare eller tjänsthuvudnamn som kan komma åt de Unity Catalog-resurserna.
Du kan också lägga till miljövariabler för att lagra autentiseringsuppgifter för modellservering. Se Konfigurera åtkomst till resurser från modellserverslutpunkter
Skapa en slutpunkt
Serveringsgränssnitt
Du kan skapa en slutpunkt för modell som betjänar med användargränssnittet för servering .
Klicka på Servering i sidopanelen för att visa användargränssnittet för servering.
Klicka på Skapa serverdelsslutpunkt.
För modeller som registrerats i arbetsytans modellregister eller modeller i Unity Catalog:
I fältet Namn anger du ett namn för slutpunkten.
- Slutpunktsnamn kan inte använda prefixet
databricks-. Det här prefixet är reserverat för förkonfigurerade Databricks-slutpunkter.
- Slutpunktsnamn kan inte använda prefixet
I avsnittet Serverade entiteter
- Klicka i fältet Entitet för att öppna formuläret Välj hanterad entitet.
- Välj antingen Mina modeller – Unity Catalog eller Mina modeller – Modellregister baserat på var din modell är registrerad. Formuläret uppdateras dynamiskt baserat på ditt val.
- Alla modeller är inte anpassade modeller. Modeller kan vara grundmodeller eller funktioner för funktionsleverans.
- Välj vilken modell och modellversion du vill tillhandahålla.
- Välj procentandelen trafik som ska dirigeras till din betjänade modell.
- Välj vilken storleksberäkning som ska användas. Du kan använda CPU- eller GPU-beräkningar för dina arbetsbelastningar. Mer information om tillgängliga GPU-beräkningar finns i GPU-arbetsbelastningstyper .
- Under Beräkna utskalningväljer du storleken på beräkningsskalningen som motsvarar antalet begäranden som den här hanterade modellen kan bearbeta samtidigt. Det här talet ska vara ungefär lika med QPS x modellkörningstid. För kunddefinierade beräkningsinställningar, se gränser för modellservering.
- Tillgängliga storlekar är Små för 0–4 begäranden, Mellan 8–16 begäranden och Stor för 16–64 begäranden.
- Ange om slutpunkten ska skalas till noll när den inte används. Skala till noll rekommenderas inte för produktionsslutpunkter eftersom kapaciteten inte garanteras när den skalas till noll. När en slutpunkt skalas till noll finns det ytterligare svarstid, även kallad kallstart, när slutpunkten skalar upp igen för att hantera begäranden.
- Under Avancerad konfiguration kan du:
- Byt namn på den betjänade entiteten för att anpassa hur den visas i slutpunkten.
- Lägg till miljövariabler för att ansluta till resurser från slutpunkten eller logga funktionssökningen DataFrame till slutpunktens slutsatsdragningstabell. För att logga funktionssökningen kräver DataFrame MLflow 2.14.0 eller senare.
- (Valfritt) Om du vill lägga till ytterligare betjänade entiteter i slutpunkten klickar du på Lägg till entitet som hanteras och upprepar konfigurationsstegen ovan. Du kan hantera flera modeller eller modellversioner från en enda slutpunkt och styra trafikdelningen mellan dem. Mer information finns i Hantera flera modeller .
I avsnittet Routningsoptimering kan du aktivera routningsoptimering för slutpunkten. Routningsoptimering rekommenderas för slutpunkter med höga krav på QPS och dataflöde. Se Ruttoptimering på serverändpunkter.
I avsnittet AI Gateway kan du välja vilka styrningsfunktioner som ska aktiveras på slutpunkten. Se introduktionen till Mosaic AI Gateway.
Klicka på Skapa. Sidan Serveringsslutpunkter visas med tillståndet Serveringsslutpunkt som visas som Inte redo.
REST-API
Du kan skapa slutpunkter med hjälp av REST-API:et. Se POST /api/2.0/serving-endpoints för slutpunktskonfigurationsparametrar.
I följande exempel skapas en slutpunkt som hanterar den tredje versionen av my-ads-model modell som är registrerad i Unity Catalog-modellregistret. Om du vill ange en modell från Unity Catalog anger du det fullständiga modellnamnet, inklusive den överordnade katalogen och schemat, till exempel catalog.schema.example-model. I det här exemplet används anpassad samtidighet med min_provisioned_concurrency och max_provisioned_concurrency. Samtidighetsvärdena måste vara multiplar av 4.
POST /api/2.0/serving-endpoints
{
"name": "uc-model-endpoint",
"config":
{
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"min_provisioned_concurrency": 4,
"max_provisioned_concurrency": 12,
"scale_to_zero_enabled": false
}
]
}
}
Följande är ett exempelsvar. Slutpunktens config_update tillstånd är NOT_UPDATING och den betjänade modellen är i ett READY tillstånd.
{
"name": "uc-model-endpoint",
"creator": "user@email.com",
"creation_timestamp": 1700089637000,
"last_updated_timestamp": 1700089760000,
"state": {
"ready": "READY",
"config_update": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"min_provisioned_concurrency": 4,
"max_provisioned_concurrency": 12,
"scale_to_zero_enabled": false,
"workload_type": "CPU",
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1700089760000
}
],
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "data science"
}
],
"id": "e3bd3e471d6045d6b75f384279e4b6ab",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
SDK för MLflow-distributioner
MLflow-distributioner tillhandahåller ett API för att skapa, uppdatera och ta bort uppgifter. API:erna för dessa uppgifter accepterar samma parametrar som REST-API:et för att betjäna slutpunkter. Se POST /api/2.0/serving-endpoints för slutpunktskonfigurationsparametrar.
I följande exempel skapas en slutpunkt som hanterar den tredje versionen av my-ads-model modell som är registrerad i Unity Catalog-modellregistret. Du måste ange det fullständiga modellnamnet inklusive överordnad katalog och schema, till exempel catalog.schema.example-model. I det här exemplet används anpassad samtidighet med min_provisioned_concurrency och max_provisioned_concurrency. Samtidighetsvärdena måste vara multiplar av 4.
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="unity-catalog-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"min_provisioned_concurrency": 4,
"max_provisioned_concurrency": 12,
"scale_to_zero_enabled": False
}
]
}
)
Arbetsytaklient
I följande exempel visas hur du skapar en slutpunkt med hjälp av Databricks Workspace Client SDK.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
w = WorkspaceClient()
w.serving_endpoints.create(
name="uc-model-endpoint",
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
name="ads-entity",
entity_name="catalog.schema.my-ads-model",
entity_version="3",
workload_size="Small",
scale_to_zero_enabled=False
)
]
)
)
Du kan även:
- Aktivera slutsatsdragningstabeller för att automatiskt samla in inkommande begäranden och utgående svar till din modell som betjänar slutpunkter.
- Om du har aktiverat inferenstabeller på din slutpunkt kan du logga din funktionssökning DataFrame till inferenstabellen.
GPU-arbetsbelastningstyper
GPU-distributionen är kompatibel med följande paketversioner:
- PyTorch 1.13.0 - 2.0.1
- TensorFlow 2.5.0 - 2.13.0
- MLflow 2.4.0 och senare
I följande exempel visas hur du skapar GPU-slutpunkter med olika metoder.
Serveringsgränssnitt
Om du vill konfigurera slutpunkten för GPU-arbetsbelastningar med användargränssnittet för servering väljer du önskad GPU-typ i listrutan Beräkningstyp när du skapar slutpunkten. Följ samma steg i Skapa en slutpunkt, men välj en GPU-arbetsbelastningstyp i stället för CPU.
REST-API
Om du vill distribuera dina modeller med hjälp av GPU:er inkluderar du fältet workload_type i slutpunktskonfigurationen.
POST /api/2.0/serving-endpoints
{
"name": "gpu-model-endpoint",
"config": {
"served_entities": [{
"entity_name": "catalog.schema.my-gpu-model",
"entity_version": "1",
"workload_type": "GPU_SMALL",
"workload_size": "Small",
"scale_to_zero_enabled": false
}]
}
}
SDK för MLflow-distributioner
I följande exempel visas hur du skapar en GPU-slutpunkt med MLflow Deployments SDK.
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="gpu-model-endpoint",
config={
"served_entities": [{
"entity_name": "catalog.schema.my-gpu-model",
"entity_version": "1",
"workload_type": "GPU_SMALL",
"workload_size": "Small",
"scale_to_zero_enabled": False
}]
}
)
Klient för arbetsyta
I följande exempel visas hur du skapar en GPU-slutpunkt med hjälp av Databricks Workspace Client SDK.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
w = WorkspaceClient()
w.serving_endpoints.create(
name="gpu-model-endpoint",
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name="catalog.schema.my-gpu-model",
entity_version="1",
workload_type="GPU_SMALL",
workload_size="Small",
scale_to_zero_enabled=False
)
]
)
)
I följande tabell sammanfattas de tillgängliga GPU-arbetsbelastningstyper som stöds.
| GPU-arbetsbelastningstyp | GPU-instans | GPU-minne |
|---|---|---|
GPU_SMALL |
1xT4 | 16 GB |
GPU_LARGE |
1xA100 | 80 GB |
GPU_LARGE_2 |
2xA100 | 160 GB |
Ändra en anpassad modellslutpunkt
När du har aktiverat en slutpunkt för en anpassad modell kan du uppdatera beräkningskonfigurationen efter behov. Den här konfigurationen är särskilt användbar om du behöver ytterligare resurser för din modell. Arbetsbelastningens storlek och beräkningskonfiguration spelar en viktig roll i vilka resurser som allokeras för att betjäna din modell.
Anmärkning
Uppdateringar av slutpunktskonfigurationen kan misslyckas. När fel inträffar förblir den befintliga aktiva konfigurationen effektiv som om uppdateringen inte inträffade.
Kontrollera att uppdateringen har tillämpats genom att granska statusen för slutpunkten.
Tills den nya konfigurationen är klar fortsätter den gamla konfigurationen att betjäna förutsägelsetrafik. Det pågår en uppdatering, men det går inte att göra någon annan uppdatering. Du kan dock avbryta en pågående uppdatering från användargränssnittet för servering.
Serveringsgränssnitt
När du har aktiverat en modellslutpunkt väljer du Redigera slutpunkt för att ändra beräkningskonfigurationen för slutpunkten.
Du kan ändra de flesta aspekter av slutpunktskonfigurationen, förutom slutpunktsnamnet och vissa oföränderliga egenskaper.
Du kan avbryta en pågående konfigurationsuppdatering genom att välja Avbryt uppdatering på slutpunktens informationssida.
REST-API
Följande är ett exempel på en slutpunktskonfigurationsuppdatering med hjälp av REST-API:et. Se PUT /api/2.0/serving-endpoints/{name}/config.
PUT /api/2.0/serving-endpoints/{name}/config
{
"name": "unity-catalog-model-endpoint",
"config":
{
"served_entities": [
{
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "5",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":
{
"routes": [
{
"served_model_name": "my-ads-model-5",
"traffic_percentage": 100
}
]
}
}
}
SDK för MLflow-distributioner
SDK:n för MLflow-distributioner använder samma parametrar som REST-API:et, se PUT /api/2.0/serving-endpoints/{name}/config för information om begäran och svarsschema.
Följande kodexempel använder en modell från Unity Catalog-modellregistret:
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name=f"{endpointname}",
config={
"served_entities": [
{
"entity_name": f"{catalog}.{schema}.{model_name}",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": True
}
],
"traffic_config": {
"routes": [
{
"served_model_name": f"{model_name}-1",
"traffic_percentage": 100
}
]
}
}
)
Bedömning av en modellslutpunkt
Skicka begäranden till den modell som betjänar slutpunkten för att bedöma din modell.
Ytterligare resurser
- Hantera modell som betjänar slutpunkter.
- Externa modeller i Mosaic AI Model Serving.
- Om du föredrar att använda Python kan du använda Databricks realtidsservering av Python SDK.
Notebook-exempel
Följande notebook-filer innehåller olika Databricks-registrerade modeller som du kan använda för att komma igång med modellserverslutpunkter. Ytterligare exempel finns i Självstudie: Distribuera och utföra en förfrågan på en anpassad modell.
Modellexemplen kan importeras till arbetsytan genom att följa anvisningarna i Importera en notebook-fil. När du har valt och skapat en modell från ett av exemplen registrera den i Unity Catalogoch följ sedan arbetsflödet för användargränssnitt steg för modellservering.