Pular para o conteúdo principal

gerenciar o atendimento ao modelo endpoint

Este artigo descreve como gerenciar o endpoint de modelo de serviço usando a UI de serviço e REST API. Consulte Serving endpoint na referência REST API .

Para criar um endpoint de modelo de serviço, use uma das seguintes opções:

Obter o status do modelo endpoint

Na UI de serviço , o senhor pode verificar o status de um endpoint no indicador de estado Serving endpoint na parte superior da página de detalhes do seu endpoint.

Verifique o status e os detalhes de um endpoint programaticamente usando a API REST ou o SDK do MLflow Deployments:

Bash
GET /api/2.0/serving-endpoints/{name}

The following example creates an endpoint that serves the first version of the my-ads-model model that is registered in the Unity Catalog model registry. You must provide the full model name including parent catalog and schema such as, catalog.schema.example-model.

In the following example response, the state.ready field is “READY”, which means the endpoint is ready to receive traffic. The state.update_state field is NOT_UPDATING and pending_config is no longer returned because the update was finished successfully.

JSON
{
"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"
}

Parar de servir o modelo endpoint

O senhor pode interromper temporariamente um modelo de serviço endpoint e começar a usá-lo mais tarde. Quando um endpoint é interrompido, o provisionamento de recursos para ele é encerrado e o endpoint não consegue atender às consultas até que seja iniciado novamente. Somente os pontos de extremidade que atendem a modelos personalizados, não são otimizados para rotas e não têm atualizações em andamento podem ser interrompidos. Os pontos de extremidade interrompidos não contam para a cota de recursos. As consultas enviadas a um endpoint interrompido retornam um erro 400.

O senhor pode interromper um endpoint na página de detalhes do endpoint na IU de serviço .

  1. Clique no endpoint que o senhor deseja interromper.
  2. Clique em Parar no canto superior direito.

Como alternativa, o senhor pode interromper um endpoint de serviço programaticamente usando a API REST da seguinte forma:

Bash
POST /api/2.0/serving-endpoints/{name}/config:stop

Quando o senhor estiver pronto para começar a parar de servir o modelo endpoint, poderá fazê-lo na página de detalhes do endpointna UI de serviço .

  1. Clique no endereço endpoint que o senhor deseja começar.
  2. Clique em começar no canto superior direito.

Como alternativa, o senhor pode começar a servir endpoint de forma programática usando o REST API da seguinte forma:

Bash
POST /api/2.0/serving-endpoints/{name}/config:start

Excluir um modelo de serviço endpoint

Para desativar a veiculação de um modelo, o senhor pode excluir o endpoint no qual ele é veiculado.

O senhor pode excluir um endpoint na página de detalhes do endpointna IU de serviço .

  1. Clique em Servindo na barra lateral.
  2. Clique no endpoint que o senhor deseja excluir.
  3. Clique no menu de kebab na parte superior e selecione Excluir.

Como alternativa, o senhor pode excluir um endpoint de serviço programaticamente usando a API REST ou o SDK do MLflow Deployments

Bash
DELETE /api/2.0/serving-endpoints/{name}

Depurar seu modelo de serviço endpoint

Para depurar quaisquer problemas com o endpoint, o senhor pode buscar:

  • Construção do contêiner do servidor modelo logs
  • Modelo de servidor logs

Esses logs também podem ser acessados na interface do usuário do endpoint nos registros tab.

Para a construção logs de um modelo servido, o senhor pode usar a seguinte solicitação. Para obter mais informações, consulte o guia de depuração para manutenção do modelo.

Bash

GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/build-logs
{
“config_version”: 1 // optional
}

Para os logs do servidor de modelos de um modelo de serviço, o senhor pode usar a seguinte solicitação:

Bash

GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/logs

{
“config_version”: 1 // optional
}

gerenciar permissões em seu modelo de serviço endpoint

O senhor deve ter pelo menos a permissão CAN MANAGE em um endpoint de serviço para modificar as permissões. Para obter mais informações sobre os níveis de permissão, consulte Serving endpoint ACLs.

Obter a lista de permissões no endpoint de serviço.

Bash
databricks permissions get servingendpoints <endpoint-id>

