Skip to content

Reranking Role

The reranking role is specialized for reordering search results, improving retrieval system accuracy and relevance.

Configuration

Configure in config.yaml or ~/.bytebuddy/config.yaml:

yaml
models:
  - name: "rerank-model"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Core Features

Result Reordering

  • Relevance Scoring: Calculate query-document relevance
  • Intelligent Sorting: Reorder based on semantic understanding
  • Precise Matching: Improve ranking of most relevant results
  • Quality Optimization: Enhance search result quality

Application Scenarios

  • Semantic Search: Improve search accuracy
  • RAG Systems: Optimize retrieval quality
  • Recommendation Systems: Improve recommendation ranking
  • Q&A Systems: Enhance answer relevance

Reranking Model Configurations

Cohere Reranking

yaml
models:
  - name: "cohere-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Multilingual Reranking

yaml
models:
  - name: "multilingual-rerank"
    provider: "cohere"
    model: "rerank-multilingual-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Specialized Reranking

yaml
models:
  - name: "specialized-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Use Case Configurations

Code Search Reranking

yaml
models:
  - name: "code-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Document Retrieval Reranking

yaml
models:
  - name: "doc-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

RAG System Reranking

yaml
models:
  - name: "rag-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Complete RAG Configuration Example

yaml
models:
  # Embedding model
  - name: "embed-model"
    provider: "openai"
    model: "text-embedding-3-large"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["embed"]

  # Reranking model
  - name: "rerank-model"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

  # Generation model
  - name: "chat-model"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

Workflow

Typical RAG Flow

  1. Query Embedding: Convert user query to vector
  2. Vector Retrieval: Retrieve candidate documents from vector database
  3. Reranking: Use reranking model to sort results
  4. Generate Answer: Generate response based on sorted results

Example Configuration

yaml
models:
  # Steps 1 & 2: Embedding and retrieval
  - name: "retrieval-embed"
    provider: "openai"
    model: "text-embedding-3-large"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["embed"]

  # Step 3: Reranking
  - name: "result-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

  # Step 4: Generation
  - name: "answer-generator"
    provider: "anthropic"
    model: "claude-3-sonnet"
    apiKey: "${ANTHROPIC_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.5
      maxTokens: 2048

Best Practices

1. Candidate Document Count

  • Initial Retrieval: 20-100 candidate documents
  • After Reranking: Select top 3-10 results
  • Balance: Quality and performance

2. Reranking Strategy

  • Use after vector retrieval
  • Handle semantically similar but irrelevant results
  • Boost exact match rankings

3. Performance Optimization

  • Limit candidate document count
  • Use batch processing
  • Cache reranking results

4. Quality Control

  • Set relevance thresholds
  • Monitor reranking effectiveness
  • A/B test different strategies

Evaluation Metrics

Relevance Metrics

  • MRR (Mean Reciprocal Rank): Average reciprocal rank
  • NDCG (Normalized Discounted Cumulative Gain): Normalized discounted cumulative gain
  • Precision@K: Precision of top K results
  • Recall@K: Recall of top K results

Troubleshooting

Common Issues

  1. Poor Ranking Results

    • Increase candidate document count
    • Check query quality
    • Try different reranking models
  2. Performance Issues

    • Reduce candidate document count
    • Use batch processing
    • Implement caching strategy
  3. High Costs

    • Optimize candidate document count
    • Use only for critical queries
    • Set usage limits

Comparison with Embeddings

Embedding Models

  • Convert text to vectors
  • Used for fast retrieval
  • Lower cost
  • Medium precision

Reranking Models

  • Evaluate query-document relevance
  • Used for fine-grained sorting
  • Higher cost
  • Higher precision

Combined Usage

yaml
models:
  # Stage 1: Fast retrieval (embedding)
  - name: "fast-retrieval"
    provider: "openai"
    model: "text-embedding-3-small"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["embed"]

  # Stage 2: Accurate ranking (reranking)
  - name: "accurate-ranking"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

Environment Variables

bash
# ~/.bashrc or ~/.zshrc
export COHERE_API_KEY="your-cohere-api-key"
export OPENAI_API_KEY="your-openai-api-key"

Through proper reranking role configuration, you can significantly improve retrieval system accuracy and user experience.