Reclassificação com codificadores cruzados
Recupere as 50 melhores opções com embeddings baratos e depois reclassifique as 5 melhores com um codificador cruzado mais lento para obter maior precisão.
Reclassificação com codificadores cruzados é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 1 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.
Por que reranquear?
A similaridade entre incorporações é uma primeira etapa rápida e ampla. Ela frequentemente traz trechos que compartilham KEYWORDS com a consulta, mas que não são realmente relevantes para a QUESTION.
Um reranqueador recebe pares (consulta, trecho) e calcula uma pontuação de relevância muito mais precisa.
Codificador duplo versus codificador cruzado
Duas arquiteturas para similaridade textual:
- Codificador duplo — incorpora a consulta e o trecho separadamente e calcula o cosseno. É rápido (vetoriza uma vez e reutiliza), mas menos preciso.
- Codificador cruzado — processa (consulta, trecho) em conjunto pelo modelo. É lento (um processamento por par), mas muito mais preciso.
Recuperação em duas etapas
O padrão que combina os dois:
- O codificador duplo recupera rapidamente os 50 principais candidatos
- O codificador cruzado os reranqueia, selecionando os 5 principais
- Os 5 principais são inseridos na instrução do LLM
Você obtém a velocidade do codificador duplo e a precisão do codificador cruzado.
Usando o reranqueamento da Cohere
O codificador cruzado mais fácil de usar em produção:
import cohere
co = cohere.Client(COHERE_KEY)
results = co.rerank(
model='rerank-multilingual-v3.0',
query='What is the refund policy?',
documents=top_50_chunks,
top_n=5
)
for r in results.results:
print(r.index, r.relevance_score, top_50_chunks[r.index])Reranqueadores de código aberto
O reranqueador BGE é a principal opção de OSS:
from sentence_transformers import CrossEncoder
model = CrossEncoder('BAAI/bge-reranker-base')
pairs = [(query, chunk) for chunk in candidates]
scores = model.predict(pairs)
ranked = [c for _, c in sorted(zip(scores, candidates), reverse=True)][:5]Voyage Rerank
import voyageai
vo = voyageai.Client(api_key=VOYAGE_KEY)
res = vo.rerank(
query=query,
documents=candidates,
model='rerank-2',
top_k=5
)Quando o reranqueamento ajuda
- Listas longas de candidatos (50–200)
- Diferenças sutis de relevância
- Consultas que incluem negação ou comparação
- Casos multilíngues
Quando não ajuda
- Conjuntos de candidatos já restritos (os 5 principais do codificador duplo)
- Consultas críticas quanto à latência e de baixo risco
Compromisso de custo
Os codificadores cruzados executam uma inferência por par. Reran quear 50 candidatos significa fazer 50 chamadas ao modelo (barato com Cohere/Voyage, mas mais lento se hospedado por você).
Use de 50 a 200 candidatos para o reranqueamento; mais que isso raramente vale a pena.
Integrating into LangChain
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import CohereRerank
compressor = CohereRerank(top_n=5)
retriever = ContextualCompressionRetriever(
base_compressor=compressor,
base_retriever=vector_retriever
)Integrating into LlamaIndex
from llama_index.postprocessor.cohere_rerank import CohereRerank
rerank = CohereRerank(top_n=5)
query_engine = index.as_query_engine(
similarity_top_k=20,
node_postprocessors=[rerank]
)Reranqueamento com consciência de diversidade
Às vezes, você quer resultados diversos, não apenas os que têm maior pontuação (que podem ser quase duplicados). MMR (Relevância marginal máxima) equilibra pontuação e diversidade:
from langchain.vectorstores import Chroma
results = store.max_marginal_relevance_search(query, k=5, fetch_k=20, lambda_mult=0.5)Padrão de duas etapas
Por que usar codificador duplo + codificador cruzado em vez de apenas um deles?
Recapitulação
O codificador duplo recupera 50 itens, e o codificador cruzado os reranqueia, selecionando 5. Use Cohere ou Voyage em produção; BGE OSS se você hospedar o sistema por conta própria. Há uma melhoria significativa na precisão por um custo adicional moderado.
Perguntas Frequentes
A aula “Reclassificação com codificadores cruzados” é grátis?
Sim — o texto completo de “Reclassificação com codificadores cruzados” é 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 “Reclassificação com codificadores cruzados”?
Recupere as 50 melhores opções com embeddings baratos e depois reclassifique as 5 melhores com um codificador cruzado mais lento para obter maior precisão. 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 1 de 4.
Quanto tempo leva a aula “Reclassificação com codificadores cruzados”?
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
- Reclassificação com codificadores cruzados
- HyDE: embeddings de documentos hipotéticos
- Recuperação multivetorial (ColBERT)
- Avaliação de RAG (RAGAS, Recall@K)