Conceda ao usuário jsmith@example.com a permissão CAN QUERY no endpoint de atendimento.

Bash
databricks permissions update servingendpoints <endpoint-id> --json '{
"access_control_list": [
{
"user_name": "jsmith@example.com",
"permission_level": "CAN_QUERY"
}
]
}'

O senhor também pode modificar as permissões do endpoint de atendimento usando a API de permissões.

Adicionar uma política orçamentária serverless para um modelo de serviço endpoint

info

Visualização

Esse recurso está em Public Preview e não está disponível para o endpoint de atendimento que atende a modelos externos.

As políticas de orçamento sem servidor permitem que sua organização aplique tags personalizadas no uso do serverless para atribuição de faturamento granular. Se o seu workspace usa políticas de orçamento serverless para atribuir o uso do serverless, o senhor pode adicionar uma política de orçamento serverless ao seu endpoint servindo modelo. Consulte Uso de atributos com as políticas de orçamento do serverless.

endpoint Durante a criação do modelo endpoint, o senhor pode selecionar a política de orçamento do serverless no menu Budget policy (Política de orçamento ) na Serving UI. Se tiver uma política de orçamento serverless atribuída a você, todos os pontos de extremidade que criar serão atribuídos a essa política de orçamento serverless, mesmo que você não selecione uma política no menu Política de orçamento .

Adicione a política de orçamento serverless durante a criação do modelo endpoint usando a UI de serviço.

Se o senhor tiver permissões MANAGE para um endpoint existente, poderá editar e adicionar uma política de orçamento serverless a esse endpoint na página de detalhes do ponto de extremidade na interface do usuário.

Edite a política de orçamento serverless em um modelo de serviço existente endpoint usando a Serving UI.

nota

Se o senhor tiver recebido uma política de orçamento serverless, os endpoints existentes não serão automaticamente marcados com a política. O senhor deve atualizar manualmente o endpoint existente se quiser anexar uma política de orçamento serverless a ele.

Obtenha um esquema servindo modelo endpoint

info

Visualização

O suporte para atender a esquemas de consulta de endpoint está em Public Preview. Essa funcionalidade está disponível nas regiões do modelo servindo.

Um esquema de consulta endpoint é uma descrição formal do serviço endpoint usando a especificação padrão da OpenAPI no formato JSON. Ele contém informações sobre o endpoint, incluindo o caminho do endpoint, detalhes para consultar o endpoint, como o formato do corpo da solicitação e da resposta, e o tipo de dados de cada campo. Essas informações podem ser úteis em cenários de reprodutibilidade ou quando o senhor precisar de informações sobre o endpoint, mas não for o criador ou proprietário original do endpoint.

Para obter o esquema servindo modelo endpoint, o modelo servido deve ter um registro de assinatura de modelo e o endpoint deve estar em um estado READY.

Os exemplos a seguir demonstram como obter programaticamente o esquema servindo modelo endpoint usando o REST API. Para conhecer os esquemas Feature Serving endpoint , consulte O que é Databricks Feature Serving?

O esquema retornado pela API está no formato de um objeto JSON que segue a especificação OpenAPI.

Bash

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"

Detalhes da resposta do esquema

A resposta é uma especificação OpenAPI no formato JSON, normalmente incluindo campos como openapi, info, servers e paths. Como a resposta do esquema é um objeto JSON, o senhor pode analisá-la usando linguagens de programação comuns e gerar código de cliente a partir da especificação usando ferramentas de terceiros. Você também pode visualizar a especificação OpenAPI usando ferramentas de terceiros, como o Swagger Editor.

Os principais campos da resposta incluem:

  • O campo info.title mostra o nome do endpoint de atendimento.
  • O campo servers sempre contém um objeto, normalmente o campo url, que é a url base do endpoint.
  • O objeto paths na resposta contém todos os caminhos suportados para um endpoint. A chave no objeto é o URL do caminho. Cada path pode suportar vários formatos de entradas. Essas entradas estão listadas no campo oneOf.

A seguir, um exemplo de resposta de esquema de endpoint:

JSON
{
"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"
}
}
}
}
}
}
}
}
}
}
}
}