跳至内容

使用嵌入模型

文本嵌入是将文本转化为数值表示的方法,能够捕捉语义信息,使机器能够理解不同文本之间的关系和相似性。本质上,它们将文本转换为连续空间中的向量,语义相近的文本在向量空间中的位置也更接近。文本嵌入被广泛应用于自然语言处理、信息检索和推荐系统等场景中。

在本指南中,我们将演示如何在GPUStack中部署嵌入模型,并使用已部署的模型生成文本嵌入。

先决条件

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

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

步骤1:部署模型

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

  1. 在GPUStack UI中导航至Models页面。
  2. 点击Deploy Model按钮。
  3. 在下拉菜单中,选择 Hugging Face 作为您的模型来源。
  4. 启用GGUF复选框可按GGUF格式筛选模型。
  5. 使用左上角的搜索栏搜索模型名称 CompendiumLabs/bge-small-en-v1.5-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-openai/embeddings \
  -H "Authorization: Bearer $GPUSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "The food was delicious and the waiter...",
    "model": "bge-small-en-v1.5",
    "encoding_format": "float"
  }'

<your-server-url> 替换为您的 GPUStack 服务器 URL,并将 <your-api-key> 替换为在上一步中生成的 API 密钥。

示例响应:

{
  "data": [
    {
      "embedding": [
        -0.012189436703920364, 0.016934078186750412, 0.003965042531490326,
        -0.03453584015369415, -0.07623119652271271, -0.007116147316992283,
        0.11278388649225235, 0.019714849069714546, 0.010370955802500248,
        -0.04219457507133484, -0.029902394860982895, 0.01122555136680603,
        0.022912170737981796, 0.031186765059828758, 0.006303929258137941,
        # ... additional values
      ],
      "index": 0,
      "object": "embedding"
    }
  ],
  "model": "bge-small-en-v1.5",
  "object": "list",
  "usage": { "prompt_tokens": 12, "total_tokens": 12 }
}