Описание
ITZMA — это библиотека базы данных векторов на основе Rust, разработанная для эффективного поиска векторов непосредственно на объектном хранилище. Она предоставляет масштабируемое, надежное и облачное решение для приложений ИИ, которые требуют, чтобы их данные были легко доступны без накладных расходов на промежуточный сервер базы данных. Встраивая ITZMA в процесс вашего приложения, вы можете взаимодействовать непосредственно с объектным хранилищем, таким как S3, GCS, Azure, локальный диск или даже хранилища в памяти, рассматривая его как надежный источник правды для ваших векторных данных.
Читать далее
Основная архитектура ITZMA разработана для облачных сред, позволяя нескольким процессам одновременно читать и записывать в одно и то же ведро объектного хранилища без необходимости в координаторе, блокировке или лидере. Это достигается за счет использования встроенных функций `put-if-absent` и `conditional update` объектных хранилищ, что обеспечивает правильность и согласованность данных. Операция записи подтверждается в ведре до возврата вызова, что гарантирует долговечность.
ITZMA поддерживает как плотный, так и разреженный поиск векторов. Плотные векторы могут индексироваться с использованием алгоритмов HNSW или SQ8, выбираемых для каждого сегмента, с повторной сортировкой кандидатов по точным векторам для обеспечения точных результатов. Разреженные векторы, представленные в виде пар (идентификатор термина, вес), хранятся вместе с плотными, что позволяет выполнять точные разреженные запросы с необязательным обратным индексом. Кроме того, она предлагает возможности фильтрованного поиска, позволяя пользователям определять типизированные атрибуты (Bool, Number, Text, TextSet, NumberSet) при создании пространства имен и применять фильтры независимо или для уточнения векторных запросов.
Ключевые функции включают атомарные пакетные записи, поддержку различных бэкендов объектного хранилища и гибкую стратегию индексирования, которая может адаптироваться к различным паттернам доступа (например, HNSW для кэшированных чтений, SQ8 для некэшированных чтений). Библиотека также предоставляет привязки для Python поверх своей безопасной по памяти ядра на Rust, что делает ее доступной для более широкой разработческой аудитории. Задачи обслуживания, такие как компакция и индексирование, являются явными, предоставляя разработчикам полный контроль над управлением данными. ITZMA разработана Серджио Марсиалом, ведущим инженером-программистом с обширным опытом в распределенных системах, с целью предоставить точное и надежное решение для поиска векторов.
- КатегорияВекторные базы данных и поиск
- Модель ценообразованияОткрытый код
- РазвёртываниеLibrary
- ПлатформыВеб
Основные функции ITZMA
Поиск векторов на объектном хранилище
Библиотека на Rust с привязками для Python
Масштабируемое и надежное хранение данных
Облачная архитектура без сервера
Поддержка плотного поиска векторов (HNSW, SQ8)
Поддержка разреженного поиска векторов с обратным индексом
Фильтрованный поиск по типизированным атрибутам
Одновременные записи от нескольких процессов
Атомарные пакетные вставки и удаления
Совместимость с S3, GCS, Azure, локальным диском, памятью
Явная компакция и индексирование
Кэш чтения RAM и NVMe
Отчет о состоянии только для чтения
Ввод NumPy и Arrow в Python
Как использовать ITZMA?
Установите ITZMA: добавьте крейт Rust из crates.io или установите пакет Python из PyPI.
Создайте пространство имен: определите пространство имен с фиксированными размерами, метрикой (L2, косинус, скалярное произведение) и типизированными атрибутами.
Запишите документы: отправьте пакетные вставки и удаления в пространство имен, которые хранятся в ведре объектов.
Запросите данные: выполните плотные или разреженные векторные запросы с необязательными фильтрами для получения ближайших совпадений.
Управляйте обслуживанием: явно вызывайте компакцию, сбор мусора и индексирование по мере необходимости для оптимальной производительности.
Варианты использования ITZMA
- Создание приложений ИИ
- Облачное хранение данных
- Извлечение в реальном времени
- Поиск плотных и разреженных векторов
- Фильтрованные векторные запросы
- Распределенное управление данными
- Разработка на Rust и Python



