StarTrail-org/LEANN

[MLsys2026 Best Paper]: https://arxiv.org/abs/2506.08276. RAG on Everything with LEANN. Enjoy 97% storage savings while running a fast, accurate, and 100% private RAG application on your personal device.

LEANN – 一个轻量级、隐私优先的 RAG 向量数据库

简介 – LEANN (Lightweight Embedding‑Aware Nearest‑Neighbor) 是一个开源向量搜索引擎,它几乎不存储任何嵌入向量。它通过构建文档块的图结构,在查询到达时实时重新计算嵌入,并对图进行剪枝,从而在保持搜索质量的同时,使索引大小保持极小(作者声称比传统向量数据库节省约 97% 的存储空间)。

核心价值 – 传统的向量数据库将每个高维嵌入都保存在磁盘上,对于数百万个文本块,这很快就会膨胀到数百 GB。LEANN 的按需重新计算功能让您可以在笔记本电脑上运行全文本规模的检索增强生成 (RAG) 流水线,无需云成本,且完全保护隐私。

主要特性

  • 基于图的按需重新计算 – 仅在查询时重新计算最需要的嵌入。
  • 保持高度的剪枝算法 – 在不损害召回率的前提下保持导航图的小巧。
  • 多种后端支持 – 支持 HNSW(默认)和 DiskANN,用于快速近似最近邻搜索。
  • 零遥测,仅限本地 – 所有数据都保留在您的机器上;除非您明确使用 LLM 提供商,否则无需调用 OpenAI 或云服务。
  • MCP 集成 – 可以将索引公开为 Model Context Protocol 服务,允许其他工具(如 Claude Code、Slack 机器人等)进行查询。
  • 广泛的数据支持 – 支持 PDF、txt/md、Apple Mail、浏览器历史记录、聊天记录(微信、iMessage、ChatGPT、Claude)、实时数据流和代码库。
  • 即插即用的 LLM 后端 – 支持 OpenAI 兼容的 API、Ollama、HuggingFace、Anthropic 等,用于生成和嵌入。

典型工作流程

  1. 安装 – uv pip install leann(或从源码构建以支持自定义后端)。
  2. 构建索引 – 将 LEANN 指向一个文档文件夹;它会对文本进行分块、构建图,并写入一个 .leann 文件。
  3. 搜索 – 调用 LeannSearcher 或 CLI 来检索最相关的文本块。
  4. 聊天 – 将搜索器与 LeannChat 和 LLM 结合,针对您的数据提出自然语言问题。
from leann import LeannBuilder, LeannSearcher, LeannChat

# 1️⃣ 构建
builder = LeannBuilder(backend_name="hnsw")
for txt in ["…", "…"]:
    builder.add_text(txt)
builder.build_index("mydata.leann")

# 2️⃣ 检索
searcher = LeannSearcher("mydata.leann")
print(searcher.search("What does LEANN save?", top_k=3))

# 3️⃣ 聊天
chat = LeannChat("mydata.leann", llm_config={"type": "hf", "model": "Qwen/Qwen3-0.6B"})
print(chat.ask("How much storage does LEANN save?"))

性能声明 – README 中引用了一项基准测试:索引 6000 万个文本块仅占用约 6 GB 空间(相比之下,传统向量数据库需要 >200 GB),并且在 ContextBench 套件上,支持 RAG 的编码代理实现了比 BM25 基准高出 2.1 倍的相关代码召回率。

适用人群 –

  • 希望为个人文件、电子邮件或代码建立本地、隐私保护型 RAG 存储的开发者。
  • 想要尝试检索策略而无需支付云向量服务费用的研究人员。
  • 构建必须离线或在设备端(例如笔记本电脑或边缘设备)运行的 AI 助手的团队。

入门指南 – 克隆仓库,创建一个 uv 虚拟环境,安装 leann 包,并运行提供的 demo.ipynb 或 README 中列出的 CLI 示例。文档中包含了针对 Ubuntu、Arch、macOS 和 Windows 的详细系统构建说明。


以上所有信息均直接摘自该仓库的 README;未添加任何外部声明。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目