Apresentação
📚 RAG — Essencial para Nutrium
Porquê crítico: Nutrium pode usar RAG para perguntas sobre nutrição, guidelines, documentação interna — sempre com respostas fundamentadas em fontes verificáveis.
O que é RAG
Query → Embedding → Vector Search → Documentos relevantes → Contexto no prompt → LLM gera resposta fundamentada.
Vantagens: Reduz hallucinations, mantém conhecimento atualizado, não precisa de fine-tuning para novo conteúdo.
Pipeline de ingestão
Documentos (PDFs, guidelines, docs) → Chunking → Embeddings → Vector DB
Chunking: Semantic chunking (por parágrafo/tópico) vs fixed size. Para nutrição: chunking por conceito (ex: "diabetes e hidratos") pode ser melhor.
Pipeline de query
Pergunta → Embedding → Similarity search (top-k) → Reranking (opcional) → Construção de contexto → LLM
Hybrid search: BM25 + embeddings para queries com termos técnicos (ex: "hipoglicemia").
Reranking: Cross-encoder ou modelo específico para ordenar resultados por relevância real.
Groundedness (crítico em saúde)
O quê: Resposta deve estar fundamentada nos documentos recuperados. Nada inventado.
Como garantir:
- Instruções claras no prompt: "Responde só com base no contexto. Se não souberes, diz que não sabes."
- Verificação pós-geração: NLI (Natural Language Inference) para checar se a resposta está entailment do contexto
- Citação de fontes: "Segundo [doc X], ..."
- Evitar extrapolação: se o contexto não cobre, o modelo deve recusar
Métricas de avaliação
- Relevância: Os retrieved docs são relevantes para a query?
- Groundedness: A resposta está fundamentada no contexto?
- Faithfulness: Nada foi inventado?
- Safety: A resposta é segura em contexto de saúde? (não recomendar algo perigoso)
Frase que impressiona
"Em contexto de nutrição, groundedness não é opcional — uma recomendação errada pode ter consequências. Por isso, no RAG que desenhei, incluí verificação de entailment e instruções explícitas para o modelo recusar quando o contexto não cobre a pergunta."
Zona de prática
Sem perguntas. Clica em Editar para adicionar.
Desafios de código
Chunking com overlap (Python)
Implementa uma função que divide texto em chunks de tamanho fixo com overlap entre chunks.
Prompt para RAG com groundedness
Escreve um template de prompt que instrua o LLM a responder só com base no contexto e a recusar quando não souber.