Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u eindpunten voor het leveren van modellen beheert met behulp van de Service-gebruikersinterface en REST API. Zie Service-eindpunten in de REST API-verwijzing.
Gebruik een van de volgende opties om modelserve-eindpunten te maken:
de status van het modeleindpunt ophalen
U kunt de status van een eindpunt controleren met behulp van de Service-gebruikersinterface of programmatisch met behulp van de REST API, Databricks Workspace Client of MLflow Deployments SDK.
Eindpuntstatussen kunnen Readyzijn, Ready (Update failed), Not ready (Updating), of Not ready (Update failed)Not ready (Stopped). Gereedheid verwijst naar of een eindpunt al dan niet kan worden opgevraagd. De update is mislukt en geeft aan dat de meest recente wijziging aan het eindpunt niet succesvol was. Gestopt betekent dat het eindpunt is gestopt.
UI (Gebruikersinterface)
De statusindicator van het operationele eindpunt boven aan de detailpagina:
REST-API
GET /api/2.0/serving-endpoints/{name}
In het volgende voorbeeldantwoord is het state.ready veld 'GEREED', wat betekent dat het eindpunt gereed is voor het ontvangen van verkeer. Het state.update_state veld wordt NOT_UPDATING en pending_config wordt niet meer geretourneerd omdat de update is voltooid.
{
"name": "unity-model-endpoint",
"creator": "customer@example.com",
"creation_timestamp": 1666829055000,
"last_updated_timestamp": 1666829055000,
"state": {
"ready": "READY",
"update_state": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "my-ads-model",
"entity_name": "myCatalog.mySchema.my-ads-model",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": false,
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "customer@example.com",
"creation_timestamp": 1666829055000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"permission_level": "CAN_MANAGE"
}
Databricks Workspace Client
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
endpoint = w.serving_endpoints.get(name="my-endpoint")
print(f"Endpoint state: {endpoint.state.ready}")
print(f"Update state: {endpoint.state.config_update}")
MLflow Deployments SDK
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.get_endpoint(endpoint="my-endpoint")
print(f"Endpoint state: {endpoint['state']}")
print(f"Endpoint config: {endpoint['config']}")
Een model-serving-eindpunt stoppen
U kunt een modelservice-eindpunt tijdelijk stopzetten en later weer starten. Wanneer een eindpunt is gestopt:
- De middelen die hiervoor beschikbaar zijn gesteld, worden uitgeschakeld.
- Het eindpunt kan geen query's uitvoeren totdat het opnieuw is gestart.
- Alleen eindpunten die aangepaste modellen dienen en waarvoor geen updates worden uitgevoerd, kunnen worden gestopt.
- Gestopte eindpunten tellen niet mee voor het resourcequotum.
- Query's die naar een gestopt eindpunt worden verzonden, retourneren een 400-fout.
Een eindpunt stoppen
UI (Gebruikersinterface)
Klik op Stoppen in de rechterbovenhoek.
REST-API
POST /api/2.0/serving-endpoints/{name}/config:stop
Een eindpunt starten
Als u een eindpunt start, wordt een nieuwe configuratieversie gemaakt met dezelfde eigenschappen als de bestaande gestopte configuratie.
Wanneer u klaar bent om een gestopt model voor eindpunt te starten:
UI (Gebruikersinterface)
Klik op Start in de rechterbovenhoek.
REST-API
POST /api/2.0/serving-endpoints/{name}/config:start
Een modelserve-eindpunt verwijderen
Als u een eindpunt verwijdert, wordt het gebruik uitgeschakeld en worden alle gegevens verwijderd die aan het eindpunt zijn gekoppeld. U kunt het verwijderen niet ongedaan maken.
UI (Gebruikersinterface)
Klik op het drie-puntjesmenu bovenaan en selecteer Verwijderen.
REST-API
DELETE /api/2.0/serving-endpoints/{name}
MLflow Deployments SDK
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
client.delete_endpoint(endpoint="chat")
Fouten opsporen in een model dat eindpunt biedt
Er zijn twee typen logboeken beschikbaar om problemen met eindpunten op te sporen:
- Modelservercontainer-bouwlogboeken: worden gegenereerd tijdens het initialiseren van het eindpunt wanneer de container wordt aangemaakt. Deze logboeken leggen de installatiefase vast, waaronder het downloaden van het model, het installeren van afhankelijkheden en het configureren van de runtime-omgeving. Gebruik deze logboeken om fouten op te sporen waarom een eindpunt niet kon worden gestart of vastgelopen tijdens de implementatie.
- Modelserverlogboeken: gegenereerd tijdens runtime wanneer het eindpunt actief voorspellingen levert. In deze logboeken worden binnenkomende aanvragen, uitvoering van modeldeductie, runtimefouten en logboekregistratie op toepassingsniveau vastgelegd vanuit uw modelcode. Gebruik deze logboeken om problemen met voorspellingen op te sporen of queryfouten te onderzoeken.
Beide logboektypen zijn ook toegankelijk vanuit de gebruikersinterface van Eindpunten op het tabblad Logboeken .
Buildlogbestanden voor containers ophalen
Voor de build logs van een bediend model kunt u de volgende aanvraag gebruiken. Zie de handleiding voor foutopsporing voor Model serving voor meer informatie.
GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/build-logs
{
"config_version": 1 // optional
}
Modelserverlogboeken ophalen
Voor de modelserverlogboeken voor een servicemodel kunt u de volgende aanvraag gebruiken:
GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/logs
{
"config_version": 1 // optional
}
Machtigingen beheren op een bedieningseindpunt van een model
U moet ten minste de machtiging CAN MANAGE voor een dienend eindpunt hebben om machtigingen te wijzigen. Zie Toegangsbeheerlijsten voor eindpunten voor meer informatie over de machtigingsniveaus.
Haal de lijst met machtigingen op het server-eindpunt op.
UI (Gebruikersinterface)
Klik op de knop Machtigingen rechtsboven in de gebruikersinterface.
Databricks-CLI
databricks permissions get serving-endpoints <endpoint-id>
Geef gebruiker jsmith@example.com de toestemming CAN QUERY op het endpoint.
databricks permissions update serving-endpoints <endpoint-id> --json '{
"access_control_list": [
{
"user_name": "jsmith@example.com",
"permission_level": "CAN_QUERY"
}
]
}'
U kunt ook de servicemachtigingen voor eindpunten wijzigen met behulp van de Machtigingen-API.
Voeg een serverloos budgetbeleid toe voor een modelbedieningsendpoint
Belangrijk
Deze functie bevindt zich in openbare preview en is niet beschikbaar voor het bedienen van eindpunten die externe modellen.
Met serverloze budgetbeleidsregels kan uw organisatie aangepaste tags toepassen op serverloos gebruik voor gedetailleerde factureringstoewijzing. Als uw werkruimte gebruikmaakt van serverloos budgetbeleid om serverloos gebruik toe te passen, kunt u een serverloos budgetbeleid toevoegen aan uw model dat eindpunten bedient. Zie Gebruik van attributen met serverloze budgetregels.
Tijdens het creëren van een model serving-eindpunt kunt u het serverless budgetbeleid van uw eindpunt selecteren in het menu Budgetbeleid in de Serving-UI. Als u een serverloos budgetbeleid hebt toegewezen, worden alle eindpunten die u maakt toegewezen aan dat serverloze budgetbeleid, zelfs als u geen beleid selecteert in het menu Budgetbeleid .
Als u machtigingen hebt MANAGE voor een bestaand eindpunt, kunt u een serverloos budgetbeleid bewerken en toevoegen aan dat eindpunt vanaf de pagina Eindpuntgegevens in de gebruikersinterface.
Notitie
Als u een serverloos budgetbeleid hebt toegewezen, worden uw bestaande eindpunten niet automatisch gelabeld met uw beleid. U moet bestaande eindpunten handmatig bijwerken als u een serverloos budgetbeleid aan deze eindpunten wilt koppelen.
Een schema voor een modelserveer-eindpunt ophalen
Belangrijk
Ondersteuning voor het leveren van eindpuntqueryschema's bevindt zich in openbare preview. Deze functionaliteit is beschikbaar in Model Serving-regio's.
Een service-eindpuntqueryschema is een formele beschrijving van het servereindpunt met behulp van de standaard OpenAPI-specificatie in JSON-indeling. Het bevat informatie over het eindpunt, inclusief het eindpuntpad, details voor het uitvoeren van query's op het eindpunt, zoals de indeling van de aanvraag- en antwoordtekst en het gegevenstype voor elk veld. Deze informatie kan nuttig zijn voor reproduceerbaarheidsscenario's of wanneer u informatie nodig hebt over het eindpunt, maar u niet de oorspronkelijke maker of eigenaar van het eindpunt bent.
Om het eindpuntschema van het model te verkrijgen, moet het geserveerde model een modelhandtekening hebben en moet het eindpunt de status READY hebben.
In de volgende voorbeelden ziet u hoe u programmatisch het eindpuntschema van het model kunt ophalen met behulp van de REST API. Zie Feature Serving-eindpunten voor functies voor eindpuntschema's.
Het schema dat door de API wordt geretourneerd, heeft de indeling van een JSON-object dat volgt op de OpenAPI-specificatie.
ACCESS_TOKEN="<endpoint-token>"
ENDPOINT_NAME="<endpoint name>"
curl "https://example.databricks.com/api/2.0/serving-endpoints/$ENDPOINT_NAME/openapi" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json"
Details van schemaantwoord
Het antwoord is een OpenAPI-specificatie in JSON-indeling, meestal inclusief velden zoals openapi, infoservers en paths. Omdat het schemaantwoord een JSON-object is, kunt u het parseren met behulp van algemene programmeertalen en clientcode genereren op basis van de specificatie met behulp van hulpprogramma's van derden.
U kunt de OpenAPI-specificatie ook visualiseren met behulp van hulpprogramma's van derden, zoals Swagger Editor.
De hoofdvelden van het antwoord zijn:
- In
info.titlehet veld wordt de naam van het servereindpunt weergegeven. - Het
serversveld bevat altijd één object, meestal heturlveld dat de basis-URL van het eindpunt is. - Het
pathsobject in het antwoord bevat alle ondersteunde paden voor een eindpunt. De sleutels in het object zijn de pad-URL. Elkpathkan meerdere indelingen van invoer ondersteunen. Deze invoer wordt weergegeven in hetoneOfveld.
Hier volgt een voorbeeld van een eindpuntschemaantwoord:
{
"openapi": "3.1.0",
"info": {
"title": "example-endpoint",
"version": "2"
},
"servers": [{ "url": "https://example.databricks.com/serving-endpoints/example-endpoint" }],
"paths": {
"/served-models/vanilla_simple_model-2/invocations": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"dataframe_split": {
"type": "object",
"properties": {
"columns": {
"description": "required fields: int_col",
"type": "array",
"items": {
"type": "string",
"enum": ["int_col", "float_col", "string_col"]
}
},
"data": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "integer",
"format": "int64"
},
{
"type": "number",
"format": "double"
},
{
"type": "string"
}
]
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
},
"examples": [
{
"columns": ["int_col", "float_col", "string_col"],
"data": [
[3, 10.4, "abc"],
[2, 20.4, "xyz"]
]
}
]
},
{
"type": "object",
"properties": {
"dataframe_records": {
"type": "array",
"items": {
"required": ["int_col", "float_col", "string_col"],
"type": "object",
"properties": {
"int_col": {
"type": "integer",
"format": "int64"
},
"float_col": {
"type": "number",
"format": "double"
},
"string_col": {
"type": "string"
},
"becx_col": {
"type": "object",
"format": "unknown"
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
}
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"predictions": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
}
}
}
}
}
}
}
}
}
}
}