O reranking é a etapa de maior ROI em um pipeline de RAG: recupere cinquenta candidatos, reranqueie, mantenha os cinco melhores para o LLM — e tanto a precisão quanto o custo melhoram. O problema, porém, era prático: rerankers de uso geral tropeçam em textos jurídicos, conteúdo médico e JSON estruturado, e a latência explode conforme a lista de candidatos cresce.
O jina-reranker-v3.5, recém-lançado como open-source pela Jina AI, ataca os três pontos ao mesmo tempo: 0.6B de parâmetros, uma pontuação BEIR de 63.20 que supera o Qwen3-Reranker-4B, 7× maior (62.28), inferência até 56% mais rápida em listas longas de documentos e um ganho de 24.8% na pontuação de dados estruturados. Os pesos estão totalmente abertos no Hugging Face e no ModelScope. Este guia coloca todos os quatro caminhos de integração para rodar em dez minutos.
A Ideia Central: Três Decisões de Engenharia
O v3.5 é construído sobre o Qwen3-0.6B com 28 camadas e mantém a arquitetura listwise LBNL (Last-but-Not-Late) — uma única passagem forward sobre todo o lote de candidatos em vez de comparações par a par. Três decisões o tornam viável em produção:
1. Atenção híbrida 3L2G. A maioria das camadas usa atenção em janela deslizante (janela de tamanho 1024), reduzindo a complexidade computacional de quadrática para linear. Camadas periódicas de atenção global preservam a visão geral, e a última camada é forçada a ser totalmente global, para que a passagem final de pontuação veja todo o conjunto de candidatos. É daí que vem o speedup de 1.22×–1.56× em listas longas.
2. Dados para os pontos fracos. Para texto jurídico, a equipe incorporou o EUR-Lex e o corpus de jurisprudência AILA; grandes volumes de negativos difíceis gerados por LLM forçam o modelo a distinguir jurisdições e áreas de atuação. Para dados estruturados, uma estratégia de Struct-IR perturba deliberadamente campos de preço e especificação dentro do JSON, ensinando ao modelo lógica de restrições — “o preço deve estar entre 100 e 200” — em vez de correspondência literal de strings.
3. Auto-dstilagem em três estágios. Primeiro treina-se um professor com atenção total, depois adapta-se o caminho de atenção para o aluno 3L2G e, por fim, executa-se uma destilação multidimensional — divergência de KL mais MSE dos estados ocultos — para que a qualidade do ranking seja transferida integralmente para o aluno acelerado.
A economia é a manchete silenciosa aqui. Os rerankers ficam inline em cada consulta, então seu custo de serviço se acumula com o tráfego de uma forma que não acontece com um modelo de embedding — e é exatamente por isso que o campo continuou tolerando rerankers pesados da classe 4B, com suas contas de latência. Um modelo de 0.6B que os supera muda o cálculo padrão: você pode reranquear listas de candidatos mais profundas, reranquear em todas as requisições em vez de amostrar, ou rodar o reranker em hardware mais barato — tudo isso elevando a qualidade em vez de reduzi-la. Some a isso os pesos abertos e os quatro caminhos de implantação abaixo, e o v3.5 parece menos um lançamento de modelo e mais um novo patamar para quanto a etapa de rerank deveria custar.
Caminho 1: Carregar Diretamente com Transformers (Mais Rápido)
Uma linha para carregar, com trust_remote_code habilitado:
from transformers import AutoModel
# Load the model (~0.6B, runs on consumer GPUs)
model = AutoModel.from_pretrained(
"jinaai/jina-reranker-v3.5",
trust_remote_code=True
)
# LBNL listwise interface: query + a batch of candidates, one forward pass
query = "organic chemistry reaction mechanisms"
documents = [
"SN2 nucleophilic substitution mechanism explained",
"How to bake sourdough bread",
"A study of palladium-catalyzed cross-coupling mechanisms",
]
scores = model.rerank(query, documents)
for doc, score in zip(documents, scores):
print(f"{score:.4f} {doc}")
# Sort by score to get your final top-k
Fique atento ao nome do modelo: o v3.5 é jina-reranker-v3.5, não o v3.
Caminho 2: A API da Jina (Implantação Zero)
Se você preferir dispensar os pesos por completo, chame a API. Usuários existentes do v3 precisam apenas trocar o nome do modelo — a lógica do código permanece idêntica:
curl https://api.jina.ai/v1/rerank \
-H "Authorization: Bearer $JINA_API_KEY" \
-d '{
"model": "jina-reranker-v3.5",
"query": "organic chemistry reaction mechanisms",
"documents": [
"SN2 nucleophilic substitution mechanism...",
"How to bake sourdough bread...",
"Palladium-catalyzed cross-coupling..."
]
}'
Caminho 3: Implantação Auto-Hospedada (Docker)
Para ambientes isolados da internet ou com dados regulados, o jina-on-prem implanta o serviço completo de reranking em um único comando:
# jina-on-prem ships the complete rerank service for Docker
git clone https://github.com/jina-ai/jina-on-prem
cd jina-on-prem
# After configuring the model to jina-reranker-v3.5 per the README:
docker compose up -d
Caminho 4: Integração com Elasticsearch (Busca Híbrida)
Por meio do Elastic Inference Service (EIS), registre o v3.5 como um retriever text_similarity_reranker e insira-o direto em um pipeline de busca híbrida do ES — recall grosseiro com BM25 mais ranking fino com o v3.5 é a combinação que a maioria dos sistemas em produção usa hoje.
A Jina também publica builds GGUF quantizados e MLX: usuários de Apple Silicon podem rodar inferência MLX diretamente, e servidores com memória limitada podem reduzir ainda mais o footprint com quantização GGUF.
Orientação Prática
-
Quando um reranker se paga: profundidades de recall além do top-50, ou domínios documentais verticais (jurídico, financeiro, médico). Não tenha pressa em adicionar um em configurações simples — rerankers têm seu próprio custo de latência.
-
Dados estruturados são o maior ganho. Cenários com restrições por campo, como triagem de currículos e busca de produtos, recebem o ganho completo de 24.8%, com Recall@5 já equiparando o modelo de 4B — migre esses pipelines primeiro.
-
Planeje listas longas com cuidado. A atenção híbrida acelera mais os documentos longos (56% medidos em torno de 1.900 tokens), mas a informação fora da janela depende das camadas globais — para listas muito longas, siga a estratégia oficial de chunking.
-
Espaço para fine-tuning. Com 0.6B, a adaptação via LoRA é barata. Domínios verticais podem continuar treinando sobre os pesos abertos a uma fração do custo de construir um reranker do zero.
-
Meça antes e depois. Coloque o reranker atrás de um feature flag e acompanhe Recall@5, latência ponta a ponta e qualidade das respostas por uma semana com tráfego real. O delta do BEIR só importa se sobreviver ao contato com as suas próprias consultas — e o flag torna o rollback uma linha de código caso não sobreviva.
Recursos
-
Pesos: Hugging Face | ModelScope
-
Relatório técnico: arXiv:2607.18152
-
Documentação da API: jina.ai/reranker
-
Implantação auto-hospedada: github.com/jina-ai/jina-on-prem
-
Post oficial de engenharia: Elastic Search Labs