Jina Hub:一站式神经搜索系统组件分享平台

 Hub 是 Jina 全家桶中非常重要的一个成员,本期推文我们将详细介绍 Hub 的相关内容。

在过往推文中,我们介绍过:

  • [高度适配深度学习任务的可扩展数据结构 DocArray]()
  • [开源神经搜索框架 Jina]()
  • [神经搜索系统结果调优工具 Finetuner]()
  • [为文本和图像创建 SOTA 表征向量的 CLIP-as-service]()

今天,我们将为大家介绍 Jina 全家桶中,另一个重要成员--Jina Hub。

Hub:A Marketplace for Executors

我们知道,Document、Executor 和 Flow 是 Jina 中的三个重要概念。

d803e2de0e3b8f67cfc11bc188215021.png title=

Document:封装非结构化数据

Executor:实现神经搜索系统所需要的不同模块

Flow:将 Executor 连接起来

Document 是 Jina 中一个基础的数据类型, 可以帮助开发者方便地描述非结构化数据,相当于 Numpy 中的 ndarray 或 PyTorch 中的 Tensor。

一组 Document 构成一个 DocumentArray,开发者可以像使用 Python 原生的 list 一样使用 DocumentArray。

Executor 对应神经搜索系统中的不同模块, 实现对数据处理的核心功能。

Flow 则对应整套神经搜索系统, 将多个 Executor 连接起来,构建成一套完整的搜索系统。

在 Flow 中调用 Executor 十分简单:

from jina import Flow


f = Flow().add(uses='jinahub+docker://MyExecutor')


with f:
    ...

 title=

*Jina Hub 就是一个 Executer 分享平台,* 开发者可以在 Jina Hub,方便地与团队成员或社区伙伴,分享自己的 Executer。

54cf69dfa239d88182db9819ba19f1f7.png title=

Jina Hub 目前已有 224 个 Executor

用户可从 Data Types, Libraries, Keywords

三个维度进行筛选

通过 Hub,开发者可以直接调用先前创建的 Executor,或将自己创建的 Executor 分享给社区或团队。这会极大降低创建神经搜索系统的难度和复杂度。

4a0fa110960b64c3da20864cfd8719f7.png title=

开发者 A 的 Executor 公开发布在 Jina Hub 后

可以被开发者 B, C, D 使用

本周工程师最推荐的 Executor

推荐一: CLIPTextEncoder

CLIPTextEncoder 是一个文本编码器,它使用  Hugging Face Transformer 的 CLIP 模型,封装了文本向量功能。

它将存储在 text 属性中的 Document (文本)作为输入,并将输出的结果向量存储在 embedding 属性中。

CLIP 模型可以把图像和文本,嵌入到相同的潜在特征空间 (latent space)。对应的图像编码器是推荐二的 CLIPImageEncoder,在多模态或跨模态搜索应用中,这两个 Executor 都表现很好。

推荐二:CLIPImageEncoder

CLIPImageEncoder 是一个图像编码器,它使用 Hugging Face Transformer 的 CLIP 模型,封装了图像向量功能。

因为 CLIPImageEncoder 可以把文本和图像嵌入到同一个潜在特征空间 (latent space),所以它可以和推荐一的 CLIPTextEncoder 一起使用。

推荐三:TransformerTorchEncoder

TransformerTorchEncoder 封装了 Hugging Face Transformer 的 Torch-version,可以把文本数据编码为密集向量 (dense vector)。

TransformerTorchEncoder 接收带有 text 属性的 Documenttext属性代表要被编码的文本。该 Executor 可以把所有 text 编码成密集向量,并将其存储在 Documentembedding 属性中。

推荐四:HNSW + PostgreSQL Indexer

HNSWPostgreSQLIndexer 是一个为 Jina 神经搜索框架,量身打造的索引器 (Indexer),兼具生产就绪和高扩展特性。

它结合了 PostgreSQL 的可靠性,以及 HNSWlib 最近邻库的速度和效率。

因此 ,它可以提供数据库系统所需的任何 CRUD 操作,同时也支持迅速和可靠的向量查询。

创建并发布 Executor

在 Jina Hub 中,开发者可以创建并发布自己的 Executor,同时还支持在本地或远程使用 Executor。

创建 Executor 只需运行:

jina hub new

 title=

