14-03-01 — Anti-Patterns Comuns em IA Generativa
TL;DR
Os mesmos erros se repetem em implementações de IA generativa. Conhecê-los antes de cometer economiza tempo, dinheiro e reputação. Os mais caros: usar GPT-4o para tudo, RAG sem avaliação de qualidade, agentes sem guardrails, e prompts como código morto (sem versionamento).
Anti-Pattern #1: "GPT-4o para Tudo"
⚠️ Problema: Usar o modelo mais capaz (e caro) para todas as queries, independente da complexidade.
Impacto: Custo 5-10x desnecessário. Um FAQ de RH não precisa do mesmo modelo que análise jurídica complexa.
Solução: Model routing inteligente (14-02-01). 70-80% das queries em produção são simples o suficiente para GPT-4o-mini ou Phi.
Impacto: Custo 5-10x desnecessário. Um FAQ de RH não precisa do mesmo modelo que análise jurídica complexa.
Solução: Model routing inteligente (14-02-01). 70-80% das queries em produção são simples o suficiente para GPT-4o-mini ou Phi.
Anti-Pattern #2: RAG sem Avaliação
⚠️ Problema: Implantar um sistema RAG e considerar "pronto" sem medir qualidade das respostas.
Impacto: Respostas incorretas chegam a usuários. Groundedness baixa não é detectada. Quando o problema emerge, é tarde.
Solução: Pipeline de avaliação com Azure AI Evaluation SDK. Métricas mínimas: groundedness, relevance, coherence. Monitoramento contínuo em produção.
Impacto: Respostas incorretas chegam a usuários. Groundedness baixa não é detectada. Quando o problema emerge, é tarde.
Solução: Pipeline de avaliação com Azure AI Evaluation SDK. Métricas mínimas: groundedness, relevance, coherence. Monitoramento contínuo em produção.
Anti-Pattern #3: Agentes Sem Limite de Iteração
⚠️ Problema: Agente agentic sem max_iterations ou timeout. Em casos de loop infinito (tarefa impossível, ferramenta quebrada), consome tokens indefinidamente.
Impacto: Bill surpresa de $10K+ já aconteceu em produção. Sem limite, um agente pode rodar por horas.
Solução: Sempre defina max_iterations, timeout por chamada de tool, e budget_tokens máximo por sessão. Implemente circuit breaker.
Impacto: Bill surpresa de $10K+ já aconteceu em produção. Sem limite, um agente pode rodar por horas.
Solução: Sempre defina max_iterations, timeout por chamada de tool, e budget_tokens máximo por sessão. Implemente circuit breaker.
Anti-Pattern #4: Prompts sem Versionamento
⚠️ Problema: System prompts hardcoded no código, sem versionamento, sem rastreabilidade de mudanças.
Impacto: "Funcionava semana passada" mas alguém mudou o prompt em produção sem testes. Impossível fazer rollback. Debugging de regressão de semanas.
Solução: Prompts em Azure AI Foundry Prompt Catalog ou repositório de configuração com versionamento semântico. Deploy de prompt separado do deploy de código.
Impacto: "Funcionava semana passada" mas alguém mudou o prompt em produção sem testes. Impossível fazer rollback. Debugging de regressão de semanas.
Solução: Prompts em Azure AI Foundry Prompt Catalog ou repositório de configuração com versionamento semântico. Deploy de prompt separado do deploy de código.
Anti-Pattern #5: Chunking Ingênuo no RAG
⚠️ Problema: Dividir documentos por número fixo de tokens (ex: a cada 500 tokens) sem considerar estrutura semântica.
Impacto: Chunks cortam no meio de uma tabela, parágrafo ou lista. O chunk recuperado não tem contexto suficiente. Respostas incompletas ou incorretas.
Solução: Chunking semântico (por parágrafo, seção, ou usando Azure AI Document Intelligence para estrutura). Overlap entre chunks. Metadata de contexto em cada chunk.
Impacto: Chunks cortam no meio de uma tabela, parágrafo ou lista. O chunk recuperado não tem contexto suficiente. Respostas incompletas ou incorretas.
Solução: Chunking semântico (por parágrafo, seção, ou usando Azure AI Document Intelligence para estrutura). Overlap entre chunks. Metadata de contexto em cada chunk.
Anti-Pattern #6: Sem Content Safety em Aplicações Customizadas
⚠️ Problema: Aplicação que chama Azure OpenAI diretamente sem camada de Content Safety.
Impacto: Um usuário mal-intencionado consegue extrair conteúdo nocivo ou injetar comandos. O Copilot M365 tem proteção embutida — suas aplicações customizadas não têm automaticamente.
Solução: Azure AI Content Safety com Prompt Shields em toda aplicação customizada que chama LLMs.
Impacto: Um usuário mal-intencionado consegue extrair conteúdo nocivo ou injetar comandos. O Copilot M365 tem proteção embutida — suas aplicações customizadas não têm automaticamente.
Solução: Azure AI Content Safety com Prompt Shields em toda aplicação customizada que chama LLMs.
Anti-Pattern #7: Memória de Conversa Ilimitada
⚠️ Problema: Incluir o histórico completo de conversa no contexto de cada chamada ao LLM.
Impacto: Custo cresce linearmente com a duração da conversa. Uma sessão de 2h pode ter 100 turnos = 50K+ tokens de histórico em cada chamada.
Solução: Summarization progressiva da conversa (último N turnos + resumo do restante). Ou filtro de relevância (só inclui turnos relacionados à query atual).
Impacto: Custo cresce linearmente com a duração da conversa. Uma sessão de 2h pode ter 100 turnos = 50K+ tokens de histórico em cada chamada.
Solução: Summarization progressiva da conversa (último N turnos + resumo do restante). Ou filtro de relevância (só inclui turnos relacionados à query atual).
Anti-Pattern #8: Dados de Treinamento = Dados de Produção
⚠️ Problema: Usar o mesmo dataset para fine-tuning e para avaliar o modelo fine-tuned.
Impacto: Overfitting invisível. O modelo parece excelente nos benchmarks mas falha em produção com inputs ligeiramente diferentes.
Solução: Split rigoroso: 80% treino, 10% validação, 10% teste. O conjunto de teste nunca toca o treinamento.
Impacto: Overfitting invisível. O modelo parece excelente nos benchmarks mas falha em produção com inputs ligeiramente diferentes.
Solução: Split rigoroso: 80% treino, 10% validação, 10% teste. O conjunto de teste nunca toca o treinamento.
Checklist de Revisão Arquitetural
- ☐ Model routing por complexidade implementado?
- ☐ Pipeline de avaliação de qualidade automatizado?
- ☐ Agentes têm max_iterations e timeout?
- ☐ Prompts versionados fora do código?
- ☐ Chunking semântico no RAG?
- ☐ Content Safety em todas as chamadas a LLMs?
- ☐ Histórico de conversa com limite?
- ☐ Logs e observabilidade implementados?
- ☐ Secrets em Key Vault (nunca em código)?
- ☐ Rate limiting e budget de tokens por usuário?