Weaviate 作为 DocArray 中的 Document Store,能够使得 Document 在云端的解决和检索更加迅速。

DocArray & Weaviate 大起底

DocArray: Data structure for unstructured data

DocArray 是一种可扩大数据结构,完满适配深度学习工作,次要用于嵌套及非结构化数据的传输, 反对的数据类型包含文本、图像、音频、视频、3D mesh 等。

与其余数据结构相比:

✅ 示意齐全反对,✔ 示意局部反对,❌ 示意不反对

利用 DocArray,深度学习工程师能够借助 Pythonic API,无效地解决、嵌入、搜寻、举荐、存储和传输数据。

Weaviate:开源的向量搜索引擎

Weaviate 是一个开源的向量搜索引擎,能够同时存储对象和向量,将向量搜寻和结构化过滤 (structured filtering) 相结合, 从而创立一个持重、故障答应 (fault-tolerant) 的搜索引擎。

同时,Weaviate 还提供开箱即用的云存储基础设施--Weaviate 集群服务 (Weaviate Cluster Service)。

Jina + Weaviate=?

Jina + Weaviate,能碰撞出怎么的火花?

通过 Weaviate 创立云存储实例的办法包含两种:

  • 本地启动 Weaviate 实例
  • 创立 Weaviate 云服务实例

1、本地启动 Weaviate 实例

想要在后端应用 Weaviate 存储服务,须要启动一个全新的 Weaviate 实例。能够通过创立 docker-compose.yml 实现,具体如下:

---version: '3.4'services:  weaviate:    command:      - --host      - 0.0.0.0      - --port      - '8080'      - --scheme      - http    image: semitechnologies/weaviate:1.11.0    ports:      - "8080:8080"    restart: on-failure:0    environment:      QUERY_DEFAULTS_LIMIT: 25      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'      DEFAULT_VECTORIZER_MODULE: 'none'      ENABLE_MODULES: ''      CLUSTER_HOSTNAME: 'node1'...

创立胜利后,就能够运行 docker compose 启动实例。

2、创立 Weaviate 云服务实例

你能够借助 Weaviate 云服务 (Weaviate Cloud Service) 收费创立 Weaviate 实例。

注册并创立新实例请拜访 Here。

观看本视频,手把手教你创立 Weaviate 实例。

入门级教程演示

学习本教程,你将理解:

  • 创立 Weaviate 本地实例,存储 Document
  • 创立一个简略的文本搜寻零碎

1、启动 Weaviate 服务,并创立一个 DocumentArray 数组实例

from docarray import DocumentArrayda = DocumentArray(    storage="weaviate", config={"name": "Persisted", "host": "localhost", "port": 8080})

2、索引 Documents

da.extend(    [        Document(text="Persist Documents with Weaviate."),        Document(text="And enjoy fast nearest neighbor search."),        Document(text="All while using DocArray API."),    ])

3、用 BERT 模型生成向量

from transformers import AutoModel, AutoTokenizertokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")model = AutoModel.from_pretrained("bert-base-uncased")def collate_fn(da):    return tokenizer(da.texts, return_tensors="pt", truncation=True, padding=True)da.embed(model, collate_fn=collate_fn)

4、查问索引 Documents 并失去后果

results = da.find(    DocumentArray([Document(text="How to persist Documents")]).embed(        model, collate_fn=collate_fn    ),    limit=1,)print(results[0].text)

Output:Persist Documents with Weaviate.

两大神器打造H&M以图搜图零碎

整合 DocArray 和 Weaviate,能够更轻松地搭建一个以图搜图的零碎。

GitHub Repo 详见:Here

DocArray 与向量数据库 Qdrant,又能擦出怎么的火花?关注咱们,答案下期揭晓!

相干链接:

GitHub Repo

DocArray Documentation

Jina's Learning Bootcamp

Weaviate's Documentation