使用 GPU 计算 Hugging Face 嵌入
本指南面向使用自托管 Meilisearch 实例的经验丰富的用户。它向您展示如何编译一个 Meilisearch 二进制文件,该文件可以使用 Nvidia GPU 生成 Hugging Face 嵌入。
前提条件
- 一个兼容 CUDA 的 Linux 发行版
- 一个支持 CUDA 的 Nvidia GPU
- 一个现代的 Rust 编译器
安装 CUDA
按照 Nvidia 的CUDA 安装说明。
验证您的 CUDA 安装
在您的机器上安装 CUDA 后,在您的命令行终端中运行以下命令
nvcc --version | head -1
如果 CUDA 工作正常,您将看到以下响应
nvcc: NVIDIA (R) Cuda compiler driver
编译 Meilisearch
首先,克隆 Meilisearch
git clone https://github.com/meilisearch/meilisearch.git
然后,编译启用 cuda 的 Meilisearch 二进制文件
cargo build --release --features cuda
这可能需要一些时间。一旦编译器完成,您应该会有一个兼容 CUDA 的 Meilisearch 二进制文件。
启用向量搜索
运行您新编译的二进制文件
./meilisearch
接下来,启用向量存储实验功能
curl \
-X PATCH 'https://:7700/experimental-features/' \
-H 'Content-Type: application/json' \
--data-binary '{ "vectorStore": true }'
然后将 Hugging Face 嵌入器添加到您的索引设置中
curl \
-X PATCH 'https://:7700/indexes/INDEX_NAME/settings/embedders' \
-H 'Content-Type: application/json' \
--data-binary '{ "default": { "source": "huggingFace" } }'
Meilisearch 将返回一个汇总的任务对象,并将您的请求放置在任务队列中
{
"taskUid": 1,
"indexUid": "INDEX_NAME",
"status": "enqueued",
"type": "settingsUpdate",
"enqueuedAt": "2024-03-04T15:05:43.383955Z"
}
使用任务对象的 taskUid 来监控任务状态。一旦任务完成,Hugging Face 嵌入器就可以使用了。
结论
您已经了解了如何编译一个 Meilisearch 二进制文件,该文件使用您的 Nvidia GPU 来计算向量嵌入。这样做应该可以显著加快在使用 Hugging Face 时的索引速度。