Criar um endpoint de modelo de serviço personalizado
Este artigo descreve como criar um endpoint servindo modelo que serve modelos personalizados usando Databricks servindo modelo.
O servindo modelo oferece as seguintes opções para servir a criação do endpoint:
- A interface de usuário de serviço
- API REST
- SDK de implantações do MLflow
Para criar um endpoint que atenda aos modelos generativos do AI, consulte Criar um endpoint que atenda ao modelo.
Requisitos
- Seu workspace deve estar em uma região compatível.
- Se o senhor usar uma biblioteca personalizada ou uma biblioteca de um servidor espelho privado com seu modelo, consulte Usar uma biblioteca personalizada Python com o modelo de serviço antes de criar o modelo endpoint.
- Para criar um endpoint usando o MLflow Deployments SDK, o senhor deve instalar o cliente MLflow Deployment. Para instalá-lo, execute:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Controle de acesso
Para entender as opções de controle de acesso para o ponto de extremidade do modelo de abastecimento para gerenciamento endpoint , consulte gerenciar permissões em um endpointdo modelo de abastecimento.
A identidade sob a qual a execução de um modelo endpoint está vinculada ao criador original do endpoint. Após a criação do endpoint, a identidade associada não pode ser alterada ou atualizada no endpoint. Essa identidade e suas permissões associadas são usadas para acessar o recurso Unity Catalog para implantações. Se a identidade não tiver as permissões apropriadas para acessar o recurso necessário Unity Catalog , você deverá excluir o endpoint e recriá-lo sob um usuário ou entidade de serviço que possa acessar esses recursos Unity Catalog .
Você também pode:
- Adicionar um perfil de instância a um endpoint de serviço de modelo
- Configure o acesso aos recursos de endpoints de serviço de modelo
Criar um endpoint
- Serving UI
- REST API
- MLflow Deployments SDK
- Workspace Client
O senhor pode criar um endpoint para servir o modelo com a Serving UI.
-
Clique em Serving na barra lateral para exibir a Serving UI.
-
Clique em Criar endpoint de serviço .

Para modelos registrados no espaço de trabalho registro de modelo ou modelos em Unity Catalog:
-
No campo Name (Nome ), forneça um nome para seu endpoint.
- Os nomes de endpoints não podem usar o prefixo
databricks-. Este prefixo é reservado para endpoints pré-configurados Databricks .
- Os nomes de endpoints não podem usar o prefixo
-
Na seção Entidades atendidas
-
Clique no campo Entidade para abrir o formulário Selecionar entidade servida .
-
Selecione " Meus modelos Unity Catalog ou "Meus modelos Model Registry dependendo de onde seu modelo está registrado. O formulário é atualizado dinamicamente com base na sua seleção.
- Nem todos os modelos são modelos personalizados. Os modelos podem ser modelos de base ou recursos para Feature Serving.
-
Selecione qual modelo e versão do modelo você deseja servir.
-
Selecione a porcentagem de tráfego a ser direcionada para seu modelo atendido.
-
Selecione o tamanho do site compute a ser usado. O senhor pode usar a computação de CPU ou GPU para suas cargas de trabalho. Consulte Tipos de carga de trabalho de GPU para obter mais informações sobre a computação de GPU disponível.
-
Em "Compute Escalate Out" , selecione o tamanho do compute Escalate Out" que corresponde ao número de solicitações que este modelo de serviço pode processar simultaneamente. Esse número deve ser aproximadamente igual a QPS x tempo de execução do modelo. Para configurações compute definidas pelo cliente, consulte limites do modelo de serviço.
- Os tamanhos disponíveis são pequeno para 0 a 4 solicitações, médio para 8 a 16 solicitações e grande para 16 a 64 solicitações.
-
Especifique se o endpoint deve ser zerado quando não estiver em uso. A escalabilidade para zero não é recomendada para endpoints de produção, pois a capacidade não é garantida quando reduzida a zero. Quando um endpoint escala para zero, há uma latência adicional, também conhecida como inicialização a frio, enquanto o endpoint volta a escalar para atender às solicitações.
-
Em Configuração avançada, você pode:
- Renomeie a entidade servida para personalizar a forma como ela aparece no endpoint.
- Adicione um instance profile para se conectar ao AWS recurso de seu endpoint.
- Adicione variável de ambiente para se conectar ao recurso de seu endpoint ou log seu recurso procure DataFrame na tabela de inferência do endpoint. O registro da pesquisa de recurso DataFrame requer MLflow 2.14.0 ou acima.
-
(Opcional) Para adicionar entidades adicionais ao seu endpoint, clique em Adicionar entidade e repita os passos de configuração acima. Você pode disponibilizar vários modelos ou versões de modelos a partir de um único endpoint e controlar a divisão do tráfego entre eles. Consulte servir vários modelos para obter mais informações.
-
-
Na seção Otimização de rotas , você pode habilitar a otimização de rotas para seu endpoint. Recomenda-se a otimização de rotas para endpoints com alta demanda de QPS e Taxa de transferência. Consulte Otimização de rotas no ponto de extremidade de serviço.
-
Na seção AI Gateway , o senhor pode selecionar o recurso de governança a ser ativado no seu endpoint. Consulte a introdução do Mosaic AI Gateway.
-
Clique em Criar . A página Serving endpoint é exibida com o estado Serving endpoint mostrado como Not Ready.

