Знакомьтесь: LEANN — векторный индекс с открытым исходным кодом, уменьшающий RAG-индекс из 60 млн фрагментов с 201 ГБ до 6 ГБ
Лаборатория Sky Computing Lab Калифорнийского университета в Беркли создала LEANN — векторный индекс с открытым исходным кодом, который хранит почти никакие эмбеддинги. Векторный индекс LEANN пересчитывает эмбеддинги во время выполнения запроса вместо сохранения их на диске. Бенчмарк репозитория показывает, что индекс Википедии из 60 миллионов фрагментов уменьшается с 201 ГБ до 6 ГБ. Исследовательская статья получила награду за лучшую исследовательскую работу на MLSys 2026. Таким образом, она делает семантический поиск и RAG по персональным данным доступными на ноутбуке.
Кратко
- Размер: 6 ГБ для 60 млн фрагментов (репозиторий); 4 ГБ в конфигурации Википедии объёмом 76 ГБ из статьи. Эмбеддер по умолчанию: Contriever (110 млн параметров). Это индекс, а не LLM, поэтому ограничение на длину контекста отсутствует.
- Работает на: ноутбуках и рабочих станциях. В статье тестировались система с RTX 4090 и 32 ГБ ОЗУ, а также Mac на базе M1 Ultra. Существует установка только для CPU под Linux, однако опубликованных данных о задержке на CPU нет.
- Производительность: соответствует точности HNSW на последующих этапах при полноте 90%, используя менее 5% хранилища исходных данных.
- Лучший результат: точность на NQ составляет 25,5%, что идентично HNSW, при использовании 4 ГБ вместо 188 ГБ.
- Худший результат: извлечение данных из HotpotQA занимает на Mac 44,80 с — 50,1% общего времени работы конвейера.
Что такое LEANN?
LEANN — это индекс приближённого поиска ближайших соседей (ANN) с низкими требованиями к хранилищу, построенный на базе FAISS. Он решает одну проблему: векторные индексы часто больше данных, которые они индексируют. Исследовательская статья показывает, что для корпуса объёмом 76 ГБ требуется 173 ГБ эмбеддингов плюс 15 ГБ графа HNSW. Это более чем вдвое увеличивает объём исходных данных.
LEANN хранит прореженный граф, отбрасывает полные векторы и восстанавливает их по требованию. Код распространяется по лицензии MIT и устанавливается командой uv pip install leann.
Как LEANN пересчитывает эмбеддинги, не замедляя поиск?
Графовые индексы, такие как HNSW, посещают для каждого запроса лишь небольшое количество узлов. LEANN использует это свойство. Он хранит граф и компактную таблицу продуктовой квантизации (PQ). Во время выполнения запроса эмбеддинги пересчитываются только для узлов на пути поиска.
3 метода делают это практически применимым:
- Двухуровневый поиск: сначала соседние узлы ранжируются по дешёвым расстояниям PQ. Точное пересчитывание выполняется только для лучших кандидатов.
- Динамическая пакетная обработка: кандидаты с нескольких переходов объединяются, например по 64 за раз, для повышения эффективности GPU.
- Прореживание с сохранением узлов высокой степени: большинство узлов сохраняют небольшое число рёбер, тогда как 2% лучших узлов-«хабов» сохраняют больше рёбер.
В абляционных исследованиях двухуровневый поиск обеспечивает в среднем ускорение в 1,4 раза. Добавление пакетной обработки повышает его до 1,8 раза. На пересчитывание эмбеддингов по-прежнему приходится около 76% задержки запроса.
Как LEANN показывает себя в бенчмарках?
Исследовательская команда протестировала NQ, TriviaQA, GPQA и HotpotQA на хранилище RPJ-Wiki из 60 миллионов фрагментов. Задержка измерялась при Recall@3, равном 90%. Все приведённые ниже показатели взяты из исследовательской статьи и представлены авторами.
На NQ с Qwen3-4B на RTX 4090 LEANN и HNSW достигают одинаковой точности на последующих этапах — 25,5%. LEANN использует 4 ГБ хранилища. HNSW использует 188 ГБ. BM25 набирает 18,3%, а сжатие PQ — 17,9%.
Цена этого — время поиска. Извлечение данных с помощью LEANN занимает на NQ 2,48 с против 0,05 с у HNSW. Генерация занимает около 20 с, поэтому сквозная задержка увеличивается с 20,95 до 23,34 с.
Для разных наборов данных на RTX 4090 время извлечения данных LEANN составляет от 1,12 с (GPQA) до 7,12 с (HotpotQA). Базовый вариант с пересчитыванием на основе IVF, вдохновлённый EdgeRAG, работает до 200 раз медленнее. LEANN повышает точность точного совпадения по сравнению с BM25 максимум на 11,8%.
Репозиторий на GitHub сообщает о сопоставимой экономии для персональных данных. 400 тысяч сообщений чатов сжимаются с 1,8 ГБ до 64 МБ. 38 тысяч записей браузера — со 130 МБ до 6,4 МБ.
LEANN и другие векторные индексы
| Характеристика | LEANN | HNSW (FAISS) | DiskANN | IVF-Recompute (в стиле EdgeRAG) | Сжатие PQ |
|---|---|---|---|---|---|
| Подход | Прореженный граф, пересчитывание по требованию | Граф и все векторы в ОЗУ | Граф и векторы на SSD, PQ в ОЗУ | Кластеры IVF, пересчитывание по требованию | Сжатые векторы и граф |
| Хранилище, корпус 76 ГБ | 4 ГБ | 188 ГБ | 270 ГБ | Менее 5% исходных данных | 20 ГБ |
| Извлечение NQ при полноте 90% (RTX 4090) | 2,48 с | 0,05 с | 0,03 с | 307,61 с | Не достигает 90% |
| Извлечение HotpotQA при полноте 90% (RTX 4090) | 7,12 с | 0,05 с | 0,11 с | 429,46 с | Не достигает 90% |
| Точность на последующих этапах NQ (Qwen3-4B) | 25,5% | 25,5% | Не раскрыта | Не раскрыта | 17,9% |
| Помещается в рабочую станцию с 32 ГБ ОЗУ | Да | Нет (OOM) | Да | Да | Да |
| Лицензия | MIT | MIT | MIT | Не раскрыта | Зависит от реализации |
Показатели объёма хранилища, задержки и точности взяты из статьи LEANN, версия 2, таблиц 1 и 2 и раздела 7.2 (представлены авторами). Строки о лицензии и архитектуре содержат ссылки на исходные материалы каждого проекта.
Где разработчики могут использовать LEANN?
Репозиторий включает готовые приложения для работы с документами, Apple Mail, историей Chrome, WeChat, iMessage, а также экспортами ChatGPT или Claude. MCP-ридеры получают актуальные данные из Slack и закладок Twitter. LEANN также работает как MCP-сервер семантического поиска для Claude Code.
На 30 задачах SWE-Bench Pro из ContextBench команда сообщает о начальной полноте релевантного кода 24,2% против 11,4% у BM25. Агент также использовал на 8,4% меньше токенов.
HNSW является серверной частью по умолчанию, а DiskANN используется для более быстрого поиска. Генерация работает с Ollama, Hugging Face, Anthropic или любым API, совместимым с OpenAI. Поддерживаются Ubuntu, Arch, WSL, macOS и Windows. Некоторые приложения, например поиск в Apple Mail, доступны только в macOS.
Ключевые выводы
- LEANN хранит прореженный граф и пересчитывает эмбеддинги во время выполнения запроса.
- 60 млн фрагментов: с 201 ГБ до 6 ГБ в бенчмарке репозитория.
- Соответствует точности HNSW (25,5% на NQ) при полноте 90%.
- Поиск занимает секунды: 2,48 с против 0,05 с у HNSW на NQ.
- Лицензия MIT и награда за лучшую исследовательскую работу на MLSys 2026.
Ознакомьтесь со статьёй, репозиторием на GitHub и пакетом PyPI. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту о машинном обучении с более чем 150 тысячами участников и подписаться на нашу рассылку. Постойте! Вы есть в Telegram? теперь вы также можете присоединиться к нам в Telegram.
Хотите сотрудничать с нами для продвижения своего репозитория на GitHub, страницы на Hugging Face, релиза продукта, вебинара и т. д.? Свяжитесь с нами
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.