DocArray 0.20.0 发布!新增 Milvus 后端支持,更好地嵌套数据搜索,新增 RGB-D 格式的 3D 模型表示...

16a0208befb6adcb219324b8368f8f1d.png

DocArray 是一个用于处理、传输和存储多模态数据的 Python 工具包。DocArray 提供便捷的多模态数据处理功能,具备基于 Protobuf 提供高性能的网络传输性能,同时也为多种向量存储方案提供统一的 API 接口。

GitHub:github.com/docarray/docarray

文档:docarray.jina.ai

DocArray 基于 Apache 2.0 License 协议,于 2022 年 1 月正式发布,目前是 LF AI & Data 基金会的沙盒项目。同时,DocArray 也是 Jina 生态使用的通用数据结构。

本次发布新增了对 Milvus 向量数据库的支持,现在可以将 Milvus 作为 DocArray 后端存储;新增了支持在嵌套级别检索 Root document;DocArray 现已支持不同格式的 3D 模型表示,此版本新增了 RGB-D 格式表示的支持;同时新增了对 Qdrant 基于关键字的文本过滤的支持,以及支持加载多页 tiff 图像到chunk等等。

重要新功能

1. 新增 Milvus 后端存储支持

DocArray 现在支持 Milvus 向量数据库作为后端存储。Milvus 提供了高性能的向量搜索和分析功能,并支持大规模地添加、删除、更新和近乎实时的搜索向量。有了 Milvus,DocArray 可以提供更快、更准确的搜索结果。

DocArray 和 Milvus 的集成使得用户可以通过统一熟悉的 DocArray API 就能享受 Milvus 所有的优势。与其他后端存储一样,配置起来非常简单:

da = DocumentArray(storage='milvus', config={'n_dim': 3))

2. 通过 root_id 更好地支持嵌套搜索

在处理嵌套数据时,我们通常在给定的嵌套级别上比较数据,例如视频中的帧,但我们实际需要的返回结果是整个视频。

也就是说,在使用向量数据库时,即使在嵌套级别(例如在 chunk 级别)使用 sub-indices(子索引)进行搜索时,也可以检索 root-document(根文档)。在存储配置中设置root_id=True,就可以启用此功能。

top_level_matches = da.find(query=np.random.rand(512), on='@.[image]', return_root=True)3. 新增 RGB-D 格式的 3D 模型表示

3. 新增 RGB-D 格式的 3D 模型表示

DocArray 已经支持不同格式的 3D 模型表示,这个版本增加了对 RGB-D 格式表示的支持。

doc.load_uris_to_rgbd_tensor()

其它新增功能

 将多页 tiff 文件加载到 Chunk 中

现在通过load_uri_to_image_tensor()可以加载多页 tiff 图像。

d = Document(uri="foo.tiff")
d.load_uri_to_image_tensor()
print(d)
<Document ('id', 'uri', 'chunks') at 7f907d786d6c11ec840a1e008a366d49>
  └─ chunks
     ├─ <Document ('id', 'parent_id', 'granularity', 'tensor') at 7aa4c0ba66cf6c300b7f07fdcbc2fdc8>
     ├─ <Document ('id', 'parent_id', 'granularity', 'tensor') at bc94a3e3ca60352f2e4c9ab1b1bb9c22>
     └─ <Document ('id', 'parent_id', 'granularity', 'tensor') at 36fe0d1daf4442ad6461c619f8bb25b7>

 基于 Qdrant 的文本关键字过滤

filter = {
    'must': [
        {"key": "info", "match": {"text": "shoes"}}
    ]
}

results = da.find(np.random.rand(n_dim), filter=filter)

上面的代码将在所有包含 "shoes" 关键字的 Document 中进行搜索,并返回相应的结果。

 从 uri 加载视频向量时存储关键帧索引

当从 uri 加载视频向量时,会在 Document 的 tags 中存储 key_frame_indices。这样,就可以提取视频中关键帧之间的部分。

d = Document(uri="video.mp4").load_uri_to_video_tensor()
print(d.tags['keyframe_indices'])
[0, 25, 196, ...]

 更好地绘制嵌套和复杂数据的 embedding 图

您现在可以选择在调用 DocumentArray 的方法 plot_embedding()排除哪些元字段,这使得绘制复杂和嵌套数据的 embedding 图变得更加容易。

docs.plot_embeddings(exclude_fields_metas=['chunks'])

 更好地支持信息检索评估

此版本向评估函数增加了 max_rel_per_label 参数,它提供了每个标签的相关文档数,即集合中具有该标签的文档数。

metrics = da.evaluate(['recall_at_k'], max_rel_per_label={i: 1 for i in range(3)})

🐞 bug 修复

 支持独立于类列表行为的长度计算

本次发布中,我们修复了在 DocArray 0.19 版本里引入的 Redis 后端存储的长度计算,使其独立于类列表行为。

 删除有错误赋值的余弦相似度字段

在 Weaviate 的后端存储中,余弦距离不会g再被错误地分配给 cosine_similarity 字段。

 清除存储后重建索引

当调用 _clear_storage 时,就可以重建 Redis 和 Elasticsearch 文档存储的索引。

更多详细信息请点击 https://jina.ai/news/docarray-0-20-update/

📗 文档更新

这一部分主要涉及文档的改进,包括更正文档中的错误描述、修复文档中的链接、修改逻辑顺序以符合博客文章,以及将云支持移动到整合部分。这些更新旨在让文档更加清晰易读,帮助用户更好地了解 DocArray。更多详细信息请访问文档 docarray.jina.ai

🤘 贡献者

在此感谢本次发布的所有贡献者:

  • Delgermurun

  • 杨小燕

  • Anna-charlotte

  • Johannes Messner 

  • Alex Cureton-Griffiths 

  • AlaeddineAbdessalem 

  • 相栋

  • coolmian 

  • Joan Fontanals 

  • 王楠

  • Sami Jaghouar

  • Michael Günther

更多技术文章

📖 Jina AI创始人肖涵博士解读多模态AI的范式变革

🎨 语音生成图像任务|🚀 模型微调神器Finetuner

💨 DocArray + Redis:快到飞起来的推荐系统

😎 Jina AI正式将DocArray捐赠给Linux基金会

05813d1315c600a8e3636c9e4f4e7e0b.png

点击“阅读原文”,即刻了解 DocArray

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值