Descripción
ITZMA es una biblioteca de base de datos vectorial basada en Rust diseñada para realizar búsquedas de vectores de manera eficiente directamente sobre el almacenamiento de objetos. Proporciona una solución escalable, duradera y nativa de la nube para aplicaciones de IA que requieren que sus datos sean fácilmente accesibles sin la sobrecarga de un servidor de base de datos intermedio. Al integrar ITZMA dentro de su proceso de aplicación, puede interactuar directamente con el almacenamiento de objetos como S3, GCS, Azure, disco local o incluso almacenes en memoria, tratándolo como la fuente de verdad duradera para sus datos vectoriales.
Leer más
La arquitectura central de ITZMA está diseñada para entornos en la nube, permitiendo que múltiples procesos lean y escriban en el mismo bucket de almacenamiento de objetos de manera concurrente sin requerir un coordinador, bloqueo o líder. Esto se logra aprovechando las funcionalidades inherentes de `put-if-absent` y `actualización condicional` de los almacenes de objetos, asegurando la corrección y consistencia de los datos. Una operación de escritura se confirma en el bucket antes de que la llamada regrese, garantizando durabilidad.
ITZMA soporta tanto búsqueda de vectores densos como dispersos. Los vectores densos pueden ser indexados utilizando algoritmos HNSW o SQ8, elegidos por segmento, con candidatos reordenados en vectores exactos para asegurar resultados precisos. Los vectores dispersos, representados como pares (id de término, peso), se almacenan junto a los densos, permitiendo consultas dispersas exactas con un índice invertido opcional. Además, ofrece capacidades de búsqueda filtrada, permitiendo a los usuarios definir atributos tipados (Bool, Número, Texto, ConjuntoTexto, ConjuntoNúmero) al crear un espacio de nombres y aplicar filtros de manera independiente o para restringir consultas vectoriales.
Las características clave incluyen escrituras por lotes atómicas, soporte para varios backends de almacenamiento de objetos y una estrategia de indexación flexible que puede adaptarse a diferentes patrones de acceso (por ejemplo, HNSW para lecturas en caché, SQ8 para lecturas no en caché). La biblioteca también proporciona enlaces de Python sobre su núcleo seguro para la memoria en Rust, haciéndola accesible a una comunidad de desarrolladores más amplia. Las tareas de mantenimiento como la compactación y la indexación son explícitas, dando a los desarrolladores control total sobre la gestión de sus datos. ITZMA fue creada por Sergio Marcial, un ingeniero de software principal con amplia experiencia en sistemas distribuidos, con el objetivo de proporcionar una solución de búsqueda vectorial precisa y duradera.
- CategoríaBases de datos vectoriales y recuperación
- Modelo de preciosCódigo abierto
- ImplementaciónLibrary
- PlataformasWeb
Características principales de ITZMA
Búsqueda de vectores en almacenamiento de objetos
Biblioteca en Rust con enlaces a Python
Almacenamiento de datos escalable y duradero
Arquitectura nativa de la nube sin servidor
Soporta búsqueda de vectores densos (HNSW, SQ8)
Soporta búsqueda de vectores dispersos con índice invertido
Búsqueda filtrada en atributos tipados
Escrituras concurrentes desde múltiples procesos
Actualizaciones y eliminaciones atómicas por lotes
Compatible con S3, GCS, Azure, disco local, memoria
Compactación e indexación explícitas
Caché de lectura en RAM y NVMe
Informe de salud de solo lectura
Entrada de NumPy y Arrow en Python
¿Cómo usar ITZMA?
Instalar ITZMA: Agregue el crate de Rust desde crates.io o instale el paquete de Python desde PyPI.
Crear un espacio de nombres: Defina un espacio de nombres con dimensiones fijas, métrica (L2, coseno, producto punto) y atributos tipados.
Escribir documentos: Envíe actualizaciones y eliminaciones por lotes al espacio de nombres, que se almacenan en el bucket de objetos.
Consultar datos: Realice consultas de vectores densos o dispersos, con filtros opcionales, para recuperar los resultados más cercanos.
Gestionar mantenimiento: Llame explícitamente a la compactación, recolección de basura e indexación según sea necesario para un rendimiento óptimo.
Casos de uso de ITZMA
- Construcción de Aplicaciones de IA
- Almacenamiento de Datos Nativo de la Nube
- Recuperación en Tiempo Real
- Búsqueda de Vectores Densos y Dispersos
- Consultas Vectoriales Filtradas
- Gestión de Datos Distribuidos
- Desarrollo en Rust y Python



