0Pricing
AI Agents · Aula

Recuperação multivetorial (ColBERT)

Indexe vários vetores por documento (um por token ou por parte) para obter correspondências detalhadas.

Recuperação multivetorial (ColBERT) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Um vetor não é suficiente

O RAG padrão incorpora cada trecho em um único vetor. Esse vetor calcula a média de tudo no trecho, perdendo sinais detalhados.

A recuperação com vários vetores armazena MULTIPLE vetores por documento e faz correspondências mais precisas.

Ideia do ColBERT

O ColBERT (Khattab e Zaharia, 2020) incorpora cada TOKEN do documento e cada token da consulta e, em seguida, calcula a similaridade máxima:

score(q, d) = sum over q_token in q: max over d_token in d: cos(q_token, d_token)

Por que o ColBERT supera o vetor único

  • Captura vários aspectos de um documento (um vetor não consegue)
  • Lida melhor com documentos longos
  • Oferece maior revocação para termos raros

Custo do ColBERT

Armazenar um vetor por token em vez de um por trecho:

  • Se um trecho tiver 500 tokens, isso representa 500 vezes mais armazenamento
  • Cada pesquisa compara muito mais pares

A quantização e a poda reduzem esse custo em 10 a 50 vezes, mas ele ainda é alto.

ColBERTv2

O ColBERTv2 adiciona compressão residual: os tokens são agrupados em centróides, e cada token é armazenado como (identificador do centróide, pequeno resíduo). O armazenamento diminui 50 vezes.

Executando o ColBERT

A biblioteca RAGatouille facilita esse processo:

# pip install ragatouille
from ragatouille import RAGPretrainedModel

rag = RAGPretrainedModel.from_pretrained('colbert-ir/colbertv2.0')
rag.index(collection=documents, index_name='my_corpus')

results = rag.search(query='What is the refund policy?', k=5)

Vários vetores na prática

Além do ColBERT, há outras abordagens com vários vetores:

  • Pai-filho — incorpora trechos pequenos e recupera documentos-pai grandes
  • Resumo + trechos — incorpora tanto o resumo de um documento quanto os trechos individuais
  • Perguntas hipotéticas — incorpora pares de perguntas e respostas sintetizados a partir de cada documento

Hypothetical Questions Pattern

def index_with_hypos(doc):
    # Generate 5 plausible questions this doc could answer
    questions = llm.invoke(f'Write 5 questions answered by this doc:\n{doc}').content.split('\n')
    for q in questions:
        vector_db.add(embed(q), payload={'doc': doc, 'question': q})
# Now queries that match a stored hypothetical question retrieve the doc.

Parent-Child with LangChain

from langchain.retrievers import ParentDocumentRetriever
from langchain.storage import InMemoryStore

store = InMemoryStore()
retriever = ParentDocumentRetriever(
    vectorstore=child_vectorstore,
    docstore=store,
    child_splitter=child_splitter,    # small
    parent_splitter=parent_splitter   # large
)
retriever.add_documents(documents)
# Indexes small chunks, returns large parents.

Quando usar o ColBERT

  • Pesquisas de alto risco (jurídicas, médicas)
  • Documentos longos
  • Quando o custo de armazenamento for viável

Quando não usar

  • Corpora pequenos
  • Fluxos sensíveis à latência
  • Projetos com restrições de custo

Híbrido com BM25

Para obter a máxima revocação, combine a recuperação com vários vetores com a pesquisa clássica por palavras-chave do BM25. Use a Fusão de posições recíprocas para mesclar os resultados.

Compromisso do ColBERT

Qual é o principal compromisso ao usar a recuperação com vários vetores no estilo ColBERT?

Recapitulação

Um vetor por trecho perde informações. O ColBERT armazena vetores por token para obter maior precisão. O RAGatouille facilita esse processo. Use-o quando a revocação for importante e o custo for viável.

Perguntas Frequentes

A aula “Recuperação multivetorial (ColBERT)” é grátis?

Sim — o texto completo de “Recuperação multivetorial (ColBERT)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Recuperação multivetorial (ColBERT)”?

Indexe vários vetores por documento (um por token ou por parte) para obter correspondências detalhadas. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Recuperação multivetorial (ColBERT)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Reclassificação com codificadores cruzados
  2. HyDE: embeddings de documentos hipotéticos
  3. Recuperação multivetorial (ColBERT)
  4. Avaliação de RAG (RAGAS, Recall@K)
← Voltar para AI Agents