Forge
No arProjeto pessoal - benchmark medido de serving com vLLM para Llama 3.1 8B em um RunPod A5000, com BF16 a 2.169 tok/s totais, $0,035 por 1M de tokens, e AWQ retendo 99,4% de qualidade média.
O que é
Um artefato de engenharia focado, não um SaaS. O que foi entregue:
- Serving - config do vLLM orientada por variáveis de ambiente com continuous batching, KV cache e uma API de streaming compatível com OpenAI, além de métricas nativas do Prometheus e provisionamento no Grafana.
- Harness de benchmark -
vllm bench serveencapsulado em torno de um trace ShareGPT, varrendo concorrência 1, 4, 16, 32 e 64 com 256 prompts em cada nível. - Comparação de modelos - BF16
meta-llama/Llama-3.1-8B-Instructversushugging-quants/Meta-Llama-3.1-8B-Instruct-AWQ-INT4. - Avaliação de qualidade -
lm-evaluation-harnesscontra o servidor vLLM em execução no MMLU, GSM8K e HellaSwag. - Modelo de custo - throughput medido convertido em dólares por milhão de tokens, comparado com GPT-4o, GPT-4o mini, Claude Sonnet e Claude Haiku.
- Gráficos e CI - o JSON de resultados alimenta o pipeline de gráficos; o CI cobre parsers, validação de config, cálculo de custo e formatação dos dados dos gráficos.
Por que construí
Para responder uma pergunta de produção com números medidos: vale mais hospedar um modelo open source do que pagar uma API comercial, e a quantização INT4 melhora a economia em uma GPU de 24 GB barata?
O Forge responde as duas. BF16 Llama 3.1 8B no RunPod A5000 foi muito mais barato do que APIs frontier hospedadas em custo bruto de tokens. AWQ-INT4 manteve a qualidade, mas não melhorou throughput nem custo nessa configuração específica de vLLM/A5000.
Resultado medido
BF16 foi o vencedor em throughput. Na concorrência 64, serviu 2.169 tokens totais por segundo, contra 1.017 tokens totais por segundo do AWQ-INT4 no mesmo pod A5000.
Latência dividida por métrica. AWQ teve menor p99 de time-to-first-token em alta concorrência: 508 ms na concorrência 64 versus 2.822 ms do BF16. BF16 decodificou mais rápido: mean time per output token na concorrência 64 foi 52,7 ms versus 88,0 ms do AWQ.
Custo
A $0,27/hr de compute, BF16 custou $0,0346 por 1M de tokens totais no pico de throughput medido. AWQ custou $0,0737 por 1M de tokens totais por ser mais lento. Comparado com o preço blended do GPT-4o a $6,25 por 1M de tokens, as razões medidas de compute-only ficam em cerca de 181x mais barato para BF16 e 85x mais barato para AWQ, antes de storage e overhead operacional.
Qualidade
AWQ-INT4 reteve 99,4% de qualidade média versus BF16 nas três tarefas de avaliação. Perdeu 1,97 pontos percentuais no MMLU, perdeu 0,85 pontos no HellaSwag e ganhou 1,52 pontos no GSM8K. É uma retenção de qualidade boa o suficiente para muitos experimentos de serving, mas o benchmark ainda favoreceu BF16 porque AWQ foi mais lento.
Como funciona
Reprodutibilidade como restrição de primeira classe
Metodologia, hardware, IDs dos modelos, configuração exata do vLLM, workload, constantes de preço e resultados gerados estão commitados no repositório do Forge. Os arquivos brutos do benchmark ficam em results/bench/full-*, a avaliação bruta em results/eval/full e os dados dos gráficos em results/charts.
Gate de ensaio no M1
O mesmo shell script que roda no RunPod roda localmente em modo de ensaio contra Qwen/Qwen2.5-0.5B-Instruct. Isso pega bugs de parser, config, gráfico e orquestração antes de o tempo de GPU pago começar.
Cobertura de testes estratégica
Os testes cobrem os utilitários críticos em torno do modelo: cálculo de custo, parsers de resultado, formatação de dados dos gráficos, validação de config e metadados do benchmark. A saída do modelo em si é medida na execução paga, não mockada em testes unitários.
Status
Concluído. O milestone principal do Forge está completo: execuções pagas de serving BF16 e AWQ, avaliação de qualidade, análise de custo, gráficos, documentação de metodologia e guias de reprodução estão entregues. O resultado importante é mais restrito e mais útil do que a hipótese original: BF16 self-hosted foi extremamente barato no A5000, enquanto AWQ-INT4 foi um sucesso em retenção de qualidade, mas não um ganho de throughput nessa configuração.
Perguntas
O que é o Forge?
Forge é um benchmark de serving completo para Llama 3.1 8B self-hosted. Ele roda variantes BF16 e AWQ-INT4 no vLLM, varre concorrência com prompts no estilo ShareGPT, avalia qualidade com lm-evaluation-harness e converte o throughput medido em custo por milhão de tokens.
O que a execução paga provou?
BF16 foi o vencedor nessa configuração A5000/vLLM: 2.169 tokens totais por segundo e $0,035 por 1M de tokens. AWQ-INT4 reteve 99,4% de qualidade média, mas foi mais lento: 1.017 tokens totais por segundo e $0,074 por 1M de tokens.
Por que o resultado do AWQ é útil se foi mais lento?
É um resultado negativo útil. AWQ-INT4 manteve a qualidade próxima ao BF16, mas não entregou o ganho esperado de throughput ou custo na configuração medida do RunPod RTX A5000. A página reporta isso diretamente, sem transformar quantização em uma afirmação genérica de speedup.
Como a metodologia se mantém defensável?
Hardware, IDs dos modelos, configuração do vLLM, níveis de concorrência, contagem de prompts, JSON bruto do benchmark, JSON bruto da avaliação e JSON dos gráficos estão commitados no repositório do Forge. O pipeline completo é ensaiado localmente no M1 antes de usar tempo de GPU pago.