Skip to main content
SGLang offers comprehensive support for rerank models by incorporating optimized serving frameworks with a flexible programming interface. This setup enables efficient processing of cross-encoder reranking tasks, improving the accuracy and relevance of search result ordering. SGLang’s design ensures high throughput and low latency during reranker model deployment, making it ideal for semantic-based result refinement in large-scale retrieval systems.
Rerank models in SGLang fall into two categories:
  • Cross-encoder rerank models: run with --is-embedding (embedding runner).
  • Decoder-only rerank models: run without --is-embedding and use next-token logprob scoring (yes/no).
    • Text-only (e.g. Qwen3-Reranker)
    • Multimodal (e.g. Qwen3-VL-Reranker): also supports image/video content
Some models may require --trust-remote-code.

Supported rerank models

Model Family (Rerank)Example HuggingFace IdentifierChat TemplateDescription
BGE-Reranker (BgeRerankModel)BAAI/bge-reranker-v2-m3N/ACurrently only support attention-backend triton and torch_native. High-performance cross-encoder reranker model from BAAI. Suitable for reranking search results based on semantic relevance.
Qwen3-Reranker (decoder-only yes/no)Qwen/Qwen3-Reranker-8Bexamples/chat_template/qwen3_reranker.jinjaDecoder-only reranker using next-token logprob scoring for labels (yes/no). Launch without —is-embedding.
Qwen3-VL-Reranker (multimodal yes/no)Qwen/Qwen3-VL-Reranker-2Bexamples/chat_template/qwen3_vl_reranker.jinjaMultimodal decoder-only reranker supporting text, images, and videos. Uses yes/no logprob scoring. Launch without —is-embedding.

Cross-Encoder Rerank (embedding runner)

Launch Command

Example Client Request

Request Parameters:
  • query (required): The query text to rank documents against
  • documents (required): List of documents to be ranked
  • model (required): Model to use for reranking
  • top_n (optional): Maximum number of documents to return. Defaults to returning all documents. If specified value is greater than the total number of documents, all documents will be returned.
  • return_documents (optional): Whether to return documents in the response. Defaults to True.

Qwen3-Reranker (decoder-only yes/no rerank)

Launch Command

Qwen3-Reranker uses decoder-only logprob scoring (yes/no). Do NOT launch it with --is-embedding.

Example Client Request (supports optional instruct, top_n, and return_documents)

Request Parameters:
  • query (required): The query text to rank documents against
  • documents (required): List of documents to be ranked
  • model (required): Model to use for reranking
  • instruct (optional): Instruction text for the reranker
  • top_n (optional): Maximum number of documents to return. Defaults to returning all documents. If specified value is greater than the total number of documents, all documents will be returned.
  • return_documents (optional): Whether to return documents in the response. Defaults to True.

Response Format

/v1/rerank returns a list of objects (sorted by descending score):
  • score: float, higher means more relevant
  • document: the original document string (only included when return_documents is true)
  • index: the original index in the input documents
  • meta_info: optional debug/usage info (may be present for some models)
The number of returned results is controlled by the top_n parameter. If top_n is not specified or is greater than the total number of documents, all documents are returned. Example (with return_documents: true):
Example (with return_documents: false):
Example (with top_n: 2):

Common Pitfalls

  • --chat-template is required. Without --chat-template examples/chat_template/qwen3_reranker.jinja, the server does not recognize the model as a decoder-only reranker and returns a 400 error: "This model does not appear to be an embedding model by default. Please add —is-embedding...". The fix is to add the chat template flag, NOT --is-embedding.
  • If you launch Qwen3-Reranker with --is-embedding, /v1/rerank cannot compute yes/no logprob scores. Relaunch without --is-embedding.
  • If you see a validation error like “score should be a valid number” and the backend returned a list, upgrade to a version that coerces embedding[0] into score for rerank responses.

Qwen3-VL-Reranker (multimodal decoder-only rerank)

Qwen3-VL-Reranker extends the Qwen3-Reranker to support multimodal content, allowing reranking of documents containing text, images, and videos.

Launch Command

Qwen3-VL-Reranker uses decoder-only logprob scoring (yes/no) like Qwen3-Reranker. Do NOT launch it with --is-embedding.

Text-Only Reranking (backward compatible)

Image Reranking (text query, image/mixed documents)

Multimodal Query Reranking (query with image)

Request Parameters (Multimodal)

  • query (required): Can be a string (text-only) or a list of content parts:
    • {"type": "text", "text": "..."} for text
    • {"type": "image_url", "image_url": {"url": "..."}} for images
    • {"type": "video_url", "video_url": {"url": "..."}} for videos
  • documents (required): List where each document can be a string or list of content parts (same format as query)
  • instruct (optional): Instruction text for the reranker
  • top_n (optional): Maximum number of documents to return
  • return_documents (optional): Whether to return documents in the response (default: false)

Common Pitfalls

  • Always use --chat-template examples/chat_template/qwen3_vl_reranker.jinja for Qwen3-VL-Reranker.
  • Do NOT launch with --is-embedding.
  • For best results, use --disable-radix-cache to avoid caching issues with multimodal content.
  • Note: Currently only Qwen3-VL-Reranker-2B is tested and supported. The 8B model may have different behavior and is not guaranteed to work with this template.