LEANN: открытый векторный индекс сжимает RAG-базу на 60 млн чанков с 201 ГБ до 6 ГБ

Векторный индекс часто весит больше данных, которые индексирует: в исследовательской работе показано, что корпус на 76 ГБ требует 173 ГБ эмбеддингов плюс 15 ГБ графа HNSW. LEANN из Sky Computing Lab (UC Berkeley) решает это иначе — почти не хранит эмбеддинги и пересчитывает их во время запроса. В бенчмарке репозитория индекс Wikipedia на 60 млн чанков сжался с 201 ГБ до 6 ГБ. Работа получила награду Best Research Paper на MLSys 2026.

Проект распространяется по лицензии MIT и ставится одной командой:

uv pip install leann

Это именно индекс, а не языковая модель, поэтому ограничение длины контекста к нему не применяется. Эмбеддер по умолчанию — Contriever на 110 млн параметров.

Как работает пересчёт эмбеддингов

LEANN построен поверх FAISS и представляет собой приближённый поиск ближайших соседей (ANN) с низким потреблением памяти. Вместо полных векторов он хранит урезанный граф и компактную таблицу продуктового квантования (PQ). Графовые индексы вроде HNSW за запрос обходят лишь небольшую часть узлов — на этом и строится экономия: на этапе запроса заново считаются эмбеддинги только для узлов на пути поиска.

Практичность обеспечивают три приёма:

  • Двухуровневый поиск. Сначала дешёвые расстояния по PQ ранжируют соседей, и точный пересчёт получают только лучшие кандидаты.
  • Динамическая пакетизация. Кандидаты с нескольких шагов группируются, например по 64 за раз, чтобы эффективнее загружать GPU.
  • Урезание с сохранением высокосвязных узлов. Большинство узлов сохраняет мало рёбер, а верхние 2% «хабов» — больше.

В абляциях двухуровневый поиск даёт в среднем ускорение в 1,4 раза, добавление пакетизации поднимает его до 1,8 раза. При этом на пересчёт эмбеддингов всё равно уходит около 76% задержки запроса.

Цифры: та же точность, но секунды вместо миллисекунд

Команда проверила NQ, TriviaQA, GPQA и HotpotQA на хранилище RPJ-Wiki из 60 млн пассажей. Задержка измерялась при 90% Recall@3, все цифры — самозаявленные в статье.

На NQ с Qwen3-4B на RTX 4090 LEANN и HNSW дают одинаковую итоговую точность 25,5%. Но LEANN занимает 4 ГБ, а HNSW — 188 ГБ. BM25 набирает 18,3%, сжатие PQ — 17,9%.

Платить приходится временем поиска: извлечение в LEANN занимает 2,48 с против 0,05 с у HNSW. Генерация длится около 20 с, поэтому сквозная задержка растёт с 20,95 с до 23,34 с. На RTX 4090 извлечение по разным датасетам занимает от 1,12 с (GPQA) до 7,12 с (HotpotQA). Базовый вариант с пересчётом на основе IVF, вдохновлённый EdgeRAG, оказывается до 200 раз медленнее. По точному совпадению LEANN обгоняет BM25 до 11,8%.

Репозиторий приводит похожую экономию и на личных данных: 400 тыс. сообщений чата сжимаются с 1,8 ГБ до 64 МБ, 38 тыс. записей браузера — со 130 МБ до 6,4 МБ.

Самый проблемный случай — HotpotQA на Mac: извлечение занимает 44,80 с, то есть 50,1% всего времени пайплайна. Есть установка на Linux только с CPU, но опубликованной задержки для неё нет.

С чем сравнивают LEANN

Характеристика LEANN HNSW (FAISS) DiskANN IVF-Recompute (в стиле EdgeRAG) PQ-сжатие
Подход Урезанный граф, пересчёт при запросе Граф и все векторы в RAM Граф и векторы на SSD, PQ в RAM Кластеры IVF, пересчёт при запросе Сжатые векторы и граф
Хранилище, корпус 76 ГБ 4 ГБ 188 ГБ 270 ГБ Менее 5% сырых данных 20 ГБ
Извлечение NQ при 90% recall (RTX 4090) 2,48 с 0,05 с 0,03 с 307,61 с Не достигает 90%
Извлечение HotpotQA при 90% recall (RTX 4090) 7,12 с 0,05 с 0,11 с 429,46 с Не достигает 90%
Точность NQ (Qwen3-4B) 25,5% 25,5% Не раскрыта Не раскрыта 17,9%
Влезает в рабочую станцию с 32 ГБ RAM Да Нет (OOM) Да Да Да
Лицензия MIT MIT MIT Не раскрыта Зависит от реализации

