ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

SQLite-Vector与SQLite AI生态:如何打造属于边缘AI时代的智能向量数据库

SQLite-Vector与SQLite AI生态:如何打造属于边缘AI时代的智能向量数据库

【免费下载链接】sqlite-vector

SQLite-Vector is a cross-platform, ultra-efficient SQLite extension that brings vector search capabilities to your embedded database.

项目地址:https://gitcode.com/gh_mirrors/sql/sqlite-vector
点击查看免费下载

sqlite-vector是一款专为 SQLite 打造的高效向量搜索(Vector Search)扩展,配合 SQLite AI 生态,你可以在手机、浏览器、边缘设备或服务器上,零预索引、低内存地构建属于自己的智能向量数据库——无需额外的向量数据库服务器。

什么是 SQLite-Vector?把向量搜索装进 SQLite

传统做法是给 AI 应用再部署一个独立的向量数据库(FAISS、Milvus 之类),但对于嵌入式和边缘场景,多一个服务就多一份运维成本。

sqlite-vector 的思路完全不同:它以 SQLite 扩展的形式存在,让你直接在普通 SQLite 表里:

  • 用普通BLOB列存储向量,不需要虚拟表
  • 插入即可查,不需要构建 HNSW/DiskANN 索引,没有耗时数小时的预处理
  • 默认仅约30MB 内存,支持 iOS、Android、Windows、Linux、macOS 全平台
  • 支持 Float32 / Float16 / BFloat16 / Int8 / UInt8 / 1Bit 及 TurboQuant 2/3/4-bit 低比特量化
  • 距离函数全部用 C 实现并按 SIMD 加速(SSE2 / AVX2 / AVX512 / NEON / RVV),可离线运行

它的核心实现在 src/sqlite-vector.c,各平台的 SIMD 距离内核分别位于 src/distance-neon.c(ARM 移动端)和 src/distance-avx512.c 等文件中,这也是它在手机和服务器上都能保持高性能的原因。

为什么它是边缘 AI 的理想选择?

能力SQLite-Vector传统向量数据库方案
直接操作普通表✅❌ 通常要专用表/虚拟表
无需预建索引✅❌ 大数据集可能耗时数小时
不依赖外部服务进程✅❌ 常需 Redis / FAISS 等
低内存占用(默认 30MB)✅❌
低比特量化扫描✅❌
离线 / 端侧可用✅❌
一套 SQL 就能查✅❌ 复杂 JOIN 与子查询

对Edge AI场景,这意味着:📱 数据不出设备(隐私友好)、🔌 完全离线可用、⚡ 实时响应。

快速上手:4 行 SQL 完成向量检索

Python 用户一条命令即可安装(详见 packages/python/README.md),其他平台可下载预编译扩展或按语言引入(Swift Package、Android Gradle、Flutter pub 均有官方封装)。

加载扩展后,整个工作流就是普通 SQL:

-- 1. 建普通表,向量存 BLOB 列 CREATE TABLE docs ( id INTEGER PRIMARY KEY, embedding BLOB, title TEXT ); -- 2. 初始化向量列(384 维,余弦距离) SELECT vector_init('docs', 'embedding', 'type=FLOAT32,dimension=384,distance=COSINE'); -- 3. 插入数据后量化(INT8 是余弦场景的推荐档位) SELECT vector_quantize('docs', 'embedding', 'qtype=INT8'); -- 4. 相似度 Top-20 检索 SELECT d.title, v.distance FROM docs AS d JOIN vector_quantize_scan('docs', 'embedding', ?, 20) AS v ON d.id = v.rowid;

支持的距离度量包括 L2、平方 L2、L1、Cosine、Dot 和 Hamming(仅 1bit),完整函数清单见 API.md。

量化与 TurboQuant:30MB 内存扫百万向量的秘密

