DocArray|DocArray x Weaviate | 打造高效的云端数据存储
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 云服务实例
想要在后端使用 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 实例。
入门级教程演示 【DocArray|DocArray x Weaviate | 打造高效的云端数据存储】学习本教程,你将了解:
- 创建 Weaviate 本地实例,存储 Document
- 创建一个简单的文本搜索系统
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
推荐阅读
- 华为云GaussDB(用分布式计算和存算分离的集合力量打造云原生数据库)
- 别再写垃圾代码了(试试阿里巴巴 Java 开发插件,打造你的团队专属风格。。。)
- Vue3+Nuxt3打造SSR网站应用,0到1实现服务端渲染吾爱fen享受
- 基于华为云会议SDK 24行代码打造企业专属会议室
- 区块链|FBEC2020 | 贾瑶琪(打造区块链项目最好的方式,是打造开源的系统)
- 人工智能|优麒麟(打造全球最好用的Linux开源操作系统)
- 华为云会议SmartRooms,打造全场景云端协同智能会议室
- iuap 助力长久汽车打造“业财一体数字智能化平台”
- iuap助力澳洋集团打造主数据管理平台
- Spring Boot + Prometheus + Grafana 打造可视化监控,一目了然!