Partilhar via


Implementações otimizadas sem servidor para pontos finais de serviço de modelos

Este artigo descreve como usar implementações otimizadas serverless nos seus servidores de modelos endpoints. Implementações otimizadas "serverless" reduzem drasticamente os tempos de implementação e mantêm o ambiente de execução do modelo igual ao ambiente de treino do modelo.

O que são implementações otimizadas sem servidor (serverless)?

As implementações otimizadas serverless aproveitam artefactos de modelos de empacotamento e staging em ambientes de notebooks serverless durante o registo do modelo, resultando numa implementação acelerada nos endpoints e ambientes consistentes entre treino e serviço.

Isto difere das implementações otimizadas sem servidor, onde artefactos e ambientes de modelos são embalados em contentores no momento da implementação. Nesses casos, o ambiente de serviço pode não corresponder ao utilizado durante o treino de modelos.

Requerimentos

Os endpoints serverless otimizados têm os mesmos requisitos que os endpoints de serviço de modelos (ver Requisitos). Além disso:

  • O modelo deve ser um modelo personalizado (não FMAPI)
  • O modelo deve ser registado e registado num Serverless Notebook usando a versão 3 ou 4
  • O modelo deve ser gravado e registado com mlflow>=3.1
  • O modelo deve estar registado na UC e servido com CPU
  • O tamanho máximo do ambiente do modelo é de 1GB

Utilização de implementações otimizadas em ambiente serverless

Ao registar e registar um modelo, utilize um Serverless Notebook com o cliente 3 ou 4 e mlflow>=3.1.

Para ajustar a versão cliente do ambiente serverless, veja Configurar o ambiente serverless.

Depois, ao registar um modelo, define o env_pack parâmetro com os valores desejados.

import mlflow
from mlflow.utils.env_pack import EnvPackConfig

mlflow.register_model(
    model_info.model_uri,
    model_name,
    env_pack=env_pack=EnvPackConfig(name="databricks_model_serving")
)

Adicionar o parâmetro env_pack fará com que a função empacote e prepare os artefatos do modelo e o ambiente do notebook serverless durante o registo do modelo, preparando-o para uso durante a implementação. Isto pode demorar mais tempo em comparação com registar o modelo sem env_pack.

EnvPackConfig tem um parâmetro install_dependencies (predefinido como True) que determina se as dependências do modelo estão instaladas no ambiente atual, para confirmar que o ambiente é válido. Se quiser saltar esse passo, defina o valor para False.

Observação

Endpoints em espaços de trabalho sem acesso à internet ou endpoints com dependências de bibliotecas personalizadas podem falhar se install_dependencies estiver definido para True. Nestes casos, defina install_dependencies para False.

Também podes substituir EnvPackConfig(...) por "databricks_model_serving" como abreviação. Isto equivale a EnvPackConfig(name="databricks_model_serving", install_dependencies = True).

Depois de registar que o modelo está concluído, pode implementá-lo no serviço de modelo. Note que o tempo de implementação é reduzido e os registos de eventos já não indicam a construção do contentor.