使用嵌入模型
文本嵌入是将文本转化为数值表示的方法,能够捕捉语义信息,使机器能够理解不同文本之间的关系和相似性。本质上,它们将文本转换为连续空间中的向量,语义相近的文本在向量空间中的位置也更接近。文本嵌入被广泛应用于自然语言处理、信息检索和推荐系统等场景中。
在本指南中,我们将演示如何在GPUStack中部署嵌入模型,并使用已部署的模型生成文本嵌入。
先决条件
在开始之前,请确保您已具备以下条件:
- gpustack已安装并正在运行。如果没有,请参考快速入门指南。
- 访问Hugging Face以下载模型文件。
步骤1:部署模型
按照以下步骤从Hugging Face部署模型:
- 在GPUStack UI中导航至
Models
页面。 - 点击
Deploy Model
按钮。 - 在下拉菜单中,选择
Hugging Face
作为您的模型来源。 - 启用
GGUF
复选框可按GGUF格式筛选模型。 - 使用左上角的搜索栏搜索模型名称
CompendiumLabs/bge-small-en-v1.5-gguf
。 - 保留所有默认设置,点击
Save
按钮部署模型。
部署完成后,您可以在Models
页面监控模型状态。
步骤2:生成API密钥
我们将使用GPUStack API生成文本嵌入,需要一个API密钥:
- 在GPUStack用户界面中导航至
API Keys
页面。 - 点击
New API Key
按钮。 - 为API密钥输入一个名称,然后点击
Save
按钮。 - 复制生成的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 }
}