共计 2261 个字符,预计需要花费 6 分钟才能阅读完成。
Hub 是 Jina 全家桶中十分重要的一个成员,本期推文咱们将具体介绍 Hub 的相干内容。
在过往推文中,咱们介绍过:
- [ 高度适配深度学习工作的可扩大数据结构 DocArray]()
- [ 开源神经搜寻框架 Jina]()
- [ 神经搜寻零碎后果调优工具 Finetuner]()
- [ 为文本和图像创立 SOTA 表征向量的 CLIP-as-service]()
明天,咱们将为大家介绍 Jina 全家桶中, 另一个重要成员 –Jina Hub。
Hub:A Marketplace for Executors
咱们晓得,Document、Executor 和 Flow 是 Jina 中的三个重要概念。
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:
...
*Jina Hub 就是一个 Executer 分享平台,* 开发者能够在 Jina Hub,不便地与团队成员或社区搭档,分享本人的 Executer。
Jina Hub 目前已有 224 个 Executor
用户可从 Data Types, Libraries, Keywords
三个维度进行筛选
通过 Hub,开发者能够间接调用先前创立的 Executor,或将本人创立的 Executor 分享给社区或团队。 这会极大升高创立神经搜寻零碎的难度和复杂度。
开发者 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 属性的 Document。text 属性代表要被编码的文本。该 Executor 能够把所有 text 编码成密集向量,并将其存储在 Document 的 embedding 属性中。
举荐四:HNSW + PostgreSQL Indexer
HNSWPostgreSQLIndexer 是一个为 Jina 神经搜寻框架,量身打造的索引器 (Indexer),兼具生产就绪和高扩大个性。
它联合了 PostgreSQL 的可靠性,以及 HNSWlib 最近邻库的速度和效率。
因而 ,它能够提供数据库系统所需的任何 CRUD 操作,同时也反对迅速和牢靠的向量查问。
创立并公布 Executor
在 Jina Hub 中,开发者能够创立并公布本人的 Executor,同时还反对在本地或近程应用 Executor。
创立 Executor 只需运行:
jina hub new
* 公布 Executor 到 Jina Hub, 开发者可抉择公开范畴:*
- Public:默认选项,任何人都可应用
- Private:仅领有 secret 的用户能够应用
首次公布:
jina hub push [--public/--private] <path_to_executor_folder>
本地应用 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 的工夫老本,同时,还能够为本地机器节俭大量计算资源。
应用 Sandbox 和不应用 Sandbox 的流程比照
以上就是本期对于 Jina Hub 的全部内容,更多代码详情、应用办法、依赖环境等信息,请拜访 hub.jina.ai 获取。