Phase 17 - Lesson 15

Batch APIs — the 50% Discount as Industry Standard

This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.

Cada grande provedor distribui uma API de processamento em lote (Batch API) assíncrona com 50% de desconto e um prazo de conclusão de cerca de 24 horas. OpenAI, Anthropic, Google e a maioria das plataformas de inferência (como a camada de lote da Fireworks e da Together) implementam o mesmo padrão. Ao empilhar o processamento em lote com o cache de prompt em pipelines noturnos, o custo cai para aproximadamente 10% do processamento síncrono e sem cache. A regra é brutalmente simples: se o fluxo não for interativo, ele deve ser processado em lote. Pipelines de geração de conteúdo, classificação de documentos, extração de dados, geração de relatórios, rotulagem em massa, categorização de catálogo — qualquer tarefa que tolere uma latência de 24 horas representa desperdício de dinheiro até que seja migrada para lote. O padrão de produção de 2026 consiste em triar cada nova carga de trabalho de LLM em três vias: interativa (síncrona com cache), semi-interativa (fila assíncrona com fallback) e em lote (execução noturna com cache de entrada empilhado). Cargas de trabalho que se fingem de interativas mas toleram minutos de latência são as que mais desperdiçam recursos.

Type: Learn Languages: Python (stdlib, toy batch-vs-sync cost simulator) Prerequisites: Phase 17 · 14 (Prompt & Semantic Caching) Time: ~45 minutos

Learning Objectives

  • Identificar as três APIs de lote dos provedores (OpenAI, Anthropic, Google) e a garantia comum de 50% de desconto com prazo de conclusão de 24 horas.
  • Calcular a economia decorrente do empilhamento de processamento em lote e cache de entrada em um fluxo de classificação noturno, comparando-o com o processamento síncrono sem cache.
  • Triar cargas de trabalho entre interativa / semi-interativa / lote e justificar a rota adotada.
  • Identificar as duas armadilhas do lote: interatividade parcial (usuário espera retorno em menos de 24 horas) e desvio no esquema de saída (diferentes formatos de arquivos de lote por provedor).

O Problema

Sua equipe coloca em produção um pipeline noturno de geração de relatórios. São 50.000 documentos: resumir cada um, agrupar os resumos e redigir um relatório executivo condensado. Rodando de forma síncrona, a tarefa leva 4 horas e custa

.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:

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:

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

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

  1. 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.
  2. Escolha três funcionalidades de um produto real que você conheça. Faça a triagem de cada uma em interativa/semi/lote.
  3. 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.
  4. 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?
  5. 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).