Conduzir seu próprio parâmetro de comparação de ponto de extremidade do LLM
Este artigo fornece um exemplo de notebook recomendado do Databricks para fazer benchmark de um ponto de extremidade do LLM. Ele também inclui uma breve introdução de como o Databricks executa a inferência do LLM e calcula a latência e a taxa de transferência como métricas de desempenho do ponto de extremidade.
Inferência do LLM no Databricks mede tokens por segundo para o modo de taxa de transferência provisionada na API do Modelo de Base. Confira O que significam os intervalos de tokens por segundo na taxa de transferência provisionada?.
Parâmetro de comparação do notebook de exemplo
Você pode importar o notebook a seguir para seu ambiente do Databricks e especificar o nome do ponto de extremidade do LLM para executar um teste de carga.
Parâmetro de comparação de um ponto de extremidade do LLM
Introdução à inferência do LLM
Os LLMs executam inferência em um processo de duas etapas:
- Preenchimento prévio, em que os tokens no prompt de entrada são processados em paralelo.
- Decodificação, em que o texto é gerado um token de cada vez de maneira regressiva automática. Cada token gerado é acrescentado à entrada e alimentado novamente no modelo para gerar o próximo token. A geração é interrompida quando o LLM emite um token de parada especial ou quando uma condição definida pelo usuário é atendida.
A maioria dos aplicativos de produção tem um orçamento de latência, e o Databricks recomenda levar ele em consideração para maximizar a taxa de transferência.
- O número de tokens de entrada tem um impacto substancial na memória necessária para processar solicitações.
- O número de tokens de saída domina a latência geral da resposta.
O Databricks divide a inferência do LLM nas seguintes submétricas:
- TTFT (Time to first token): é assim que os usuários começam a ver rapidamente a saída do modelo depois de inserir a consulta. Tempos de espera baixos para uma resposta são essenciais em interações em tempo real, mas menos importantes em cargas de trabalho offline. Essa métrica é orientada pelo tempo necessário para processar o prompt e, em seguida, gerar o primeiro token de saída.
- TPOT (Tempo por token de saída): tempo para gerar um token de saída para cada usuário que está consultando o sistema. Essa métrica corresponde à maneira como cada usuário percebe a “velocidade” do modelo. Por exemplo, um TPOT de 100 milissegundos por token seria de 10 tokens por segundo, ou aproximadamente 450 palavras por minuto, o que é mais rápido do que uma pessoa normal consegue ler.
Com base nessas métricas, a latência total e a taxa de transferência podem ser definidas da seguinte maneira:
- Latência = TTFT + (TPOT) * (o número de tokens a serem gerados)
- Taxa de transferência = número de tokens de saída por segundo em todas as solicitações de simultaneidade
No Databricks, os pontos de extremidade de serviço do LLM conseguem dimensionar para corresponder à carga enviada por clientes com várias solicitações simultâneas. Há uma troca entre latência e taxa de transferência. Isso ocorre porque, em terminais de atendimento LLM, solicitações simultâneas podem ser e são processadas ao mesmo tempo. Em cargas de solicitação simultânea baixas, a latência é a mais baixa possível. No entanto, se você aumentar a carga da solicitação, a latência poderá aumentar, mas a taxa de transferência provavelmente também aumentará. Isso ocorre porque duas solicitações no valor de tokens por segundo podem ser processadas em menos que o dobro do tempo.
Portanto, controlar o número de solicitações paralelas em seu sistema é fundamental para equilibrar a latência com a taxa de transferência. Se você tiver um caso de uso de baixa latência, envie menos solicitações simultâneas para o ponto de extremidade para manter a latência baixa. Se você tiver um caso de uso de alta taxa de transferência, sature o ponto de extremidade com muitas solicitações de simultaneidade, já que vale a pena ter a taxa de transferência mais alta, mesmo em detrimento da latência.
Plataforma de teste de parâmetro de comparação do Databricks
O notebook de exemplo de parâmetro de comparação compartilhado anteriormente é o conjunto de parâmetros de comparação do Databricks. O notebook exibe as métricas de latência e taxa de transferência e plota a taxa de transferência versus a curva de latência em diferentes números de solicitações paralelas. O dimensionamento automático do ponto de extremidade do Databricks baseia-se em uma estratégia “equilibrada” entre latência e taxa de transferência. No notebook, você observa que, à medida que usuários mais simultâneos estão consultando o ponto de extremidade ao mesmo tempo, a latência aumenta, bem como a taxa de transferência.
Mais detalhes da filosofia do Databricks sobre a avaliação de desempenho de LLM é descrita no blog Engenharia de Desempenho de Inferência LLM: Melhores Práticas.