ccc54a0b4fb5eb3e6af0354237dcb6c5.gif title=

*发布 Executor 到 Jina Hub, 开发者可选择公开范围:*

  • Public:默认选项,任何人都可使用
  • Private:仅拥有 secret 的用户可以使用

首次发布:

jina hub push [--public/--private] <path_to_executor_folder>

 title=

af9fdccbb3da611e0c4b63ab9a322d62.gif title=

本地使用 Executor:

在项目中使用 Hub Executors 的三种方法:

  • Use as-is
  • Use in a Flow: via Docker
  • Use in a Flow: via source code

远程使用 Executor:

Jina Sandbox 支持云端下载和运行,它通过一个主机和端口来进行连接,Jina 可以自动处理这个连接。

Jina Sandbox 极大降低了试用 Executor 的时间成本,同时,还可以为本地机器节省大量计算资源。

288055d5396f8a09affd7e20193441bc.png title=

使用 Sandbox 和不使用 Sandbox 的流程对比

以上就是本期关于 Jina Hub 的全部内容,更多代码详情、使用方法、依赖环境等信息,请访问 hub.jina.ai 获取。


技术分享实录
Jina 是一个基于云原生的神经搜索框架,目前已在 GitHub 开源。 了解 Jina 及相关 Doc、Examples 请访问...

Jina 是一个基于云原生的神经搜索框架,目前已在 GitHub 开源。

16 声望
6 粉丝
0 条评论
推荐阅读
Finetuner 0.7.1版本发布!支持在之前模型基础上继续微调,新增SphereFace损失函数!
Finetuner[1] 是一个基于云端的神经搜索结果调优平台。Finetuner 简化了工作流程,处理了云端的复杂性和基础设施要求,使得神经网络的微调变得更容易,更快速,更高效。有了 Finetuner,你可以很容易地提高预训练...

JinaAI阅读 263

SegmentFault 思否宣布将接入百度「文心一言」,提升开发者获取知识的效率
作为中国领先的新一代开发者社区,我们以「凝聚集体智慧,推动技术进步」为使命,长期关注前沿技术发展及产业应用。2023 年 2 月 11 日,ChatGPT for SegmentFault 浏览器插件上线,SegmentFault 成为了国内首个...

SegmentFault思否11阅读 3k评论 1

花了半个小时基于 ChatGPT 搭建了一个微信机器人
相信大家最近被 ChatGPT 刷屏了,其实在差不多一个月前就火过一次,不会那会好像只在程序员的圈子里面火起来了,并没有被大众认知到,不知道最近是因为什么又火起来了,而且这次搞的人尽皆知。

Java极客技术12阅读 3.1k评论 3

封面图
数据结构与算法:二分查找
一、常见数据结构简单数据结构(必须理解和掌握)有序数据结构:栈、队列、链表。有序数据结构省空间(储存空间小)无序数据结构:集合、字典、散列表,无序数据结构省时间(读取时间快)复杂数据结构树、 堆图二...

白鲸鱼9阅读 5.2k

对 ChatGPT 做一次技术面试(ChatGPT 没能通过)
问:对一个系统的描述如下:系统中有大量注册用户,用户可以关注其他用户。用户可以发布消息,消息包含发布者、发布时间和可见性。消息的可见性可以是公开、不公开或仅对关注自己的用户可见。请设计这个系统的数...

捏造的信仰7阅读 1.5k评论 1

封面图
openKylin 0.9.5版本正式发布,加速国产操作系统自主创新进程!
2023年1月12日,中国桌面操作系统根社区openKylin(开放麒麟)正式发布openKylin 0.9.5操作系统版本。此版本充分适应5G时代需求,打通平板,PC等设备,实现多端融合,弥补了国产操作系统的短板,有效推动国产操作...

openKylin6阅读 7.9k

封面图
超详细的ChatGPT注册教程来了
最近一周,大家都在讨论ChatGPT,一些主流的技术社区更是将ChatGPT吹的神乎其技,那ChatGPT是什么呢?又能给我们带来哪些变化呢?。带着这些问题,我打算先注册并使用 ChatGPT,供想要体验 ChatGPT 的小伙伴们参考。

xiangzhihong3阅读 2.7k评论 3

Jina 是一个基于云原生的神经搜索框架,目前已在 GitHub 开源。

16 声望
6 粉丝
宣传栏