向量越大越占内存,量化(Quantization)就是压缩之道。vector_quantize()会构建一个紧凑索引,扫描时直接读它而非原始向量;配合vector_quantize_preload()还能再快 4~5 倍。原理与召回率(Recall)评估方法详见 QUANTIZATION.md。

官方基准测试(100 万条 768 维向量、余弦距离、k=20,Apple M5 Pro / NEON,数据来自 test/benchmark.c):

部署方式索引内存单查询耗时Recall@20
INT8 预加载740 MB37.6 ms99.5%
INT8 流式(默认 30MB 上限)30 MB114.4 ms99.5%

用 3 倍延迟换 25 倍内存,召回率不变——这正是为 RAM 有限的移动设备准备的模式。

此外,TurboQuant提供 2/3/4-bit 极低比特表示:qtype=TURBO,qbits=4时索引体积仅为原始 Float32 的约 13%。在真实数据集(Fashion-MNIST)上的复现脚本 test/recall_turboquant_real.py 显示,4-bit 档可达 3.4 倍加速且召回率 0.948;2-bit 档虽仅 0.596 召回,但 8.78 倍加速,适合作为粗筛。

SQLite AI 生态:从数据层到智能层的完整拼图

sqlite-vector 只是 README.md 中所述 SQLite AI 技术栈的一块拼图,整个生态分为三层:

🗄️ 数据层

  • sqlite-vector—— SQLite 内的 ANN 向量搜索(本项目)
  • sqlite-sync—— 离线优先的跨设备 CRDT 同步
  • sqlite-columnar—— 面向 OLAP 的列式分析
  • sqlite-js—— 用 JavaScript 编写 SQLite 函数

🤖 AI 层

  • sqlite-ai—— 端侧 LLM 推理与 Embedding 生成
  • sqlite-agent—— 运行在 SQLite 内的自主 AI Agent
  • sqlite-memory—— 为 Agent 提供持久化、可检索的记忆
  • sqlite-mcp—— 直接在 SQL 中调用 MCP 工具

☁️ 托管平台:SQLite Cloud 提供带同步、认证、边缘函数与多区域的托管服务,并附免费额度。

组合起来就是完整的端侧智能链路:sqlite-ai 在设备上把文本/图片转成向量 → sqlite-vector 存入本地 SQLite 并检索 → sqlite-memory 让 Agent 记住上下文 → sqlite-agent 执行任务,全程离线、数据不出设备。

实战示例:10 分钟搭建本地语义搜索

仓库内置了一个开箱即用的语义搜索演示(examples/semantic_search/):使用 sentence-transformers 的本地 Embedding 模型(默认 all-MiniLM-L6-v2,384 维)+ sqlite-vector 余弦检索,对 examples/semantic_search/samples/ 里的 20 篇样例文档建索引,然后用自然语言提问。

pip install -r requirements.txt python semsearch.py --repl

在交互式界面中:

semsearch> index ./samples -- 索引文档目录 semsearch> search "neural network architectures for image recognition"

核心逻辑见 examples/semantic_search/semsearch.py,这是一个典型的 RAG / 语义搜索(Semantic Search)最小实现。

总结:为什么现在就该关注它

  • 简单:普通表 + BLOB 列 + 几条 SQL,没有服务、没有索引构建阶段
  • 省资源:默认 30MB 内存,TurboQuant 最低把索引压到原始体积的 7%
  • 够快:SIMD 全平台优化,百万向量单查询 30~110ms 量级
  • 面向未来:与 SQLite AI 生态拼合,构成边缘 AI 时代完整的端侧向量数据库方案

无论你是做端侧 RAG、本地语义搜索,还是 Agent 记忆系统,sqlite-vector 都是目前最轻量的选择。

【免费下载链接】sqlite-vector

SQLite-Vector is a cross-platform, ultra-efficient SQLite extension that brings vector search capabilities to your embedded database.

项目地址:https://gitcode.com/gh_mirrors/sql/sqlite-vector
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进