Repolode
RyanCodrai

RyanCodrai/turbovec

Векторный индекс для Python и Rust, который сжимает эмбеддинги до 2 или 4 бит на измерение с помощью TurboQuant и ищет прямо по сжатым данным.

Open source альтернатива:FAISS

Звёзды
17,411
Форки
1,488
Открытые issues
23
Последний коммит
16 дней назад

Что это?

turbovec — библиотека векторных индексов для Python и Rust. Она хранит каждый эмбеддинг с точностью 2 или 4 бита на измерение, используя метод квантования TurboQuant, и выполняет поиск ближайших соседей по сжатым данным с помощью SIMD-оптимизированных ядер. Индекс остаётся в памяти процесса, поэтому отдельный сервис не нужен.

Проект рассчитан на задачи поиска, например RAG-пайплайны, где большие наборы эмбеддингов иначе пришлось бы хранить в формате float32. Векторы можно добавлять и удалять без повторного обучения; инкрементальное сохранение через вызов sync записывает только изменения. Также доступен вариант IdMapIndex, в котором используются пользовательские идентификаторы uint64. Поиск можно ограничить списком разрешённых ID. Есть готовые интеграции для LangChain, LlamaIndex, Haystack и Agno.

Вместо графового индекса используется полный перебор, поэтому стоимость запросов растёт линейно с размером корпуса. Квантование приводит к потере точности; в проекте приведены бенчмарки в сравнении с FAISS на эмбеддингах OpenAI и GloVe.

Ключевые возможности

  • 01Хранит векторы с точностью 2 или 4 бита на измерение; при 4 битах они примерно в 7,8 раза меньше, чем в формате float32.
  • 02Выполняет поиск по сжатым кодам с SIMD-оптимизацией; доступны API для Python и Rust.
  • 03Добавляет и удаляет векторы без этапа обучения и перестроения индекса.
  • 04Инкрементальный вызов sync() записывает только изменённые данные и сохраняет их атомарно.
  • 05Поддерживает индексацию по ID и фильтрацию по списку разрешённых ID во время поиска.

Сценарии использования

  • Создание локального RAG-ретривера, который хранит эмбеддинги в памяти процесса.
  • Поиск по большим коллекциям эмбеддингов на машине с ограниченным объёмом RAM.
  • Добавление векторного хранилища в приложение на LangChain или LlamaIndex без отдельной базы данных.
  • Офлайн-поиск или семантический поиск с повышенными требованиями к конфиденциальности, когда данные не должны покидать процесс.

Быстрый старт

  1. 1

    Установите пакет Python из PyPI

    pip install turbovec
  2. 2

    Создайте векторы и проиндексируйте их с помощью TurboQuantIndex (см. пример в README)

Что важно знать

  • Сканируются все векторы, поэтому решение не подходит для очень больших корпусов с жесткими требованиями к задержке.
  • Квантование приводит к потере точности, поэтому результаты являются приближенными, а не точными результатами с плавающей точкой.

Темы

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

Что такое turbovec?
Векторный индекс для Python и Rust, который сжимает эмбеддинги до 2 или 4 бит на измерение с помощью TurboQuant и ищет прямо по сжатым данным. turbovec — библиотека векторных индексов для Python и Rust. Она хранит каждый эмбеддинг с точностью 2 или 4 бита на измерение, используя метод квантования TurboQuant, и выполняет поиск ближайших соседей по сжатым данным с помощью SIMD-оптимизированных ядер. Индекс остаётся в памяти процесса, поэтому отдельный сервис не нужен.
turbovec можно использовать бесплатно? Какая у него лицензия?
turbovec распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
turbovec всё ещё поддерживается?
Активно поддерживается. Последний коммит в turbovec — 7 окт. 2026 г..
Для чего можно использовать turbovec?
Создание локального RAG-ретривера, который хранит эмбеддинги в памяти процесса. Поиск по большим коллекциям эмбеддингов на машине с ограниченным объёмом RAM. Добавление векторного хранилища в приложение на LangChain или LlamaIndex без отдельной базы данных. Офлайн-поиск или семантический поиск с повышенными требованиями к конфиденциальности, когда данные не должны покидать процесс.
Как установить turbovec?
Установите пакет Python из PyPI: pip install turbovec Создайте векторы и проиндексируйте их с помощью TurboQuantIndex (см. пример в README)
Где скачать turbovec?
Исходный код и инструкции по установке — на GitHub: https://github.com/RyanCodrai/turbovec

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Локальный векторный индекс и инструментарий для RAG: пересчитывает эмбеддинги по запросу и сокращает объём хранения примерно на 97%, позволяя искать личные данные на ноутбуке.

13,1 тыс.1,2 тыс.PythonMITОбновлён 16 часов назад