Throughput e goodput em LLM: que métrica deve usar?

Tradução automática

Este artigo foi traduzido automaticamente a partir da versão original em inglês.

O throughput de um LLM mede quanto trabalho um servidor conclui por segundo. O goodput mede a taxa de trabalho que também cumpre requisitos de serviço definidos. Para tomar decisões de serving, use o throughput de tokens de saída em conjunto com os pedidos concluídos com sucesso por segundo que cumprem os seus objetivos de latência do primeiro token e de geração.

Um servidor que produz mais tokens enquanto os pedidos excedem o tempo limite pode ter um throughput maior e uma capacidade útil menor.

Defina um pedido que cumpra os requisitos

Antes dos testes, defina as condições que um pedido tem de cumprir. Por exemplo: conclusão com sucesso, TTFT inferior a 500 ms e TPOT médio inferior a 50 ms. Depois, conte os pedidos concluídos que cumprem essas condições durante o intervalo de medição:

request goodput = qualifying completed requests / measured seconds
output throughput = generated output tokens / measured seconds

Estes são um SLO ilustrativo e duas definições explícitas de métricas. Se 100 pedidos forem concluídos em dez segundos, mas apenas 60 cumprirem os requisitos, o throughput de conclusão é de dez pedidos por segundo e o goodput é de seis. Indique também o throughput de tokens de saída, pois as respostas podem ter comprimentos diferentes.

O DistServe usa o goodput para avaliar o serving com requisitos de TTFT e geração de tokens. Indique sempre se a sua unidade são pedidos ou tokens que cumprem os requisitos: a palavra, por si só, não define o denominador nem as regras de elegibilidade.

Mantenha uma carga de trabalho comparável

RegistePorque afeta o resultado
Comprimentos de entrada e saídaVariam o trabalho de prefill, o tamanho da cache e a duração da descodificação
Modelo, precisão, GPU e revisão do runtimeAlteram o custo de execução
Pedidos oferecidos por segundoDetermina a pressão sobre a fila
Pedidos simultâneosAltera o agrupamento em lotes e a utilização de memória
Política de cacheOs prefixos repetidos podem reduzir o trabalho de prefill
Erros e cancelamentosA conclusão com sucesso faz parte da capacidade útil

Com lotes pequenos de descodificação, adicionar pedidos pode melhorar a reutilização dos pesos. Lotes maiores ou o aumento da carga oferecida podem acabar por elevar a latência ou exceder os limites de memória, computação ou comunicação. A curva depende da carga de trabalho; não há garantia de uma evolução linear.

Aumente a carga oferecida por etapas e represente num gráfico o throughput, o goodput, a latência P99, os erros e o comprimento da fila. Escolha uma carga que cumpra os requisitos e deixe margem para variações de tráfego. A experiência da Anyscale sobre agrupamento contínuo em lotes mostra porque uma comparação precisa de especificar a distribuição dos pedidos.

O guia de engenharia: throughput e compromisso com a latência explica este compromisso do serving no seu contexto.