Camada Zero · 39 · RAG & Evals

O LLM não conhece o seu dado e inventa com confiança. O RAG resolve buscando o trecho certo e colocando no contexto. E o eval é o que te diz se o sistema melhorou ou piorou, porque no olho, em escala, você não enxerga.
Vector store (chunks do seu dado)
Escolha uma pergunta e clique em Perguntar. Depois alterne o retrieval pra bom/ruim e veja a resposta mudar de grounded pra alucinação.
Eval set (8 perguntas de teste)
0Chunks no top-k
Score do melhor chunk
Taxa de acerto do eval
RAG = Retrieval-Augmented Generation. Você não confia na memória de treino do modelo; você recupera o trecho certo do seu dado e injeta no contexto. A qualidade do retrieval é o teto da qualidade da resposta: chunk errado dentro, bobagem confiante fora.
PeçaPapel
EmbeddingTexto vira vetor; sentido parecido fica perto (aula 37).
Vector storeGuarda os chunks embeddados pra busca por similaridade.
RetrievalAcha os top-k chunks mais próximos da query.
GeraçãoO LLM responde grounded nos chunks recuperados.
EvalPontua o sistema num conjunto fixo. Sem isso, você voa às cegas.

RAG, o esqueleto

func answer(q string) string {
    qv := embed(q)
    chunks := store.topK(qv, 3) // por cosine
    ctx := join(chunks)
    return llm.generate(prompt(ctx, q))
}

Eval loop

pass := 0
for _, t := range testset {
    got := answer(t.q)
    if judge(got, t.expected) { // LLM-as-judge ou similaridade
        pass++
    }
}
rate := float64(pass) / float64(len(testset))

🧠 Desafio · RAG & Evals

Brinque com o retrieval bom vs ruim e rode o eval set antes de responder. As duas últimas são de reflexão: escreva a sua e só então revele o modelo.