界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

reranking-cross-encoder

reranking-cross-encoder

【开发与工程】Use for sentence-transformers CrossEncoder pair scoring, reranking, rank API usage, retrieve-and-rerank handoffs, multimodal reranker routing, and activation/softmax/num_labels pitfalls.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: reranking-cross-encoder description: "Use for sentence-transformers CrossEncoder pair scoring, reranking, rank API usage, retrieve-and-rerank handoffs, multimodal reranker routing, and activation/softmax/num_labels pitfalls." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

Reranking Cross Encoder

Use this sub-skill when the task is about scoring input pairs with CrossEncoder, reranking an already-retrieved candidate list, choosing between a reranker and a bi-encoder, or debugging CrossEncoder predict/rank outputs.

Route Here For

  • Pair scoring with CrossEncoder.predict, including single pair vs batch-of-pairs shape decisions.
  • Reranking an existing list of candidate documents with CrossEncoder.rank, top_k, return_documents, stable corpus_id handling, batching, prompts, and device placement.
  • Choosing a CrossEncoder reranker over a bi-encoder when accuracy on a limited candidate set matters more than precomputed embeddings or high-throughput first-stage retrieval.
  • Regression reranker vs pair-classification setup, especially num_labels, activation_fn, and apply_softmax behavior.
  • Multimodal reranker routing for text-image/audio/video-capable CrossEncoder checkpoints.

Route Elsewhere

  • First-stage dense retrieval, semantic_search, hard-negative mining, quantized embeddings, and vector database orchestration belong in ../retrieval-and-utilities/SKILL.md.
  • Detailed loss/evaluator/trainer selection belongs in ../evaluation-and-training/SKILL.md.
  • ONNX/OpenVINO export and backend optimization belong in ../backend-export-optimization/SKILL.md.
  • Dense SentenceTransformer.encode embeddings and similarity belong in ../embeddings-and-similarity/SKILL.md.

Fast Pattern

from sentence_transformers import CrossEncoder

model = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2")
query = "How many people live in Berlin?"
documents = [
    "Berlin had 3,520,031 registered inhabitants.",
    "Berlin is well known for its museums.",
]
results = model.rank(query, documents, top_k=2, return_documents=True)

rank returns dictionaries sorted by descending score. Each result includes corpus_id from the input documents list, score, and text when return_documents=True.

Essential References

  • API details: references/api-reference.md
  • Reranking workflows: references/workflows.md
  • Failure diagnosis: references/troubleshooting.md
  • Safe CLI smoke helper: scripts/cross_encoder_rerank_smoke.py --help

Ground Rules

  • CrossEncoders score pairs jointly; they do not create reusable document embeddings.
  • rank is for single-label rerankers (num_labels == 1); use predict for multi-class pair classifiers.
  • Preserve stable corpus IDs by reranking the exact candidate list order and mapping corpus_id back to first-stage hits.
  • For MS MARCO-style rerankers, raw logits may be unbounded; pass activation_fn=torch.nn.Sigmoid() if the downstream consumer needs 0-1 scores. Ranking order is usually unchanged by monotonic activations.
  • Do not make the reranker retrieve the whole corpus. Retrieve top candidates first, then rerank only that shortlist.
我的收藏