项目介绍
clip-as-service是一个用于嵌入图像和文本的低延迟、高可扩展性的服务。它能够方便地集成为神经搜索解决方案中的一个微服务。
项目特点
-
快速:支持TensorRT、ONNX runtime和PyTorch等多种模型运行方式,每秒处理800个请求。支持非阻塞的双向流,适合大数据量和长时间任务。
-
弹性:支持水平扩展和缩减多个CLIP模型在单个GPU上的运行,具有自动负载均衡功能。
-
易用:设计简洁,用户无需学习曲线,提供直观且一致的API用于图像和句子的嵌入。
-
现代化:支持异步客户端,能够轻松在gRPC、HTTP和WebSocket协议之间进行切换,支持TLS和压缩。
-
集成性:能够顺畅地与Jina和DocArray等神经搜索生态系统集成,助您快速构建跨模态和多模态解决方案。
使用方法
文本与图像嵌入
使用clip-as-service,用户可以通过HTTPS或者gRPC协议来获取文本和图像的嵌入,在处理过程中确保数据的安全性。
- 使用HTTPS进行请求,用户需要发送带有访问令牌的POST请求,并在请求中提供待嵌入的数据。
- 使用gRPC协议,用户需要创建一个客户端对象,通过
encode
方法获取嵌入结果。
# 安装clip-client
from clip_client import Client
c = Client(
'grpcs://<your-inference-address>-grpc.wolf.jina.ai',
credential={'Authorization': '<your access token>'},
)
r = c.encode(
[
'First do it',
'then do it right',
'then do it better',
'https://picsum.photos/200',
]
)
print(r)
图片视觉推理
clip-as-service提供了视觉推理功能,用户可以根据给定的图像和文本描述对匹配进行排名。示例如下:
- 通过HTTPS发送图像和描述的POST请求,展示clip模型推断出的匹配度分值。
安装说明
clip-as-service由两个独立的Python包构成:clip-server
和clip-client
。两者均需要Python 3.7或更高版本。
- 安装服务器:可以使用PyTorch、ONNX或TensorRT进行安装。
- 安装客户端:通过pip安装即可。
pip install clip-server # PyTorch
pip install "clip-server[onnx]" # ONNX
pip install nvidia-pyindex
pip install "clip-server[tensorrt]" # TensorRT
pip install clip-client
快速开始
基础使用
- 启动服务器:运行
python -m clip_server
,记录下它的地址和端口。 - 创建客户端,并连接到服务器地址:
from clip_client import Client c = Client('grpc://0.0.0.0:51000')
- 获取句子嵌入:
r = c.encode(['First do it', 'then do it right', 'then do it better']) print(r.shape) # [3, 512]
- 获取图像嵌入:
r = c.encode(['apple.png', # 本地图像 'https://clip-as-service.jina.ai/_static/favicon.png', # 远程图像 'data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7']) # 图片URI print(r.shape) # [3, 512]
支持与社区
加入我们
clip-as-service由Jina AI支持,并在Apache-2.0许可证下开放发布。我们正在积极招聘AI工程师、解决方案工程师,以构建下一代开源的神经搜索生态系统。