Данные по хранилищу, задержке и точности взяты из LEANN paper v2, таблицы 1 и 2 и раздел 7.2 (самозаявленные). Строки про лицензии и дизайн ведут к исходникам самих проектов.

Где это пригодится: от ноутбука до Claude Code

Заявленная цель — семантический поиск и RAG по личным данным на ноутбуке. В статье тестировались машина с RTX 4090 и 32 ГБ RAM и Mac с M1 Ultra. Поддерживаются Ubuntu, Arch, WSL, macOS и Windows, но часть приложений работает только на macOS — например, поиск по Apple Mail.

В репозитории есть готовые приложения для документов, Apple Mail, истории Chrome, WeChat, iMessage и экспортов ChatGPT или Claude. MCP-ридеры тянут живые данные из Slack и закладок Twitter. LEANN также работает как MCP-сервер семантического поиска для Claude Code — это уже не только индекс, а рабочий инструмент в цепочке ИИ-агента, как и разобранные нами плагины Devin для закрытия уязвимостей.

На 30 задачах SWE-Bench Pro из ContextBench команда сообщает о 24,2% начального попадания в релевантный код против 11,4% у BM25, а агент потратил на 8,4% меньше токенов. Бэкенд по умолчанию — HNSW, для более быстрого поиска есть DiskANN. Генерация работает с Ollama, Hugging Face, Anthropic и любым API, совместимым с OpenAI.

Что это меняет для практики

Главный компромисс LEANN сформулирован честно: память в обмен на задержку. Если RAG-индекс не помещается в RAM или раздувает диск, обмен оправдан — 4 ГБ вместо 188 ГБ на NQ при той же точности. Если же важны миллисекунды на запрос, HNSW по-прежнему впереди: 0,05 с против 2,48 с. В сквозном пайплайне с генерацией разница сглаживается, потому что модель отвечает около 20 с.

Для локального RAG на ноутбуке или рабочей станции это редкая возможность держать индекс по десяткам миллионов фрагментов без серверной памяти. Для нагруженного поискового сервиса секунды на извлечение придётся учитывать в бюджете задержки. Если же вы держите агентов на своей инфраструктуре, полезна и песочница Anthropic sandbox-runtime: она ограничивает доступ агента на уровне ОС, а LEANN сокращает память под его поисковую базу. Оба инструмента решают разные части одной задачи — развернуть ИИ-агента на своём железе.

Частые вопросы

Что такое LEANN?

Открытый векторный индекс для приближённого поиска ближайших соседей, построенный поверх FAISS в Sky Computing Lab (UC Berkeley). Он хранит урезанный граф и таблицу PQ, а эмбеддинги пересчитывает во время запроса.

Насколько он меньше обычного индекса?

В бенчмарке репозитория индекс Wikipedia на 60 млн чанков занимает 6 ГБ вместо 201 ГБ. В статье для корпуса 76 ГБ указано 4 ГБ против 188 ГБ у HNSW и 270 ГБ у DiskANN.

Теряется ли точность поиска?

По заявлению авторов, на NQ при 90% recall LEANN и HNSW дают одинаковую итоговую точность 25,5% с Qwen3-4B. Это самозаявленные цифры из статьи, а не независимая проверка.

Насколько медленнее работает поиск?

На NQ извлечение занимает 2,48 с против 0,05 с у HNSW. На HotpotQA — 7,12 с, а на Mac в том же тесте 44,80 с, что составляет половину времени всего пайплайна.

Какая лицензия и как установить?

Лицензия MIT. Установка — uv pip install leann; пакет также опубликован на PyPI.

Какие платформы поддерживаются?

Ubuntu, Arch, WSL, macOS и Windows. Есть установка на Linux только с CPU, но опубликованной задержки для такого режима нет. Часть приложений, например поиск по Apple Mail, доступна только на macOS.

Какая модель эмбеддингов используется по умолчанию?

Contriever на 110 млн параметров. Для генерации поддерживаются Ollama, Hugging Face, Anthropic и любой OpenAI-совместимый API.

Подходит ли LEANN для рабочей станции с 32 ГБ RAM?

Да, в сравнительной таблице статьи LEANN отмечен как помещающийся в такую машину, тогда как HNSW в этом сценарии падает с OOM.

Источник: marktechpost.com