O senhor pode criar um endpoint usando o site REST API. Consulte POST /api/2.0/serving-endpoint para os parâmetros de configuração do endpoint.
O exemplo a seguir cria um endpoint que serve a terceira versão do modelo my-ads-model que está registrado no registro de modelo do Unity Catalog . Para especificar um modelo do Unity Catalog, forneça o nome completo do modelo, incluindo o catálogo pai e o esquema, como, catalog.schema.example-model. Este exemplo usa concorrência definida pelo usuário com min_provisioned_concurrency e max_provisioned_concurrency. Os valores de concorrência devem ser múltiplos de 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
}
]
}
}
Veja a seguir um exemplo de resposta. O estado config_update do endpoint é NOT_UPDATING e o modelo servido está em um estado READY.
{
"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
}
MLflow O Deployments fornece um API para tarefas de criação, atualização e exclusão. O APIs para essas tarefas aceita os mesmos parâmetros que o REST API para atender ao endpoint. Consulte POST /api/2.0/serving-endpoint para os parâmetros de configuração do endpoint.
O exemplo a seguir cria um endpoint que serve a terceira versão do modelo my-ads-model que está registrado no registro de modelo do Unity Catalog . Você deve fornecer o nome completo do modelo, incluindo o catálogo pai e o esquema, como, catalog.schema.example-model. Este exemplo usa concorrência definida pelo usuário com min_provisioned_concurrency e max_provisioned_concurrency. Os valores de concorrência devem ser múltiplos de 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
}
]
}
)
O exemplo a seguir mostra como criar um endpoint usando o SDK do cliente do Databricks Workspace.
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
)
]
)
)
Você também pode:
- Ative as tabelas de inferência para capturar automaticamente as solicitações de entrada e as respostas de saída para seu endpoint de modelo de serviço.
- Se as tabelas de inferência estiverem ativadas no seu endpoint, o senhor poderá log a pesquisa de recurso DataFrame para a tabela de inferência.
Tipos de carga de trabalho de GPU
A implementação da GPU é compatível com as seguintes versões do pacote:
- PyTorch 1.13.0 - 2.0.1
- TensorFlow 2.5.0 - 2.13.0
- MLflow 2.4.0 e acima
Os exemplos a seguir mostram como criar um endpoint de GPU usando diferentes métodos.
- Serving UI
- REST API
- MLflow Deployments SDK
- Workspace Client
Para configurar seu endpoint para cargas de trabalho de GPU com a interface de usuário Serving , selecione o tipo de GPU desejado na dropdown Tipo de computação ao criar seu endpoint. Siga os mesmos passos descritos em Criar um endpoint, mas selecione um tipo de carga de trabalho de GPU em vez de CPU.
Para implantar seus modelos usando GPUs, inclua o campo workload_type na configuração do seu endpoint .
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
}]
}
}
O exemplo a seguir mostra como criar um endpoint de GPU usando o SDK de Implantações do MLflow.
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
}]
}
)
O exemplo a seguir mostra como criar um endpoint de GPU usando o SDK do cliente Databricks Workspace.
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
)
]
)
)
A tabela a seguir resume os tipos de carga de trabalho de GPU disponíveis suportados.
Tipo de carga de trabalho da GPU | Instância de GPU | Memória GPU |
|---|---|---|
| 1xT4 | 16GB |
| 1 x A10g | 24 GB |
| 4xA10G | 96 GB |
| 8xA10g | 192 GB |
Modificar um endpoint de modelo personalizado
Depois de ativar um modelo personalizado endpoint, o senhor pode atualizar a configuração do compute conforme desejar. Essa configuração é particularmente útil se o senhor precisar de recurso adicional para o seu modelo. O tamanho da carga de trabalho e a compute configuração key do site desempenham um papel importante em quais recursos são alocados para atender ao seu modelo.
As atualizações na configuração do endpoint podem falhar. Quando ocorrem falhas, a configuração ativa existente permanece efetiva como se a atualização não tivesse ocorrido.
Verifique se a atualização foi aplicada com sucesso, revisando o status do seu endpoint.
Até que a nova configuração esteja pronta, a configuração antiga continua fornecendo tráfego de previsão. Enquanto houver uma atualização em andamento, outra atualização não poderá ser feita. No entanto, você pode cancelar uma atualização em andamento na Serving UI.
- Serving UI
- REST API
- MLflow Deployments SDK
Depois que o senhor habilitar um modelo endpoint, selecione Edit endpoint para modificar a configuração compute do seu endpoint.

