Embeddings & RAG: A Memória das IAs
Pergunte a um modelo de linguagem sobre o relatório interno que sua empresa publicou ontem e ele dirá algo plausível, talvez convincente, quase certamente errado. O modelo não viu esse documento: seu conhecimento congelou no fim do treino, e ele não tem onde buscar o que não sabe. A solução para esse problema repousa sobre duas ideias que se tornaram a base da IA aplicada — os embeddings e o RAG.
Este guia explica as duas, e a relação entre elas. A primeira é uma forma de representar significado como números. A segunda usa essa representação para dar ao modelo uma memória externa e fontes verificáveis. Juntas, são o que separa um chatbot genérico de um sistema que responde sobre os seus dados.
O que é um embedding
Um embedding é uma lista de números — um vetor — que representa o significado de um texto. Não os caracteres, não as palavras: o sentido. A frase "o gato dormiu no sofá" e "o felino cochilou no estofado" produzem vetores próximos, porque querem dizer quase a mesma coisa, ainda que não compartilhem quase nenhuma palavra.
A imagem útil é a de um mapa. Cada texto vira um ponto num espaço de muitas dimensões — centenas ou milhares delas. Textos com significado parecido caem perto uns dos outros; textos sobre assuntos diferentes ficam distantes. "Cachorro" e "gato" são vizinhos; "cachorro" e "regime tributário" estão em hemisférios opostos desse mapa. O guia sobre embeddings detalha como esses vetores são gerados e medidos.
Busca semântica vs. busca por palavra-chave
A busca tradicional, por palavra-chave, casa caracteres. Procure "carro veloz" e ela ignora um documento que fala em "automóvel rápido", porque as palavras não batem. É literal e cega ao sentido.
A busca semântica, construída sobre embeddings, casa significados. Ela converte sua pergunta num vetor e procura os textos cujos vetores estão mais próximos — ou seja, os mais parecidos em sentido, não em grafia. "Automóvel rápido" passa a ser uma boa resposta para "carro veloz". É essa capacidade que torna a busca por embeddings tão mais robusta para linguagem natural.
Vale a ressalva honesta: a busca por palavra-chave não morreu. Para termos exatos — um número de série, um nome próprio raro, um código — ela continua superior. Os sistemas mais sólidos hoje combinam as duas, no que se chama busca híbrida.
- Embedding: um vetor que codifica o significado de um texto.
- Espaço vetorial: o mapa onde proximidade equivale a semelhança de sentido.
- Busca semântica: encontra por significado, não por palavra literal.
- Banco vetorial: o armazém que guarda milhões de vetores e busca os vizinhos rapidamente.
Bancos vetoriais: onde os vetores moram
Gerar embeddings é fácil; encontrar, entre milhões deles, os mais próximos de uma consulta em milissegundos é o problema difícil. É para isso que existem os bancos vetoriais — bancos de dados especializados em guardar vetores e fazer a chamada busca por vizinhos mais próximos.
Comparar a consulta com cada vetor um a um seria lento demais em escala. Por isso esses bancos usam índices aproximados (o termo técnico é ANN, de approximate nearest neighbor, ou vizinho mais próximo aproximado), que trocam um pouco de precisão por muita velocidade. Nomes como Pinecone, Weaviate, Qdrant e a extensão pgvector do PostgreSQL popularizaram a categoria. Para projetos menores, uma biblioteca como FAISS rodando em memória já resolve.
O que é RAG, e por que virou padrão
RAG é a sigla de retrieval-augmented generation — geração aumentada por recuperação. A ideia é direta: antes de o modelo responder, um sistema recupera os trechos mais relevantes de uma base de documentos (usando busca semântica) e os entrega ao modelo como contexto. O LLM responde "com a fonte na mão", em vez de depender só da memória embutida no treino.
Três motivos explicam por que essa abordagem se tornou o padrão da IA corporativa:
- Conhecimento atualizável: muda-se a base de documentos, não o modelo. Adicionar o relatório de ontem é questão de indexá-lo.
- Fontes citáveis: como a resposta vem de trechos recuperados, é possível mostrar de onde ela saiu — rastreabilidade que o modelo sozinho não oferece.
- Menos invenção: ancorar a resposta em texto real reduz (sem eliminar) a tendência do modelo a alucinar.
O passo a passo de como montar um sistema desses — do recorte dos documentos à montagem do prompt — está no guia de RAG do zero.
Por que os dados decidem tudo
Há uma verdade desconfortável que o marketing de IA prefere não destacar: a qualidade de um modelo é, antes de tudo, a qualidade dos seus dados. Um LLM é uma fotografia estatística do texto que leu. Dados ruins, enviesados ou desbalanceados produzem modelos ruins, enviesados ou desbalanceados — não há arquitetura que conserte isso depois.
O mesmo vale para RAG. O sistema mais bem desenhado responde mal se a base de documentos for incompleta, desatualizada ou cheia de contradições. Embeddings não criam informação; eles organizam a que existe. Se o trecho certo não está na base, nenhuma busca semântica o inventará.
Os limites: vieses e busca imperfeita
Dois limites merecem franqueza. O primeiro é o viés: embeddings herdam os preconceitos do texto em que foram treinados. Se os dados associam certas profissões a certos gêneros, o espaço vetorial reproduzirá essa associação, e a busca semântica a propagará silenciosamente.
O segundo é a qualidade da recuperação. Num sistema RAG, a regra é implacável: recuperação ruim, resposta ruim. Se a busca traz o trecho errado, o modelo responderá com base no trecho errado — e com toda a confiança. Por isso medir e melhorar a etapa de recuperação costuma render mais do que trocar de modelo.
Perguntas Frequentes
Embedding e LLM são a mesma coisa?
Não. O LLM é o modelo que gera texto; o embedding é uma representação numérica de significado, produzida muitas vezes por um modelo menor e especializado. Eles se complementam — embeddings encontram o contexto, o LLM redige a resposta.
RAG resolve o problema da alucinação?
Reduz, não resolve. Ao ancorar a resposta em trechos reais, diminui a invenção de fatos. Mas o modelo ainda pode interpretar mal o trecho recuperado, misturar fontes ou extrapolar além do que o texto diz.
Preciso de um banco vetorial caro para começar?
Não. Para milhares ou poucas dezenas de milhares de documentos, uma biblioteca em memória ou a extensão pgvector num PostgreSQL que você já usa costuma bastar. Bancos vetoriais dedicados ganham relevância em escala e com requisitos de latência exigentes.
Por que minha busca semântica às vezes erra feio?
Geralmente por uma destas causas: os documentos foram recortados em pedaços grandes ou incoerentes demais, o modelo de embedding não é adequado ao seu idioma ou domínio, ou a base simplesmente não contém a resposta. A busca só é tão boa quanto os dados e o recorte por trás dela.
Acompanhe Dados & Embeddings no radar
Veja os papers, modelos e datasets de Dados & Embeddings em alta agora no Hugging Face.
Abrir radar de Dados & Embeddings