📚 Módulo 2.3: RAG e Knowledge Bases
Implemente sistemas de Retrieval-Augmented Generation usando vector databases e técnicas avançadas de recuperação de informação.
📚 Vector Databases (Pinecone, Weaviate, Chroma)
O que é
Vector databases são sistemas de armazenamento especializados em embeddings vetoriais de alta dimensionalidade. Diferentemente de bancos relacionais ou NoSQL tradicionais, eles utilizam índices como HNSW, IVF, ou FAISS para busca por similaridade semântica em tempo real. Pinecone (managed), Weaviate (open-source/cloud), e Chroma (local/embedded) são as principais soluções para aplicações de IA.
Por que aprender
RAG (Retrieval-Augmented Generation) está se tornando o padrão para aplicações de IA empresariais, permitindo que LLMs acessem conhecimento atualizado e específico sem fine-tuning. Vector databases são a espinha dorsal de sistemas de busca semântica, recomendação, Q&A sobre documentos privados, e chatbots empresariais. Empresas buscam profissionais com essas habilidades.
Conceitos chave
- • Vector Embeddings: Representações numéricas densas de texto, imagens ou áudio
- • Similarity Metrics: Cosine similarity, Euclidean distance, dot product
- • ANN Algorithms: Approximate Nearest Neighbor (HNSW, IVF, LSH)
- • Index Types: Flat, IVF, HNSW trade-offs de velocidade vs precisão
- • Metadata Filtering: Combinação de busca vetorial com filtros estruturados
- • Sharding e Replication: Escalabilidade horizontal para bilhões de vetores
🔍 Chunking Strategies e Retrieval
O que é
Chunking é o processo de dividir documentos longos em pedaços menores para processamento e indexação eficiente. Estratégias incluem fixed-size chunking, semantic chunking (baseado em parágrafos/tópicos), recursive splitting, e sliding window. Retrieval refere-se às técnicas para encontrar chunks mais relevantes dada uma query, incluindo dense retrieval, sparse retrieval, e métodos híbridos.
Por que aprender
A qualidade do chunking impacta diretamente a precisão de sistemas RAG. Chunks muito grandes perdem relevância semântica específica; muito pequenos perdem contexto. Estratégias inadequadas resultam em retrieval de 30-40% de precisão vs 80-90% com técnicas otimizadas. Dominar chunking e retrieval é essencial para sistemas de Q&A e busca de alta qualidade.
Conceitos chave
- • Chunk Size Optimization: Trade-offs entre 200-1000 tokens baseado no use case
- • Overlap Strategy: 10-20% de sobreposição para preservar contexto entre chunks
- • Semantic Chunking: LangChain SemanticChunker, sentence-transformers
- • Parent-Child Chunking: Hierarchical chunks para contexto multi-nível
- • Query Expansion: Reformulação de queries para melhor recall
- • Top-K Selection: Balanceamento entre relevância e diversidade de resultados
🎯 Hybrid Search e Reranking
O que é
Hybrid search combina busca vetorial (dense retrieval via embeddings) com busca lexical tradicional (sparse retrieval via BM25, TF-IDF). Reranking é uma segunda etapa que re-ordena resultados iniciais usando modelos mais sofisticados (cross-encoders) para maximizar relevância. Essa abordagem em duas etapas balanceia velocidade e precisão, alcançando state-of-the-art em retrieval.
Por que aprender
Busca puramente vetorial falha em queries com termos específicos ou nomes próprios; busca lexical falha em queries semânticas. Hybrid search oferece o melhor dos dois mundos, aumentando recall em 20-40%. Reranking melhora precision em outros 15-30%. Sistemas enterprise de alto desempenho sempre utilizam essas técnicas para resultados superiores.
Conceitos chave
- • BM25 Algorithm: Probabilistic ranking baseado em term frequency e document frequency
- • Score Fusion: Reciprocal Rank Fusion (RRF), weighted averaging para combinar scores
- • Cross-Encoders: BERT-based rerankers para scoring preciso de pares query-document
- • Cohere Rerank API: Modelos especializados de reranking como serviço
- • Multi-Stage Retrieval: Recall rápido (milhões) → Rerank preciso (top-100)
- • Diversity Boosting: Maximal Marginal Relevance (MMR) para resultados diversificados
🧪 Avaliação e Métricas de RAG
O que é
Avaliação de sistemas RAG envolve métricas objetivas e subjetivas para medir qualidade de retrieval e geração. Métricas incluem precision@k, recall@k, MRR (Mean Reciprocal Rank), NDCG (Normalized Discounted Cumulative Gain) para retrieval, e RAGAS, faithfulness, answer relevancy para geração. Frameworks como RAGAS, TruLens, e LlamaIndex avaliam sistemas end-to-end.
Por que aprender
Sem avaliação rigorosa, é impossível saber se mudanças melhoram ou pioram o sistema. Métricas permitem comparações objetivas entre diferentes estratégias de chunking, embedding models, e retrieval methods. Empresas sérias exigem evidências quantitativas de performance antes de deploy. Dominar avaliação de RAG é essencial para engenheiros de ML sênior.
Conceitos chave
- • Context Precision/Recall: Relevância dos chunks recuperados vs ground truth
- • Answer Faithfulness: Grau de hallucination vs informação nos chunks
- • Answer Relevancy: Quão bem a resposta atende à pergunta original
- • RAGAS Framework: Suite completa de métricas RAG-específicas
- • Human Evaluation: RLHF, preference scoring para fine-tuning de métricas
- • A/B Testing: Comparação estatística de sistemas em produção
🚀 RAG Implementation: Do Zero à Produção
Fase 1: MVP - Prototipação Rápida (2-4 horas)
Stack Mínimo
- • LangChain + OpenAI
- • Chroma (local, in-memory)
- • Python + Streamlit UI
- • 10-50 documentos teste
Resultados Esperados
- ✓ Q&A funcional básico
- ✓ Latência: 2-5s
- ✓ Accuracy: 60-70%
- ✓ Custo: ~$5 para testes
Fase 2: Produção - Sistema Robusto (1-2 semanas)
Stack Production-Ready
- • FastAPI + async/await
- • Pinecone/Weaviate (cloud)
- • PostgreSQL (metadata)
- • Redis (caching)
- • Celery (background jobs)
- • 1000+ documentos
Melhorias Implementadas
- ✓ Hybrid search (semantic + keyword)
- ✓ Reranking com Cohere
- ✓ Chunk optimization (overlap)
- ✓ Metadata filtering
- ✓ Source citation
300ms
Latência média
85%
Accuracy
$200
Custo/mês (10k queries)
Fase 3: Scale - Enterprise (2-4 semanas)
Otimizações Avançadas:
- • Query expansion: LLM reformula pergunta antes de buscar (↑15% accuracy)
- • Multi-query retrieval: Gera variações da query (↑20% recall)
- • Contextual compression: Remove chunks irrelevantes pós-retrieval
- • Adaptive chunking: Tamanho dinâmico baseado em tipo de documento
- • Feedback loop: Thumbs up/down melhora ranking
📊 Comparativo Completo: Vector Databases 2025
| Database | Tipo | Preço | Performance | Melhor Para |
|---|---|---|---|---|
| Pinecone | Managed | $70/mês (100k vectors) | Latência: 50-100ms | Começar rápido, zero ops |
| Weaviate | Open-source + Cloud | Grátis (self-host) / $25+/mês | Muito rápido | Controle total, multi-tenancy |
| Qdrant | Open-source + Cloud | Grátis (self-host) / $30+/mês | Ultra-rápido (Rust) | High performance, filtering avançado |
| pgvector | PostgreSQL extension | $0 (usa Postgres) | Moderado | Já usa Postgres, simplicidade |
| Chroma | Open-source (local) | Grátis | Local/small scale | Protótipos, dev local |
🥇 Para Startups
Recomendação: Pinecone
Setup em minutos, escala automática, suporte excepcional. Vale o custo para focar em produto.
🥈 Para Empresas
Recomendação: Weaviate/Qdrant
Controle, custo otimizado em escala, features enterprise (multi-tenancy, RBAC).
🥉 Para Protótipos
Recomendação: Chroma ou pgvector
Zero custo, setup instantâneo. Perfeito para validar ideia antes de investir.
✂️ Guia Definitivo: Chunking Strategies
Por que chunking importa: Chunks muito grandes = contexto irrelevante. Chunks muito pequenos = informação fragmentada. O sweet spot: 500-1000 tokens com 10-20% overlap.
Estratégias por Tipo de Documento
Documentação Técnica
Split por headers (H2/H3). Mantém estrutura lógica. 800-1200 tokens.
Contratos/Legal
Split por cláusulas. Preserva contexto legal. 600-1000 tokens.
Artigos/Blog Posts
Split por parágrafos. Overlap agressivo. 400-800 tokens.
Código
Split por funções/classes. AST-based. 200-500 tokens.
Técnicas Avançadas
Semantic Chunking
Split baseado em mudança semântica (embeddings de sentenças). Mais preciso, mais caro.
Recursive Chunking
Tenta splits maiores (sections), depois médios (paragraphs), depois pequenos (sentences).
Parent-Child Chunks
Chunks pequenos para retrieval, chunks grandes para context. Melhor de dois mundos.
🧪 Framework de Experimentação
Tamanho
Teste: 300, 500, 800, 1200 tokens
Overlap
Teste: 0%, 10%, 20%, 30%
Método
Teste: Fixed, Semantic, Recursive
Métrica
Medir: Recall, Precision, F1
Dica: Crie eval set com 50-100 perguntas + respostas esperadas. Meça accuracy de cada configuração.