CLIP-as-service 0.8.0 版本发布:新增支持大型 ONNX 模型文件
CLIP-as-service 是一种用于编码图像和文本的低延迟、高可扩展性服务。它可以作为微服务轻松集成到神经搜索解决方案中。
💡 CLIP-as-service 0.8.0 现已正式发布!
本次更新包含 3 个新增功能、1 个性能改进、1 个文档改进。
🆕 新功能
新增支持大型 ONNX 模型文件 (#828)
单个 ONNX 模型文件有 2GB 大小的限制,更大的 ONNX 模型将被拆分成许多的文件碎片保存。此版本支持导入包含大型 ONNX 模型碎片的文件夹压缩成的 zip 格式文件。我们现在可以提供所有 CLIP 模型在 ONNX 运行时的服务。
新增支持在 laion-2b 上训练的 ViT-B-32、ViT-L-14、ViT-H-14 和 ViT-g-14 的模型 (#825)
用户现在可以使用在 Laion-2B 数据集上训练的 OpenCLIP 提供的四个新 CLIP 模型:
ViT-B-32::laion2b-s34b-b79k
ViT-L-14::laion2b-s32b-b82k
ViT-H-14::laion2b-s32b-b79k
ViT-g-14::laion2b-s12b-b42k
ViT-H-14 模型在 ImageNet 上实现了 78.0% 的零样本 top-1 准确率,在 MS COCO 上的 Recall@5 上实现了 73.4% 的零样本图像检索。这是目前表现最好的开源 CLIP 模型。要使用新模型,只需在 Flow YAML 中指定模型名称,例如 ViT-H-14::laion2b-s32b-b79k
请参阅模型支持[1],以查看受支持模型的完整列表。
clip_client 将结果保存在原输入对象,并按 uuid 保持输出顺序 (#815)
在此版本中,clip_client
将获取的 embedding 结果直接存储在输入的 DocumentArray
中,而不是返回一个新的 DocumentArray
。与此同时,现在调用 Client.encode
返回的 DocumentArray
内条目的顺序与输入的 DocumentArray
的顺序相同。
注意:如果您之前的代码依赖于Client.encode
返回一个新 DocumentArray
实例,此处改变可能会影响您的下游任务。您可以运行以下代码来验证原输入的DocumentArray
是否包含 embeddings
并且保留了原始顺序。
📗 文档改进
零样本分类和检索任务的 CLIP 基准测试 (#832)
我们现在为零样本分类和检索任务的 CLIP 模型提供基准信息。此信息应有助于用户为其特定用例选择最佳 CLIP 模型。有关更多详细信息,请阅读 CLIP-as-service 用户指南中的基准页面[2]。
🚀 性能提升
停止回传图像内容以降低延迟 (#824)
调用Client.encode
不再返回带有 embedding
的输入图像。因为 embedding
现在已插入到原始 DocumentArray
实例中,无需多此一举。因此,优化后现在的系统更快、响应更快。性能提升取决于图像大小和网络带宽。
引用链接
[1]
模型支持: https://clip-as-service.jina.ai/user-guides/server/#model-support
[2]
Benchmark: https://clip-as-service.jina.ai/user-guides/benchmark/
评论