El equipo de investigación de Alibaba Tongyi Lab lanzó ‘Zvec’, una base de datos vectorial en proceso de código abierto que apunta a cargas de trabajo de recuperación en el dispositivo y en el borde. Se posiciona como ‘el SQLite de las bases de datos vectoriales’ porque se ejecuta como una biblioteca dentro de su aplicación y no requiere ningún servicio o demonio externo. Está diseñado para recuperación de generación aumentada (RAG), búsqueda semántica y cargas de trabajo de agentes que deben ejecutarse localmente en computadoras portátiles, dispositivos móviles u otros dispositivos periféricos o de hardware restringidos.
La idea central es simple. Muchas aplicaciones ahora necesitan búsqueda de vectores y filtrado de metadatos, pero no desean ejecutar un servicio de base de datos de vectores independiente. Los sistemas tradicionales de estilo servidor son pesados para herramientas de escritorio, aplicaciones móviles o utilidades de línea de comandos. Un motor integrado que se comporta como SQLite pero para incrustaciones encaja en esta brecha.
¿Por qué la búsqueda vectorial integrada es importante para RAG?
RAG y los canales de búsqueda semántica necesitan más que un simple índice. Necesitan vectores, campos escalares, CRUD completo y persistencia segura. Las bases de conocimiento locales cambian a medida que cambian los archivos, las notas y los estados del proyecto.
Las bibliotecas de índice como Faiss proporcionan una búsqueda aproximada del vecino más cercano, pero no manejan almacenamiento escalar, recuperación ante fallos ni consultas híbridas. Terminas construyendo tu propia capa de almacenamiento y coherencia. Las extensiones integradas como DuckDB-VSS agregan búsqueda vectorial a DuckDB pero exponen menos opciones de índice y cuantificación y un control de recursos más débil para escenarios de borde. Los sistemas basados en servicios, como Milvus o las nubes vectoriales administradas, requieren llamadas de red y una implementación separada, lo que a menudo es excesivo para las herramientas en el dispositivo.
Zvec afirma encajar específicamente en estos escenarios locales. Le brinda un motor nativo de vectores con persistencia, gobernanza de recursos y características orientadas a RAG, empaquetado como una biblioteca liviana.
Arquitectura central: en proceso y nativa de vectores
Zvec se implementa como una biblioteca integrada. Lo instala con pip install zvec y abre colecciones directamente en su proceso de Python. No hay ningún servidor externo ni capa RPC. Usted define esquemas, inserta documentos y ejecuta consultas a través de la API de Python.
El motor está construido sobre Proxima, el motor de búsqueda vectorial de alto rendimiento, grado de producción y probado en batalla del Grupo Alibaba. Zvec envuelve Proxima con una API más simple y un tiempo de ejecución integrado. El proyecto se publica bajo la licencia Apache 2.0.
El soporte actual cubre Python 3.10 a 3.12 en Linux x86_64, Linux ARM64 y macOS ARM64.
Los objetivos de diseño son explícitos:
Ejecución integrada en el proceso Indexación y almacenamiento nativos de vectores Persistencia lista para producción y seguridad contra fallas
Esto lo hace adecuado para dispositivos perimetrales, aplicaciones de escritorio e implementaciones sin operaciones.
Flujo de trabajo del desarrollador: de la instalación a la búsqueda semántica
La documentación de inicio rápido muestra una ruta corta desde la instalación hasta la consulta.
Instale el paquete:
pip install zvec Defina un CollectionSchema con uno o más campos vectoriales y campos escalares opcionales. Llame a create_and_open para crear o abrir la colección en el disco. Inserte objetos Doc que contengan un ID, vectores y atributos escalares. Cree un índice y ejecute VectorQuery para recuperar los vecinos más cercanos.
Ejemplo:
zvec.Doc(id=”doc_1″, vectors={“embedding”: [0.1, 0.2, 0.3, 0.4]}), zvec.Doc(id=”doc_2″, vectores={“incrustación”: [0.2, 0.3, 0.4, 0.1]}), ]) # Buscar por resultados de similitud de vectores = collection.query( zvec.VectorQuery(“incrustación”, vector=[0.4, 0.3, 0.3, 0.1]), topk=10 ) # Resultados: lista de {‘id’: str, ‘score’: float, …}, ordenados por relevancia print(resultados)
Los resultados aparecen como diccionarios que incluyen identificaciones y puntuaciones de similitud. Esto es suficiente para construir una búsqueda semántica local o una capa de recuperación RAG sobre cualquier modelo de incrustación.
Rendimiento: VectorDBBench y más de 8000 QPS
Zvec está optimizado para un alto rendimiento y baja latencia en las CPU. Utiliza diseños de memoria compatibles con caché, subprocesos múltiples, instrucciones SIMD y captación previa de CPU.
En VectorDBBench en el conjunto de datos Cohere 10M, con hardware comparable y recuperación coincidente, Zvec informa más de 8000 QPS. Esto es más del doble del número 1 de la clasificación anterior, ZillizCloud, y al mismo tiempo reduce sustancialmente el tiempo de creación del índice en la misma configuración.
Estas métricas muestran que una biblioteca integrada puede alcanzar un rendimiento a nivel de nube para búsquedas de similitudes de gran volumen, siempre que la carga de trabajo se asemeje a las condiciones de referencia.
Capacidades RAG: CRUD, búsqueda híbrida, fusión, reclasificación
El conjunto de funciones está optimizado para RAG y recuperación de agentes.
Zvec apoya:
CRUD completo en documentos para que la base de conocimiento local pueda cambiar con el tiempo. Evolución del esquema para ajustar estrategias y campos de índice. Recuperación de múltiples vectores para consultas que combinan varios canales de incrustación. Un reranker integrado que admite fusión ponderada y fusión de rango recíproco. Búsqueda híbrida de vectores escalares que inserta filtros escalares en la ruta de ejecución del índice, con índices invertidos opcionales para atributos escalares.
Esto le permite desarrollar asistentes de dispositivo que combinan recuperación semántica, filtros como usuario, hora o tipo, y múltiples modelos de incrustación, todo dentro de un motor integrado.
Conclusiones clave
Zvec es una base de datos vectorial integrada en proceso posicionada como la ‘SQLite de la base de datos vectorial’ para cargas de trabajo RAG en el dispositivo y en el borde. Está construido sobre Proxima, el motor de búsqueda vectorial de alto rendimiento, grado de producción y probado en batalla de Alibaba, y se lanza bajo Apache 2.0 con soporte de Python en Linux x86_64, Linux ARM64 y macOS ARM64. Zvec ofrece >8000 QPS en VectorDBBench con el conjunto de datos Cohere 10M, logrando más del doble de la clasificación número 1 anterior (ZillizCloud) y al mismo tiempo reduce el tiempo de creación del índice. El motor proporciona gobernanza explícita de recursos a través de escrituras de transmisión de 64 MB, modo mmap opcional, memoria_limit_mb experimental y simultaneidad configurable, optimización_threads y query_threads para el control de la CPU. Zvec está preparado para RAG con CRUD completo, evolución de esquemas, recuperación de múltiples vectores, reclasificación integrada (fusión ponderada y RRF) y búsqueda híbrida de vectores escalares con índices invertidos opcionales, además de una hoja de ruta del ecosistema dirigida a LangChain, LlamaIndex, DuckDB, PostgreSQL e implementaciones de dispositivos reales.
Consulte los detalles técnicos y el repositorio. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.