alibaba/zvec

Легковесная, молниеносно быстрая векторная база данных, работающая в процессе выполнения

Инструменты⭐ 15 988C++последний релиз: v0.7.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Zvec — это легковесная векторная база данных, работающая в процессе приложения (in-process), обеспечивающая быстрый поиск по векторам и полнотекстовый поиск без необходимости запускать отдельные серверы.

Зачем нужен

Инструмент решает задачу хранения и поиска эмбеддингов непосредственно в коде приложения, устраняя сложность настройки внешних сервисов. Он полезен для создания систем RAG и семантического поиска с низкой задержкой, поддерживая гибридный поиск (векторы + ключевые слова) и фильтрацию.

Что можно реализовать

  • Локальные RAG-приложения и чат-боты, где важна простота развертывания
  • Поиск по документам с использованием гибридных запросов (векторный + full-text)
  • Edge-устройства и мобильные приложения благодаря поддержке Dart/Flutter и RISC-V
  • Прототипирование ML-моделей в Jupyter Notebook благодаря отсутствию зависимостей от серверов

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

  • In-process архитектура: работает как библиотека, не требует отдельного сервера
  • Гибридный поиск: объединение векторного сходства, полнотекстового поиска (FTS) и скалярных фильтров в одном запросе
  • DiskANN индекс: позволяет хранить основные данные на диске, экономя оперативную память
  • Мультиязычность: официальные SDK для Python, Node.js, Go, Rust и Dart/Flutter
  • Надежность: использование WAL (write-ahead logging) для сохранения данных при сбоях

👤 Кому подойдёт: Разработчики (Python, JS/TS, Go, Rust, Dart), создающие приложения с поиском или RAG; инженеры, ищущие легковесное решение без инфраструктуры внешних баз данных

Релизы

v0.7.0minor
🕐 29 дн назад · релиз на GitHub ↗

В zvec v0.7.0 добавлены DiskANN, Turbo с PQ-INT8 и RabitQ, улучшена стабильность и поддержка Linux.

  • Added: DiskANN интегрирован в ядро с поддержкой io_uring, асинхронного I/O и динамического beam search.
  • Added: В Turbo добавлен预处理, квантователь PQ-INT8 и поддержка квантования RabitQ для IVF.
  • Added: Добавлены новые методы квантования: uniform uint7 и uint8, а также токенизатор ngram для полнотекстового поиска.
  • Added: HNSW теперь поддерживает построение графа из исходных векторов через провайдер.
  • Fixed: Исправлены критические ошибки: краш при открытии writer, проблемы с восстановлением после сбоя и некорректная нормализация центроидов K-Means.
  • Fixed: Улучшена стабильность поиска: валидация фильтров, корректная работа с удалением записей и поддержка musl Linux.
v0.6.0major
🕐 2 мес назад · релиз на GitHub ↗

Zvec v0.6.0: абстракция квантования, случайные повороты для INT8/INT4, group-by поиск, оптимизация FTS и исправления.

  • Added: Внедрена модульная абстракция квантования в Turbo-модуле с первой реализацией Fp32Quantizer.
  • Added: Добавлена опция случайного поворота для INT8/INT4, значительно повышающая recall (до 0.9881 для Flat INT8).
  • Added: Реализован поиск с группировкой (group-by) на всех уровнях интерфейса и в Python API.
  • Added: Обновлен текстовый анализ: поддержка Unicode через utf8proc, токенизатор UAX #29 и стеммер Snowball.
  • Added: Добавлено полное C API для DiskANN и оптимизировано zero-copy выполнение запросов в Python.
  • Fixed: Исправлены критические ошибки FTS, гонки в DiskANN/HNSW, проблемы с LOCK-файлами и SQL-движком.
v0.5.1minor
🕐 3 мес назад · релиз на GitHub ↗

Релиз Zvec v0.5.1: добавлена поддержка внешних векторных источников, нулевое копирование при запросах и улучшена стабильность Python-биндингов.

  • Added: Добавлена поддержка внешних векторных источников для гибкой загрузки и поиска данных.
  • Added: Реализован путь запросов с нулевым копированием через VectorViewClause и унифицирована валидация.
  • Added: Появилась возможность настройки prefetch-параметров (PO и PL) через параметры поиска.
  • Fixed: Исправлена стабильность Python-биндингов: улучшена валидация numpy-запросов и добавлены аннотации типов.
  • Fixed: Устранены проблемы с корректностью индексов и хранилища, включая очистку файлов RocksDB при удалении.