Weaviate对Hugging Face推理API的支持

作者:API传播员 · 2025-11-29 · 阅读时间:4分钟
Weaviate矢量数据库从1.15版本开始支持Hugging Face推理API,简化了机器学习模型推理在生产环境中的部署。通过text2vec-huggingface模块,用户可灵活选择预训练或自定义模型,实现自动矢量化处理,解决硬件资源闲置和共享难题,提升数据导入和查询效率。

Weaviate对Hugging Face推理API的支持

矢量数据库通过集成机器学习模型,为数据操作提供了强大的功能。从文本总结到自动标签分类,再到数据转换和矢量化,矢量数据库可以支持多种用例。这些功能的实现依赖于“机器学习模型推理(Inference)”,即通过机器学习模型处理数据并生成输出的过程,例如将一段文字总结为一句话。

然而,在生产环境中运行模型推理并非易事,主要面临以下挑战:

  • 需要昂贵的专用硬件支持。
  • 初始数据导入阶段需要大量计算资源。
  • 数据导入完成后,硬件资源可能会被闲置。
  • 与其他团队共享和分配资源存在困难。

Hugging Face推理服务的优势

为了简化推理过程,一些公司(如 Hugging Face、OpenAI 和 Cohere)提供了模型推理服务。从 Weaviate 1.15 版本开始,Weaviate 引入了 Hugging Face 模块,直接在矢量数据库中支持 Hugging Face 的推理功能。

Hugging Face 模块的优势包括:

  • 模型选择灵活:用户可以根据需求选择 Hugging Face 提供的预训练模型。
  • 支持自定义模型:如果用户有针对特定数据训练的自定义模型,可以将其上传到 Hugging Face(作为私有模块),并在 Weaviate 中使用。
  • 简化操作流程:一旦完成模式配置,Weaviate 会自动管理与 Hugging Face 的交互,用户无需额外干预。

例如,当用户将数据导入 Weaviate 时,系统会自动提取相关文本字段,发送至 Hugging Face 进行矢量化处理,并将生成的矢量与数据一起存储在数据库中。


如何在 Weaviate 中使用 Hugging Face 模块

使用 Hugging Face 模块的过程非常简单。以下是所需的准备工作:

  1. 原始数据:需要导入的数据。
  2. Hugging Face API 令牌:可以从 Hugging Face 官网申请。
  3. 启用了“text2vec-huggingface”模块的 Weaviate 实例

配置 Hugging Face 模块

在 Weaviate 中启用 Hugging Face 模块,只需将 text2vec-huggingface 设置为默认矢量器。以下是具体步骤:

  1. 启动 Weaviate 实例并定义模式。在模式定义中,为每个类配置要使用的 Hugging Face 模型。这可以通过在模式定义中添加一个名为 modelmoduleConfig 属性实现。例如:

    {
     "class": "YourClassName",
     "moduleConfig": {
       "text2vec-huggingface": {
         "model": "sentence-transformers/all-MiniLM-L6-v2"
       }
     }
    }
  2. 获取 Hugging Face API 令牌,并将其添加到 Weaviate 客户端配置中。例如,在 Python 中可以这样操作:

    import weaviate
    
    client = weaviate.Client(
       url="http://localhost:8080",
       additional_headers={
           "X-HuggingFace-Api-Key": "your-huggingface-api-key"
       }
    )
  3. 导入数据至 Weaviate。导入过程中,Weaviate 会自动与 Hugging Face 交互,完成数据的矢量化处理。


数据查询与推理

数据导入完成后,用户可以立即开始运行查询。即使在数据导入过程中,也可以并行执行查询操作。查询时,仍需使用 Hugging Face API 令牌,但可以复用同一个客户端配置。

以下是运行查询的示例代码:

result = client.query.get("YourClassName", ["property1", "property2"]).do()
print(result)

通过 Hugging Face 推理 API,Weaviate 优化了通信流程,使用户能够专注于应用程序的开发,而无需自行管理推理服务。


总结

Weaviate 对 Hugging Face 推理 API 的支持,为用户提供了高效、灵活的矢量化解决方案。通过简单的配置,用户可以轻松集成 Hugging Face 的模型推理服务,实现从数据导入到查询的全流程自动化。无论是使用预训练模型还是自定义模型,Weaviate 都能帮助用户快速构建强大的矢量数据库应用。

原文链接: https://weaviate.io/blog/hugging-face-inference-api-in-weaviate