.000 por noite. Você ouve falar das APIs de lote.
O processamento em lote garante 50% de desconto de imediato. Você também ativa o cache de prompts no prompt do sistema (compartilhado por todas as 50.000 chamadas). Empilhados os dois recursos, o custo diário despenca para
80 — cerca de 9% do preço base. O mesmo pipeline, com apenas três alterações de configuração.
O lote é a alavanca de redução de custo mais barata e menos utilizada na stack de LLMs. O motivo é majoritariamente organizacional: as equipes pensam em "tempo real" quando, na verdade, o SLA real de entrega é "pela manhã". Esta lição ensina a não deixar 90% da sua verba de infraestrutura na mesa.
O Conceito
As três APIs de lote
OpenAI Batch API: Upload de arquivo JSONL com uma lista de requisições. Prazo de conclusão prometido de 24 horas (geralmente entre 2 e 8 horas na prática). Desconto de 50% nos tokens de entrada e de saída. Endpoint /v1/batches. Entradas elegíveis ao cache também acumulam o desconto de tokens cacheáveis por cima.
Anthropic Message Batches: Upload de JSONL. Prazo de conclusão de 24 horas. Desconto de 50%. Suporta cache_control — as escritas de cache são explícitas, e as leituras subsequentes ocorrem de forma automática dentro do lote.
Google Vertex AI Batch Prediction: Entrada via BigQuery ou GCS. Desconto de 50% equivalente para a família Gemini. Integra-se nativamente com os pipelines do Vertex.
Semântica: assíncrono, não lento
Processamento em lote significa "garanto a entrega em até 24 horas" — e não "esta chamada demorará 24 horas". O tempo médio típico (P50) é de 2 a 6 horas. Os provedores agendam o processamento de lote em períodos de ociosidade, quando a utilização de GPUs está em baixa.
Empilhando com cache
Um fluxo de resumo de 50.000 documentos compartilhando o mesmo prompt de sistema de 4K tokens:
- Síncrono sem cache: 50.000 × ($entrada × 4000 + $saída × 200) com tarifas normais.
- Síncrono com cache: prompt de sistema em cache após a primeira escrita; as 49.999 chamadas seguintes recebem entrada 10x mais barata.
- Lote com cache: soma-se a economia do cache com o desconto adicional de 50% tanto nas escritas quanto nas leituras.
O resultado do empilhamento: lote + cache = ~10% do custo síncrono original. Toda carga que roda à noite e possui um prompt de sistema compartilhado deve usar essa abordagem.
Triagem de carga de trabalho
Interativa — o usuário aguarda a resposta diretamente na tela. O TTFT é crítico. Chamada síncrona com cache de prompt ativado. Não aceita lote.
Semi-interativa — o usuário envia a tarefa e retorna minutos depois para conferir. Fila assíncrona com fallback síncrono caso o lote não esteja disponível. Exemplo: indexação de RAG de volume moderado.
Em lote (Batch) — o usuário aguarda o resultado "pela manhã" ou "na próxima hora". Pipelines de conteúdo, classificação volumosa, análise offline. Sempre em lote, sempre empilhando cache.
Erro comum: classificar tudo como interativo sob a justificativa de que o pipeline roda em produção. Produção não define latência — o SLA define.
A armadilha da interatividade parcial
Algumas funcionalidades parecem interativas, mas toleram de 5 a 10 minutos de espera. Exemplo: um relatório de saúde do cliente gerado sob demanda com um botão de "atualizar". O usuário clica; esperar 10 minutos é aceitável. No entanto, a equipe implementa o fluxo de forma síncrona. Cinquenta cliques simultâneos de atualização custam 10x mais do que o processamento em lote entregue por e-mail custaria.
A pergunta crucial: "O que o prazo de 24 horas significa para este usuário?". Se a resposta for "ele não notaria a diferença", processe em lote.
A armadilha do formato de saída
Os formatos dos arquivos de lote diferem de acordo com cada provedor:
- OpenAI: JSONL, uma requisição por linha.
- Anthropic: JSONL, uma mensagem por linha, com o formato de resposta embutido.
- Vertex: Tabela do BigQuery ou diretório GCS com arquivos TFRecord.
Desenvolver um único cliente de lote unificado exige código de adaptação (adapters) para cada provedor. Gateways que prometem lote multi-provedor (como Portkey ou LiteLLM em certas camadas) apenas envelopam a estrutura bruta.
Números que você deve lembrar
- Desconto de lote entre os provedores: 50% de desconto linear em tokens de entrada e saída.
- Prazo de conclusão (SLA): 24 horas garantidas, com P50 típico de 2 a 6 horas.
- Empilhamento de lote + cache de entrada: ~10% do custo síncrono convencional.
- Regra de triagem: se a latência de 24 horas for aceitável, sempre processe em lote.
Use na Prática
code/main.py calcula os custos comparativos entre síncrono, síncrono+cache, lote e lote+cache para um fluxo de 50.000 documentos. Exibe a economia em dólares e em percentual.
Envie para Produção
Esta lição produz outputs/skill-batch-triager.md. Dadas as características da carga de trabalho, realiza a triagem em interativa/semi/lote e calcula a projeção de economia.
Exercícios
- Execute
code/main.py. Para um pipeline de 100.000 documentos com prompt de sistema de 3K tokens e saída de 500 tokens, calcule a economia do empilhamento completo (lote + cache) contra a baseline síncrona.
- Escolha três funcionalidades de um produto real que você conheça. Faça a triagem de cada uma em interativa/semi/lote.
- Um usuário reclama que seu relatório levou 3 horas para ser gerado. Foi um erro de triagem do lote ou um caso de uso legitimamente interativo? Escreva os critérios dessa decisão.
- O SLA de retorno da sua API de lote é de 24h, mas o P99 real é de 20 horas. Como você comunica isso ao usuário e qual é o comportamento do sistema nos casos extremos de lentidão?
- Calcule o ponto de equilíbrio (break-even): com qual comprimento de prefixo compartilhado o lote + cache se torna mais barato do que executar a infraestrutura noturna em uma GPU reservada própria?
Termos-Chave
| Termo |
O que as pessoas dizem |
O que realmente significa |
| API de lote |
"desconto assíncrono" |
50% de desconto com prazo de conclusão de 24h |
| JSONL |
"format de lote" |
Formato de um objeto JSON por linha; padrão da OpenAI/Anthropic |
| Message Batches |
"lote da Anthropic" |
Nome comercial da API de lote da Anthropic |
| Batch prediction |
"lote do Vertex" |
Produto de API de lote da Vertex AI |
| SLA de conclusão |
"promessa de 24h" |
Garantia contratual máxima; o tempo típico real é de 2 a 6h |
| Triagem de carga de trabalho |
"decisão de interatividade" |
Decisão de roteamento de fluxos em interativo, semi-interativo ou lote |
| Formato de saída |
"esquema de resposta" |
Layout JSONL específico de cada provedor; não portável |
| Desconto empilhado |
"lote + cache" |
~10% da fatura síncrona original ao acumular os dois recursos |
Leitura Adicional
0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).