Compartilhar via


Otimizar pontos de extremidade de serviço de modelo para produção

Saiba como otimizar pontos de extremidade de Serviço de Modelo para cargas de trabalho de produção que exigem alta taxa de transferência, baixa latência e desempenho confiável.

As estratégias de otimização se enquadram em três categorias:

Quando otimizar seu endpoint

Considere otimizar o endpoint do Model Serving quando você encontrar algum dos seguintes cenários:

  • Volume de consulta alto: seu aplicativo envia mais de 50 mil consultas por segundo (QPS) para um único ponto de extremidade
  • Requisitos de latência: seu aplicativo requer tempos de resposta de sub-100ms
  • Gargalos de dimensionamento: os pontos de extremidade experimentam fila e retornam erros HTTP 429 durante picos de tráfego
  • Otimização de custos: você deseja reduzir os custos de serviço, mantendo as metas de desempenho
  • Preparação de produção: Você está se preparando para passar do desenvolvimento para as cargas de trabalho de produção

Otimizações de infraestrutura

As otimizações de infraestrutura melhoram o roteamento de rede, o comportamento de dimensionamento e a capacidade de computação.

Otimização de rota

Otimização de rota fornece a melhoria de infraestrutura mais significativa para cargas de trabalho de alta capacidade de processamento. Quando você habilita a otimização de rota em um ponto de extremidade, o Serviço de Modelo do Databricks melhora o caminho de rede para solicitações de inferência, resultando em uma comunicação mais rápida e direta entre clientes e modelos.

Benefícios de desempenho:

Característica Limite de ponto de extremidade padrão Limite de ponto de extremidade otimizado para rota
Consultas por segundo (QPS) por workspace 200 Mais de 50.000 (contate o Databricks para limites mais altos)
Concorrência de clientes por espaço de trabalho 192-1024 (varia de acordo com a região) Nenhum limite explícito (limitado pela simultaneidade provisionada)
Concorrência provisionada do endpoint por entidade atendida 1,024 1.024 (contate o Databricks para limites mais altos)

Quando usar a otimização de rota:

  • Cargas de trabalho que exigem mais de 200 QPS
  • Aplicativos com requisitos de latência estritos (sobrecarga de sub-50ms)
  • Implantações de produção que atendem a vários usuários simultâneos

Importante

A otimização de rota só está disponível para o modelo personalizado que atende pontos de extremidade. As APIs do Modelo de Fundação e modelos externos não dão suporte à otimização de rota. Tokens OAuth são necessários para autenticação; Não há suporte para tokens de acesso pessoal.

Consulte a otimização de rota nos servidores de extremidade para obter instruções de configuração e consultar pontos de extremidade com otimização de rota para obter detalhes de consulta.

Concorrência provisionada

A simultaneidade provisionada controla quantas solicitações simultâneas seu ponto de extremidade pode processar. Configure a simultaneidade provisionada com base nos requisitos de QPS e latência esperados.

Diretrizes de configuração:

  • Simultaneidade mínima: defina alto o suficiente para lidar com o tráfego de linha de base sem enfileiramento
  • Simultaneidade máxima: defina um valor suficientemente alto para acomodar picos de tráfego enquanto controla os custos
  • Dimensionamento automático: habilitar o dimensionamento automático para ajustar dinamicamente a capacidade com base na demanda

Calcular a simultaneidade necessária:

Required Concurrency = Target QPS × Average Latency (seconds)

Por exemplo, se a meta for 100 QPS com latência média de 200 ms:

Required Concurrency = 100 × 0.2 = 20

Use o teste de carga para medir a latência real e determinar as configurações de simultaneidade ideais.

Tipos de instância

Escolha tipos de instância com base nos requisitos de computação do modelo:

Tipo de instância Mais adequado para Compensações
CPU (pequena, média, grande) Modelos leves, lógica de inferência simples Custo mais baixo, mais lento para modelos com uso intensivo de computação
GPU (pequena, média, grande) Modelos grandes, cálculos complexos, processamento de imagem/vídeo Custo mais alto, desempenho ideal para aprendizado profundo

Dica

Comece com instâncias de CPU para desenvolvimento e teste. Alterne para instâncias de GPU somente se você observar alta latência de inferência ou seu modelo exigir computação especializada (como operações de aprendizado profundo).

Otimizações de modelo

As otimizações de modelo melhoram a velocidade de inferência e a eficiência dos recursos.

Tamanho e complexidade do modelo

Tamanho e complexidade do modelo: modelos menores e menos complexos geralmente levam a tempos de inferência mais rápidos e QPS mais alto. Considere técnicas como quantização de modelo ou poda se o modelo for grande.

Envio em lote

Se o aplicativo puder enviar várias solicitações em uma única chamada, habilite o envio em lote no lado do cliente. Isso pode reduzir significativamente a sobrecarga por previsão.

Otimização de pré-processamento e pós-processamento

Descarregue o pré-processamento e o pós-processamento complexos dos pontos de atendimento para reduzir a carga na infraestrutura de inferência.

