阿里巴巴近日正式开源了其向量数据库项目 Zvec。对于不太熟悉向量数据库的朋友来说,它专为存储和检索向量数据而设计,常见于相似性搜索、推荐系统和各类AI应用场景中。
与需要独立部署的传统向量数据库(如Milvus、Pinecone)不同,Zvec的设计理念是作为进程内库(In-Process Library)直接运行在应用程序的进程中。这意味着你无需启动额外的数据库服务器,免去了复杂的配置和管理,同时也显著降低了基础设施成本。

Zvec基于阿里巴巴内部已长期使用的Proxima向量搜索引擎构建。官方宣称,其能够在毫秒级时间内完成对数十亿规模向量的搜索。对于开发者而言,上手极为简单,只需通过 pip install zvec 即可安装,官方声称可在60秒内开始使用。
在功能特性上,Zvec同时支持密集向量和稀疏向量,并且可以单次调用完成混合搜索。由于其进程内的特性,它能够轻松运行在Jupyter Notebook、各类服务器、命令行工具甚至资源受限的边缘设备上。该项目采用Apache 2.0 开源协议,对商业应用友好。
下面是一个简单的Python代码示例,展示了Zvec的核心用法:
import zvec
# 定义集合模式
schema = zvec.CollectionSchema(
name="example",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
# 创建集合
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
# 插入文档
collection.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),
])
# 向量相似性搜索
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
topk=10
)
许多开发者认为,这种将向量数据库能力直接嵌入到应用内部的方式,能够极大地简化查询流程,让开发体验更加流畅。特别是对于构建RAG(检索增强生成)系统或任何需要在本地进行高效向量搜索的场景,Zvec的出现可能意味着游戏规则的改变。
当然,社区中也存在一些讨论和担忧。有网友指出,由于向量数据通常体积庞大,直接将数据库加载到应用进程内可能会面临内存瓶颈的挑战。此外,虽然罕见,但也有用户声称在代码中发现了“安全后门”,不过目前并未见到任何公开的具体证据或代码分析来证实这一点。
项目的完整安装指南、详细文档以及更多示例代码都可以在其GitHub页面找到:https://github.com/alibaba/zvec 。随着向量计算在AI领域的地位日益凸显,像Zvec这样的轻量级、嵌入式解决方案是否会成为下一个“SQLite”,简化开发并催生更多创新应用?值得所有开发者保持关注。你对这个新工具有什么看法?欢迎在云栈社区的相关板块分享你的见解。