阿里 Zvec:当向量数据库变成 SQLite,AI 搜索的地基变了
我第一次用 Zvec 时,以为漏掉了什么
> "pip install zvec。然后三行代码。然后搜索就跑起来了。"
我以为我漏掉了 Docker。没有。我以为漏掉了配置文件。没有。我以为漏掉了启动服务的命令。也没有。
它就——跑了。
这就是 Zvec 给我的第一印象。而当我了解它背后的东西后,我意识到:这件事可能比它看起来大得多。
让我用费曼的方式告诉你为什么。
---
一、先解决一个困惑:为什么需要向量数据库?
想象你有一百万篇文档。用户问了一个问题:"怎么用 Python 做爬虫?"
传统的搜索引擎会怎么做?它会匹配关键词:"Python"、"爬虫"。如果某篇文章标题里有这些词,它就排在前面。
但向量搜索不一样。它问的是:"哪篇文章的'意思'和这个问题最接近?"
怎么做?每篇文章被转成一个数字向量(比如 768 维的浮点数数组)。用户的查询也被转成向量。然后在高维空间里找最近的邻居。
这就是语义搜索。这就是 RAG(检索增强生成)的核心。这就是 AI 搜索的底层。
问题是:你需要一个地方存这些向量,并且能快速找到最近的邻居。
这就是向量数据库。
---
二、现有方案的痛点:太重了
市面上已有的方案分三类:
| 类型 | 代表 | 问题 |
|---|---|---|
| ☁️ 云服务 | Pinecone, Weaviate Cloud | 贵,数据要上传云端,有隐私顾虑 |
| 🏗️ 独立服务器 | Milvus, Qdrant, Weaviate | 要搭集群、配服务器、维护——对小项目太重 |
| 🧠 内存库 | FAISS | 只支持 Python,数据存内存,断电就丢 |
---
三、Zvec 的解法:向量数据库界的 SQLite
阿里的通义实验室做了件聪明的事:
> 把向量搜索引擎做进了进程里,就像 SQLite 把关系数据库做进了进程里一样。
什么意思?
传统数据库(MySQL、PostgreSQL)是独立进程,你的应用通过 TCP 连接和它通信。SQLite 不一样——它直接嵌入到你的应用里,是一个库,不是一个服务。
Zvec 也是。它不是一个你docker run起来的东西。它是你import zvec然后直接用的东西。
import zvec
# 定义 schema
schema = zvec.CollectionSchema(
name="my_docs",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 768),
)
# 创建 collection —— 就是一个本地文件
collection = zvec.create_and_open(path="./my_zvec_db", schema=schema)
# 插入数据
collection.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1] * 768}),
])
# 向量检索 —— 毫秒级
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.15] * 768),
topk=10
)
没有 Docker。没有 YAML。没有端口。没有 gRPC。 就是一个文件,一个库。
---
四、但它不只是"轻量"这么简单
如果只是轻量,那 FAISS 早就解决了。Zvec 厉害的地方在于,它在轻量的同时,给了你这四样东西:
1. 🔍 混合搜索
不只是向量搜索。Zvec v0.5.0 加入了全文搜索 + 标量过滤。
什么意思?你可以同时做:
- 向量相似度搜索(语义匹配)
- 关键词全文搜索(精确匹配)
- 属性过滤(比如只搜"发布时间在 2024 年以后"的)
2. 💾 DiskANN —— 十亿向量的本地检索
大部分轻量方案的问题是:数据大了就卡。因为内存装不下。
Zvec 支持 DiskANN 索引——向量数据存在磁盘上,但检索速度还是毫秒级。十亿级别的数据集,笔记本也能跑。
这解决了什么?边缘设备、移动端、个人开发者终于有了"不需要云"的语义检索能力。
3. 🌍 多语言 SDK
Python、Node.js、Go、Rust、Dart。从服务端到移动端全覆盖。
Dart/Flutter 的支持特别值得注意——这意味着你的手机 App 可以直接做本地语义搜索,不需要联网。
4. ⚡ 性能
官方数据:阿里云 g9i.4xlarge(16 核 64G),1000 万 768 维向量,QPS 8500+。
自报告比 Pinecone 快约 7 倍。当然,这是厂商自测,需要第三方独立验证。但即便打对折,对于一个"pip install 就能用"的嵌入式数据库来说,也是相当可观的。
---
五、为什么这件事很重要?
让我说三个层面的影响:
层面 1:开发者
做 RAG 的成本从"按月付费"变成"免费 + 本地"。
以前,一个小团队想给自己的 App 加语义搜索,要么用 Pinecone(月费几十到几百美元),要么自己搭 Milvus(运维成本)。现在?pip install zvec。
这改变了什么?更多小团队能搭建自己的语义检索系统。 更多个人开发者能在笔记本上做 AI 应用。
层面 2:AI 搜索生态
当用户不再"搜百度",而是"问 ChatGPT"——品牌内容还能被找到吗?
Zvec 不会直接改变这个问题。但它降低了"被 AI 索引"的技术门槛。更多内容会被嵌入、被向量化、被语义检索。
如果向量数据库像 SQLite 一样普及,那么"语义索引"就会像"全文索引"一样成为标配。
层面 3:阿里自己
Zvec 的底层引擎是 Proxima——阿里内部用了十年的向量搜索引擎。从推荐系统到图片搜索,从广告到搜索,阿里自己的业务都跑在 Proxima 上。
开源 Zvec = 把内部验证过的引擎"民用化"。这和 Google 开源 TensorFlow、Meta 开源 PyTorch 是一个逻辑:技术栈的影响力比产品本身更大。
---
六、费曼式的诚实:Zvec 不是银弹
让我告诉你它不能做什么:
1. 高并发写入:目前只支持单进程写入。如果你的应用需要大量并发写入,Milvus 更合适。 2. 分布式查询:它是单机的。十亿向量可以,但千亿级别你需要分布式方案。 3. 生态成熟度:LangChain、LlamaIndex 的集成还比较初级。Stack Overflow 上基本搜不到相关问题。
Zvec 的定位不是取代 Milvus 或 Pinecone。它是填补中间地带:
> "我不想为一个小项目起一个向量数据库服务。"
---
七、一个类比
费曼曾经讲过一个故事:有人问,你是怎么理解量子力学的?
他说:"我没有理解它。我只是用了很多年,学会了怎么和它打交道。"
向量搜索也是一样。你不需要理解 HNSW 算法的细节。你不需要知道 DiskANN 怎么在磁盘上做近似最近邻。 你只需要知道:有个工具,三行代码,就能让你的 App 理解"意思"。
Zvec 做的就是这件事——把"语义理解"从实验室搬到了 pip install。
---
八、回到那个问题
> "当用户不再搜百度,而是问 ChatGPT、豆包、Kimi,你的品牌内容还能被 AI 找到吗?"
Zvec 不会替你回答这个问题。但它降低了回答这个问题的技术成本。
如果你的内容还没有被向量化、还没有被语义索引——现在,你没有任何借口了。pip install zvec 就行。
AI 搜索的时代不是"来不来"的问题。它是"你已经活在其中了"的问题。
Zvec 只是让这件事,变得更便宜了。
---
项目地址: https://github.com/alibaba/zvec
官方文档: https://zvec.org/zh/
安装: pip install zvec
---
#Zvec #阿里开源 #向量数据库 #RAG #AI搜索 #SQLite #语义检索 #AI基础设施
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens