使用 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 二进制文件。
启用 vector search
运行刚编译好的二进制文件
./meilisearch
接下来,启用 vector store 实验性功能
curl \
-X PATCH 'https://127.0.0.1:7700/experimental-features/' \
-H 'Content-Type: application/json' \
--data-binary '{ "vectorStore": true }'
然后将 Hugging Face embedder 添加到你的索引设置
curl \
-X PATCH 'https://127.0.0.1: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 embedder 将在你完成任务后即可使用。
结论
你已了解如何编译一个使用 Nvidia GPU 来计算 vector 嵌入的 Meilisearch 二进制文件。此操作在使用 Hugging Face 时应会显著加快索引速度。