CLIP-as-Service 使用指南
1. 项目介绍
CLIP-as-Service 是一个基于 CLIP 模型的开源服务,它提供了图像和文本的嵌入功能,可以作为一个低延迟、高可扩展性的微服务集成到神经搜索解决方案中。它支持多种协议,如 gRPC、HTTP 和 WebSocket,并且可以轻松地与 Jina 和 DocArray 等现代搜索生态系统集成。
2. 项目快速启动
安装服务端
首先,您需要安装服务端。以下命令将安装 clip-server 包,它是服务端的核心。
pip install clip-server
如果您希望使用 ONNX 或 TensorRT 运行时来加速模型,可以使用以下命令:
pip install clip-server[onnx]
pip install clip-server[tensorrt]
启动服务端:
python -m clip_server
请记住服务端的地址和端口。
安装客户端
接下来,安装客户端。客户端允许您发送请求到服务端并获得嵌入结果。
pip install clip-client
基本使用
创建一个客户端实例:
from clip_client import Client
c = Client('grpc://0.0.0.0:51000')
获取文本嵌入:
texts = ['First do it', 'then do it right', 'then do it better']
embeddings = c.encode(texts)
print(embeddings.shape) # 输出: (3, 512)
获取图像嵌入:
images = ['apple.png', 'https://clip-as-service.jina.ai/_static/favicon.png', 'data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7']
embeddings = c.encode(images)
print(embeddings.shape) # 输出: (3, 512)
3. 应用案例和最佳实践
以下是一个使用 CLIP-as-Service 进行文本到图像跨模态搜索的简单示例。
加载图像
您可以从 Jina Cloud 拉取图像,或者从官方网站下载并加载图像。
from docarray import DocumentArray
da = DocumentArray.pull('ttl-original', show_progress=True, local_cache=True)
编码图像
确保服务端正在运行,然后使用客户端对图像进行编码。
c = Client('grpc://0.0.0.0:51000')
da.embedding = c.encode(da URI=True)
搜索图像
query = "a dog"
results = da.search(query)
results.plot_image_sprites()
4. 典型生态项目
- Jina: 一个用于构建跨模态搜索系统的现代框架。
- DocArray: 一个用于处理文档数据结构的项目,常用于构建搜索系统。
以上是 CLIP-as-Service 的基本使用和集成指南。您可以根据具体需求调整和扩展这些示例。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



