14-02-01 — Cost Optimization: Model Routing, Distillation e Prompt Compression

⏱ 12 minFontes validadas em: 2026-04-29

TL;DR

Custo de LLM em produção escala linear com tokens. Três alavancas principais para reduzir: Model Routing (usar GPT-4o-mini para perguntas simples, GPT-4o para complexas — reduz custo em 60-80%), Distillation (treinar modelo menor com outputs do modelo grande), e Prompt Compression (reduzir tokens sem perder informação — 30-40% de redução típica).

O Problema de Custo

GPT-4o custa ~$15/M tokens de entrada + $60/M tokens de saída (pricing de referência, variável). Para 500 usuários com 50 queries/dia de contexto médio de 2.000 tokens:

  • Tokens/dia: 500 × 50 × 2.000 = 50M tokens
  • Custo diário GPT-4o: ~$750/dia = $22.500/mês
  • Custo diário GPT-4o-mini (~10x mais barato): ~$75/dia = $2.250/mês

A diferença de $20K/mês justifica investir em routing inteligente.

1. Model Routing Inteligente

Classifique cada query por complexidade e direcione para o modelo adequado:

Tipo de queryModelo recomendadoCusto relativo
FAQ simples, lookup, formataçãoGPT-4o-mini / Phi-3.51x
Resumo, extração estruturadaGPT-4o-mini1x
Análise multi-documento, raciocínioGPT-4o10x
Código complexo, arquiteturaGPT-4o ou o110-30x
Matemática, lógica formalo1 / o330x+
async def cost_optimized_router(query: str, context: str) -> str:
    # Classificação barata com modelo pequeno
    complexity = await classify_complexity(query, model="gpt-4o-mini")
    # complexity: "simple" | "moderate" | "complex" | "reasoning"
    
    token_count = len(query.split()) + len(context.split())  # aproximação
    
    if complexity == "simple" or token_count < 500:
        return await call_model(query, context, model="gpt-4o-mini")
    elif complexity == "moderate":
        return await call_model(query, context, model="gpt-4o-mini")  
    elif complexity == "complex":
        return await call_model(query, context, model="gpt-4o")
    else:  # reasoning
        return await call_model(query, context, model="o1-mini")
💡 Azure AI Foundry Model Router: A Microsoft lançou um Model Router gerenciado que faz essa classificação automaticamente. Você aponta para o endpoint do router, ele decide qual modelo usar baseado na query. Redução de custo de 30-50% sem mudança de código.

2. Knowledge Distillation

Usa o modelo grande ("teacher") para gerar um dataset de exemplos de alta qualidade, e treina um modelo menor ("student") para imitar o comportamento. O student fica especializado na tarefa específica e pode ser 10x mais barato.

Processo:

  1. Coleta 500-2000 queries representativas do seu caso de uso
  2. GPT-4o gera respostas ideais para cada query (dataset de treino)
  3. Fine-tune de GPT-4o-mini ou Phi-3.5 com esse dataset
  4. Avaliação: modelo fine-tuned vs modelo original em métricas de qualidade
  5. Se qualidade ≥ 90% do original → deploy do modelo menor
⚠️ Quando NÃO usar distillation: Casos de uso que variam muito (perguntas abertas, domínios múltiplos). Distillation funciona melhor para tarefas específicas e repetitivas: classificação de documentos, extração de campos específicos, resposta a FAQ de produto.

3. Prompt Compression

Reduz o número de tokens no prompt sem perder informação essencial. Técnicas:

LLMLingua (Microsoft Research)

Técnica de compressão que remove tokens menos importantes baseado em perplexidade. Reduz prompts em 2-5x com perda mínima de qualidade.

from llmlingua import PromptCompressor

llm_lingua = PromptCompressor(
    model_name="microsoft/llmlingua-2-bert-base-multilingual-cased-meetingbank",
    use_llmlingua2=True,
    device_map="cpu"
)

# Original: 2000 tokens
long_document = "... documento extenso ..."

compressed = llm_lingua.compress_prompt(
    long_document,
    instruction="Responda a pergunta baseado no contexto",
    question="Qual é a cláusula de rescisão?",
    target_token=800,  # Reduz para 800 tokens (~40% do original)
    rank_method="longllmlingua"
)

# compressed["compressed_prompt"] tem ~800 tokens com informação essencial preservada

Outras técnicas de compressão

  • Summarization prévia: Resumir documentos extensos antes de inserir no contexto
  • Chunk selection: No RAG, retrieval mais preciso = menos chunks necessários
  • Structured data: Converter texto em tabelas JSON compactas reduz tokens
  • Instruction pruning: Revisitar system prompts longos e remover redundâncias

Calculadora de ROI

🔗 Combinando as três técnicas:
• Model routing: -60% no custo de inferência
• Semantic cache (30% hit rate): -30% nas chamadas ao modelo
• Prompt compression (40% de tokens): -40% no custo dos tokens
Resultado combinado: até 85% de redução de custo vs. GPT-4o para tudo sem otimização

Como isso se conecta

  • 14-01-03 — semantic cache é a alavanca de custo mais simples
  • 14-02-02 — modelos small (Phi family) são a opção de menor custo para edge
  • 14-03-01 — "usar GPT-4o para tudo" é anti-pattern de custo

Fontes

  1. Azure OpenAI — Pricing
  2. LLMLingua — Microsoft Research (GitHub)
  3. Azure OpenAI — Fine-tuning Guide
  4. Azure OpenAI Model Router — Tech Community