跳至内容

使用重排序模型

重排序模型(Reranker Models)是专门设计用于根据与给定查询的相关性来优化项目列表排序的模型。它们通常应用于信息检索和搜索系统中,用于优化初始搜索结果,优先排列更可能满足用户意图的项目。重排序模型接收初始文档列表并重新排序项目,以提升在搜索引擎、推荐系统和问答任务等应用中的精确度。

在本指南中,我们将演示如何在GPUStack中部署和使用reranker模型。

先决条件

在开始之前,请确保您已具备以下条件:

  • gpustack已安装并正在运行。如果没有,请参考快速入门指南
  • 访问Hugging Face以下载模型文件。

步骤1:部署模型

按照以下步骤从Hugging Face部署模型:

  1. 在GPUStack UI中导航至Models页面。
  2. 点击Deploy Model按钮。
  3. 在下拉菜单中,选择 Hugging Face 作为您的模型来源。
  4. 启用GGUF复选框可按GGUF格式筛选模型。
  5. 使用左上角的搜索栏搜索模型名称 gpustack/bge-reranker-v2-m3-GGUF
  6. 保留所有默认设置,点击Save按钮部署模型。

Deploy Model

部署完成后,您可以在Models页面监控模型状态。

Model List

步骤2:生成API密钥

我们将使用GPUStack API与模型进行交互。为此,您需要生成一个API密钥:

  1. 在GPUStack用户界面中导航至API Keys页面。
  2. 点击New API Key按钮。
  3. 为API密钥输入一个名称,然后点击Save按钮。
  4. 复制生成的API密钥。该密钥仅能查看一次,请务必妥善保存。

步骤3:重新排序

在模型部署完成并获得API密钥后,您可以通过GPUStack API对文档列表进行重新排序。以下是使用curl的示例脚本:

export SERVER_URL=<your-server-url>
export GPUSTACK_API_KEY=<your-api-key>
curl $SERVER_URL/v1/rerank \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $GPUSTACK_API_KEY" \
    -d '{
        "model": "bge-reranker-v2-m3",
        "query": "What is a panda?",
        "top_n": 3,
        "documents": [
            "hi",
            "it is a bear",
            "The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China."
        ]
    }' | jq

替换为您的 GPUStack 服务器 URL,并将 替换为在上一步中生成的 API 密钥。

示例响应:

{
  "model": "bge-reranker-v2-m3",
  "object": "list",
  "results": [
    {
      "document": {
        "text": "The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China."
      },
      "index": 2,
      "relevance_score": 1.951932668685913
    },
    {
      "document": {
        "text": "it is a bear"
      },
      "index": 1,
      "relevance_score": -3.7347371578216553
    },
    {
      "document": {
        "text": "hi"
      },
      "index": 0,
      "relevance_score": -6.157620906829834
    }
  ],
  "usage": {
    "prompt_tokens": 69,
    "total_tokens": 69
  }
}