weavaite向量库可以集成第三方托管的模型,这使得开发体验得到了增强,例如
1、将对象直接导入Weaviate,无需手动指定嵌入(Embedding)
2、使用生成式AI模型(LLM)构建集成检索增强生成(RAG)管道
同时weaviate也可以与Transformers库无缝集成,允许用户直接在Weaviate数据库中利用兼容的模型。这些集成使开发人员能够轻松构建复杂的人工智能驱动应用程序
本文重点讨论通过本地模型文件(词嵌入模型gte-large-zh)来构建自定义Transformers模型镜像,通过与weaviate模块集成赋予weaviate文本嵌入功能。
构建自定义Transformers模型镜像
创建 Dockerfile 并下载模型
# 用于构建词嵌入模型镜像的基础镜像
FROM semitechnologies/transformers-inference:custom
# 将本地词嵌入模型放到当前目录下(my-model) /app/models/model是词嵌入镜像生成后的位置
# 不要修改/app/model/model,因为这是weaviate应用程序指定的模型路径
COPY ./my-model /app/models/model
构建并标记 Dockerfile
docker build -f my-inference-image.Dockerfile -t my-inference-image .
在 Weaviate 实例中使用该镜像
配置docker-compose.yml文件
version: '3.4'
services:
weaviate:
command:
- --host
- 0.0.0.0
- --port
- '8080'
- --scheme
- http
image: cr.weaviate.io/semitechnologies/weaviate:1.24.8
ports:
- 8087:8080
- 50052:50051
t2v-transformers:
image: gte-large-zh
ports:
- "9090:8080"
environment:
ENABLE_CUDA: '1'
NVIDIA_VISIBLE_DEVICES: 'all'# nvidia GPU支持配置
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
设置ENABLE_CUDA= '1',表示启用GPU,如果要启用GPU需要提供对gpu支持的容器。
前提条件
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.16.0 documentation