LEANN
图剪枝+选择性重计算向量数据库,6000万文本块索引仅需6GB,比传统方案节省97%存储
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图剪枝+选择性重计算向量数据库,6000万文本块索引仅需6GB,比传统方案节省97%存储
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你在咖啡馆里用笔记本处理工作,想让 AI 搜索你过去三年的邮件、浏览器历史、微信聊天记录,找到某次讨论的技术方案——但你不想把这一切上传到任何云服务器。LEANN 正是为这个场景而生的工具。
LEANN(Learn Everything on Anything)是一个创新的向量数据库项目,核心创新在于用「图剪枝 + 选择性重计算」取代传统向量数据库的预计算全量存储。它可以将 6000 万条文本块的索引从 201GB 压缩到仅 6GB,同时不损失检索精度。2025 年在 arXiv 发表后迅速获得关注,目前 GitHub Star 数已突破 11,800,成为个人 AI 与隐私计算领域最受关注的新兴项目之一。
传统向量数据库(如 FAISS)的工作模式是:先把所有文本切成块,每块通过 embedding 模型生成向量,然后全部存到磁盘或内存里。这就像把一本书的所有内容都打印出来放在仓库里,占用空间巨大。而 LEANN 的思路完全不同——它把文本切成块后,不存储向量,而是构建一个「知识图谱」来记录块与块之间的关系。当需要检索时,再实时计算目标查询的向量,然后在图谱上进行高效遍历,找到最相关的块,最后才现场计算这些块的向量。这就是「选择性重计算」(selective recomputation)——只在需要的时候计算,用计算换存储。

图1:LEANN 架构图,展示了图剪枝与选择性重计算的检索流程(来源:项目 assets)
为了实现这种高效图遍历,LEANN 团队开发了多个核心后端实现:
leann-core 是核心 Python 包,通过 typer 构建 CLI 工具,支持命令行直接操作。核心 API 包括:
在数据处理层面,LEANN 支持极为丰富的来源:
此外,项目原生支持 MCP(Model Context Protocol),可以直接作为 Claude Code 的语义搜索后端,弥补 Claude Code 本身只支持关键词搜索的短板。用户只需配置 MCP 服务地址,即可在不改变工作流的前提下获得 RAG 能力。

图2:LEANN 项目标识(来源:项目 assets)
在技术栈方面,LEANN 是一个多语言混合项目。底层核心使用 C++ 编写(CMake 构建系统),通过 pybind11 暴露 Python 接口。前端应用层使用 Python,配合 sentence-transformers 做 embedding 计算,torch 做张量运算,llama-index 做 RAG 编排。依赖管理采用 uv,支持 PyTorch(GPU)和 MLX(Apple Silicon)两种硬件加速路径。
部署方面,项目提供三种 Docker 镜像:Dockerfile(标准版)、Dockerfile.cpu(纯 CPU 版,适合没有 GPU 的用户)和 Dockerfile.dev(开发版)。安装过程简洁,核心只需要安装 uv 后克隆仓库并运行安装脚本。内存需求方面,标准配置 4-8GB RAM 足够应对日常个人数据索引。
不过,LEANN 同样面临挑战:图剪枝算法在极端查询场景(高度模糊或高度相似的查询)下的表现尚需更多 benchmark 验证;依赖 C++ 编译的安装方式在 Windows 环境下体验有待优化;此外,虽然项目自称「无精度损失」,但实际效果仍取决于 embedding 模型的选择,对于某些专业领域可能需要微调模型。
从行业角度来看,LEANN 代表了 RAG 领域一个新的技术方向——从「存得下」走向「算得出」。随着 AI 应用向端侧和隐私侧迁移,类似 LEANN 这样能在本地设备上处理大规模数据的工具,价值会越来越凸显。对于注重隐私的个人用户、小型团队或企业内部知识管理场景,LEANN 提供了一种无需云端、无需高配 GPU 也能拥有强大 RAG 能力的可行路径。