Você pode alterar a maioria dos aspectos da configuração do endpoint, exceto o nome do endpoint e certas propriedades imutáveis.
Você pode cancelar uma atualização de configuração em andamento selecionando "Cancelar atualização" na página de detalhes do endpoint.
A seguir, um exemplo de atualização de configuração de endpoint usando a API REST. Consulte PUT /api/2.0/serving-endpoint/{{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
}
]
}
}
}
O MLflow Deployments SDK usa os mesmos parâmetros que o REST API, consulte PUT /api/2.0/serving-endpoint/{name}/config para obter detalhes do esquema de solicitação e resposta.
O exemplo de código a seguir usa um modelo do site Unity Catalog registro de modelo:
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
}
]
}
}
)
Pontuação de um modelo endpoint
Para pontuar seu modelo, envie solicitações para o servindo modelo endpoint.
- Consulte Ponto de extremidade de serviço de consulta para modelos personalizados.
- Consulte Usar modelos de base.
Recurso adicional
- gerenciar servindo o modelo endpoint.
- Modelos externos no Mosaic AI Model Serving.
- Se preferir usar Python, o senhor pode usar o Python SDK de serviço em tempo real da Databricks.
Notebook exemplos
O Notebook a seguir inclui diferentes Databricks modelos registrados que o senhor pode usar para começar a trabalhar com o endpoint modelo servindo. Para obter exemplos adicionais, consulte o tutorial: implantar e consultar um modelo personalizado.
Os exemplos de modelos podem ser importados para o site workspace seguindo as instruções em Import a Notebook. Depois de escolher e criar um modelo a partir de um dos exemplos, registre-o em Unity Catalog e siga as etapas do fluxo de trabalho da interface do usuário para servir o modelo.