Realize seu próprio benchmarking de pontos finais do LLM
Este artigo fornece um exemplo recomendado pela Databricks no site Notebook para a avaliação comparativa de um endpoint LLM. Ele também inclui uma breve introdução sobre como o Databricks realiza a inferência LLM e calcula a latência e a taxa de transferência como métricas de desempenho do endpoint.
A inferência LLM no Databricks mede tokens por segundo para o modo de provisionamento Taxa de transferência para APIs do modelo Foundation. Consulte O que significam os intervalos de tokens por segundo no provisionamento Taxa de transferência?
Exemplo de benchmarking Notebook
O senhor pode importar o seguinte Notebook para o seu ambiente Databricks e especificar o nome do seu endpoint LLM para executar um teste de carga.
Introdução à inferência LLM
Os LLMs realizam a 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 por vez de forma auto-regressiva. Cada token gerado é anexado à entrada e alimentado novamente no modelo para gerar os próximos tokens. A geração é interrompida quando o LLM emite tokens de parada especiais 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 a Databricks recomenda que o senhor maximize a taxa de transferência com base nesse orçamento de latência.
O número de tokens de entrada tem um impacto substancial sobre a memória necessária para processar solicitações.
O número de tokens de saída domina a latência geral da resposta.
A Databricks divide a inferência LLM nas seguintes sub-métricas:
Tempo para os primeiros tokens (TTFT): É a rapidez com que os usuários começam a ver o resultado do modelo depois de inserir a consulta. Baixos tempos de espera por uma resposta são essenciais em interações em tempo real, mas menos importantes em cargas de trabalho off-line. Essa métrica é determinada pelo tempo necessário para processar o prompt e, em seguida, gerar os primeiros tokens de saída.
Tempo por tokens de saída (TPOT): tempo para gerar tokens de saída para cada usuário que está consultando o sistema. Essa métrica corresponde à forma como cada usuário percebe a "velocidade" do modelo. Por exemplo, um TPOT de 100 milissegundos por tokens seria 10 tokens por segundo, ou cerca de 450 palavras por minuto, o que é mais rápido do que uma pessoa comum consegue ler.
Com base nessas métricas, a latência total e a taxa de transferência podem ser definidas da seguinte forma:
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, o endpoint de atendimento do LLM é capaz de escalar para corresponder à carga enviada por clientes com várias solicitações concorrentes. Há uma compensação entre a latência e a taxa de transferência. Isso ocorre porque, no endpoint de serviço do LLM, as solicitações de concorrente podem ser e são processadas ao mesmo tempo. Em cargas de solicitação de baixa concorrência, a latência é a mais baixa possível. No entanto, se o senhor aumentar a carga de solicitações, a latência poderá aumentar, mas a Taxa de transferência provavelmente também aumentará. Isso ocorre porque duas solicitações de tokens por segundo podem ser processadas em menos do 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 o senhor tiver um caso de uso de baixa latência, deverá enviar menos solicitações de concorrente ao endpoint para manter a latência baixa. Se o senhor tiver um caso de uso com alta taxa de transferência, vai querer saturar o endpoint com muitas solicitações de simultaneidade, já que uma taxa de transferência mais alta vale a pena, mesmo às custas da latência.
Arnês de benchmarking da Databricks
O exemplo de benchmarking compartilhado anteriormente Notebooké o chicote de benchmarking da Databricks. O site Notebook exibe as métricas de latência e Taxa de transferência, além de graficar a curva Taxa de transferência versus latência em diferentes números de solicitações paralelas. O Databricks endpoint autoscale é baseado em uma estratégia "equilibrada" entre latência e taxa de transferência. No site Notebook, o senhor observa que, à medida que mais usuários da concorrente consultam o endpoint ao mesmo tempo, a latência aumenta, assim como a taxa de transferência.
Mais detalhes sobre a filosofia da Databricks em relação ao benchmarking de desempenho do LLM estão descritos no blog LLM Inference desempenho engenharia: Best Practices.