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: 2000Workflow
Typical RAG Flow
- Query Embedding: Convert user query to vector
- Vector Retrieval: Retrieve candidate documents from vector database
- Reranking: Use reranking model to sort results
- 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: 2048Best 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
Poor Ranking Results
- Increase candidate document count
- Check query quality
- Try different reranking models
Performance Issues
- Reduce candidate document count
- Use batch processing
- Implement caching strategy
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.