使用 GPU 计算 Hugging Face 嵌入

    本指南旨在为使用自托管 Meilisearch 实例的经验丰富的用户提供帮助。它将向你展示如何编译一个 Meilisearch 二进制文件,该文件可以使用 Nvidia GPU 生成 Hugging Face 嵌入。

    先决条件

    安装 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 二进制文件。

    配置 Hugging Face 嵌入器

    运行你新编译的二进制文件

    ./meilisearch
    

    然后将 Hugging Face 嵌入器添加到你的索引设置中

    curl \
      -X PATCH 'MEILISEARCH_URL/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 时的索引速度。