Nível Técnico
5 horas 4 tópicos

📚 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
# MVP em 50 linhas from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings from langchain.chains import RetrievalQA from langchain.llms import OpenAI # Load docs, create embeddings, setup RAG embeddings = OpenAIEmbeddings() vectorstore = Chroma.from_documents(docs, embeddings) qa = RetrievalQA.from_chain_type( llm=OpenAI(), retriever=vectorstore.as_retriever(k=3) ) answer = qa.run("Sua pergunta aqui")

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
Benchmarks Enterprise: Latência p95 < 500ms • Accuracy 90%+ • Suporta 100k+ documentos • $500-1k/mês

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

Módulo Anterior Próximo Módulo