重排角色
“重排模型”经过训练,能够接收两段文本(通常是用户问题和文档),并返回一个介于 0 到 1 之间的相关性得分,评估文档在回答问题方面的有用程度。与 LLM 相比,重排模型通常小得多,速度极快且成本低廉。
在 Continue 中,重排器使用 rerank
角色指定,并由 @Codebase 使用,以便在向量搜索后选择最相关的代码片段。
推荐的重排模型
如果您可以使用任何模型,我们推荐 Voyage AI 的 rerank-2
模型,该模型与重排器的其余选项一起列在下方。
Voyage AI
Voyage AI 通过其 rerank-2
模型提供最好的代码重排模型。从这里获取 API 密钥后,您可以按如下方式配置重排器
- Hub
- YAML
- JSON
config.yaml
models:
- name: My Voyage Reranker
provider: voyage
apiKey: <YOUR_VOYAGE_API_KEY>
model: rerank-2
roles:
- rerank
config.json
{
"reranker": {
"name": "voyage",
"params": {
"model": "rerank-2",
"apiKey": "<YOUR_VOYAGE_API_KEY>"
}
}
}
Cohere
有关重排器的 Cohere 文档,请参见此处。
- YAML
- JSON
config.yaml
models:
- name: Cohere Reranker
provider: cohere
model: rerank-english-v3.0
apiKey: <YOUR_COHERE_API_KEY>
roles:
- rerank
config.json
{
"reranker": {
"name": "cohere",
"params": {
"model": "rerank-english-v3.0",
"apiKey": "<YOUR_COHERE_API_KEY>"
}
}
}
LLM
如果您只能访问单个 LLM,则可以将其用作重排器。除非真正必要,否则不建议这样做,因为它比专门为此任务训练的任何上述模型都要昂贵得多,而且准确性仍然较低。请注意,如果您使用的是本地模型(例如 Ollama),这将不起作用,因为需要发出太多并行请求。
- YAML
- JSON
config.yaml
models:
- name: LLM Reranker
provider: openai
model: gpt-4o
roles:
- rerank
config.json
{
"reranker": {
"name": "llm",
"params": {
"modelTitle": "My Model Title"
}
}
}
"modelTitle"
字段必须与 config.json 中 "models" 数组中的一个模型匹配。
Text Embeddings Inference
Hugging Face Text Embeddings Inference 使您能够托管自己的重排器端点。您可以按如下方式配置重排器
- YAML
- JSON
config.yaml
models:
- name: Huggingface-tei Reranker
provider: huggingface-tei
apiBase: http://localhost:8080
apiKey: <YOUR_TEI_API_KEY>
roles:
- rerank
config.json
{
"reranker": {
"name": "huggingface-tei",
"params": {
"apiBase": "http://localhost:8080",
"apiKey": "<YOUR_TEI_API_KEY>"
}
}
}