Otimizações do lado do cliente

As otimizações do lado do cliente melhoram a forma como os aplicativos interagem com endpoints de serviço.

Agrupamento de conexões

O pool de conexões reutiliza conexões existentes em vez de criar novas conexões para cada solicitação, reduzindo significativamente a sobrecarga.

  • Use o SDK do Databricks, que implementa automaticamente as práticas recomendadas de pool de conexões
  • Se estiver usando clientes personalizados, implemente o pool de conexões por conta própria.

Estratégias de tratamento e repetição de erros

Implemente um tratamento de erros robusto para lidar normalmente com falhas temporárias, especialmente durante eventos de dimensionamento automático ou interrupções de rede.

Otimização de tamanho de carga

Minimize os tamanhos de conteúdo de solicitação e resposta para reduzir o tempo de transferência de rede e melhorar a taxa de transferência.

Medir e melhorar o desempenho

Monitoramento de desempenho

Monitore o desempenho do endpoint usando as ferramentas fornecidas pelo Mosaic AI Model Serving.

Métrica O que é medido Meta Ação em caso de excesso
Latência (P50, P90, P99) Tempo de resposta para solicitações Dependente do aplicativo (normalmente <100-500ms) Verificar se há enfileiramento, otimizar modelo ou cliente
Vazão (QPS) Solicitações concluídas por segundo Dependente da carga de trabalho Habilitar a otimização de rota, aumentar a simultaneidade provisionada
Taxa de erros Porcentagem de solicitações com falha <1% Examinar os logs de serviço e verificar a existência de problemas de capacidade
Profundidade da fila Solicitações aguardando processamento 0 (sem fila) Aumente a simultaneidade provisionada ou habilite o dimensionamento automático
Uso de CPU/memória Utilização de recursos <80% Escalar verticalmente o tipo de instância ou aumentar a simultaneidade

Consulte Monitore a qualidade do modelo e a saúde do ponto de extremidade para obter diretrizes de monitoramento detalhadas e Acompanhe e exporte as métricas de saúde do ponto de extremidade para Prometheus e Datadog para exportar métricas para ferramentas de observabilidade.

Teste de carga

O teste de carga mede o desempenho do ponto de extremidade em condições de tráfego realistas e ajuda você a:

  • Determinar as configurações de simultaneidade provisionadas ideais
  • Identificar gargalos de desempenho
  • Validar os requisitos de latência e taxa de transferência
  • Entender a relação entre a simultaneidade do cliente e a simultaneidade do servidor

Consulte Teste de carga para endpoints.

Solucionar problemas comuns de desempenho

Queuing

O Model Serving dá suporte ao dimensionamento automático para ajustar a capacidade com base nos padrões de tráfego. No entanto, aumentos repentinos de tráfego podem causar enfileiramento porque o dimensionamento automático requer tempo para detectar o aumento da carga e provisionar capacidade adicional. Durante esse período, as solicitações de entrada podem exceder temporariamente a capacidade disponível, resultando no enfileiramento das solicitações.

O enfileiramento ocorre quando a taxa de solicitação ou concorrência supera a capacidade de processamento atual do endpoint. Isso normalmente acontece durante picos de tráfego acentuados, picos de carga de trabalho ou quando o endpoint tem concorrência provisionada insuficiente. Os Endpoints de Servição de Modelos permitem que uma fila temporária lide com explosões de requisições, mas além de um limite definido, o endpoint retorna erros HTTP 429 (Muitas Solicitações) para proteger a estabilidade do sistema.

O enfileiramento aumenta a latência porque as solicitações enfileiradas esperam antes de serem processadas. Para minimizar a fila:

  • Definir simultaneidade provisionada mínima alta o suficiente para lidar com o tráfego de linha de base mais intermitências típicas
  • Habilitar a otimização de rota para limites de capacidade mais altos
  • Implementar lógica de nova tentativa com recuo exponencial em seus aplicativos cliente

Gargalos de API externa

Os modelos geralmente chamam APIs externas para enriquecimento de dados, recuperação de recursos ou outras tarefas durante a inferência. Essas dependências externas podem se tornar gargalos de desempenho:

  • Latência: medir o tempo de resposta de cada chamada à API externa. A alta latência nessas chamadas aumenta diretamente a latência geral de serviço e reduz a taxa de transferência.
  • Limites de taxa de transferência: As APIs externas podem impor limites de solicitação ou restrições de capacidade. Exceder esses limites pode causar limitação, erros e degradação de desempenho.
  • Taxas de erro: erros frequentes de APIs externas podem disparar novas tentativas e aumentar a carga no ponto de extremidade de serviço.
  • Cache: implemente o cache para dados acessados com frequência de APIs externas para reduzir o número de chamadas e melhorar os tempos de resposta.

Monitore esses fatores para identificar gargalos e implementar otimizações direcionadas para cargas de trabalho de alta taxa de transferência.

Recursos adicionais