Pipeline de embeddings en Rust que procesa texto, PDF, imágenes, audio y sitios web, genera embeddings localmente o con modelos en la nube y los envía a bases de datos vectoriales.
lance-format/lance
Formato abierto de tablas y archivos lakehouse para IA multimodal, con búsqueda vectorial y de texto completo, y acceso aleatorio rápido en almacenamiento de objetos.
- Estrellas
- 7,261
- Forks
- 925
- Issues abiertos
- 1,197
- Último commit
- hace 13 horas
¿Qué es?
Lance es un formato de archivos, un formato de tablas y una especificación de catálogo para crear un lakehouse sobre almacenamiento de objetos destinado a cargas de trabajo de IA. Guarda imágenes, videos, audio, texto y embeddings en un solo formato, con codificación de blobs y carga diferida para datos multimodales.
El proyecto está pensado para cargas de trabajo que los lakehouses tradicionales basados en Parquet gestionan mal, como la búsqueda por similitud, el muestreo aleatorio para entrenar modelos de ML y la incorporación de columnas de características con valores retroactivos sin reescribir toda la tabla. Admite índices vectoriales, búsqueda de texto completo con BM25, análisis SQL sobre el mismo conjunto de datos y control automático de versiones con time travel, etiquetas y ramas.
Lance permite escribir datos desde Parquet con unas pocas líneas de Python y leerlos con Pandas, Polars, DuckDB, PyArrow y PyTorch. También incluye integraciones con Ray, Spark, Trino y Flink, y su núcleo está implementado en Rust, con bindings para Python y Java.
Funciones clave
- 01Búsqueda de similitud vectorial con índices IVF_PQ, además de consultas de texto completo (BM25) y SQL.
- 02Acceso aleatorio que, según las pruebas de rendimiento del proyecto, puede ser hasta 100 veces más rápido que Parquet para búsquedas por lotes.
- 03Guarda imágenes, videos, audio, texto y embeddings en un solo formato, con carga diferida de blobs.
- 04Añade columnas con valores retroactivos sin reescribir toda la tabla.
- 05Control automático de versiones con transacciones ACID, time travel, etiquetas y ramas.
- 06Compatible con Pandas, Polars, DuckDB, PyArrow y PyTorch.
Casos de uso
- Crear motores de búsqueda o feature stores que combinen filtros vectoriales, por palabras clave y SQL.
- Entrenar modelos de ML a gran escala cuando se necesita muestreo aleatorio rápido en conjuntos de datos de imágenes o videos.
- Gestionar embeddings y recursos multimodales en un lakehouse con almacenamiento de objetos.
- Añadir características derivadas a un conjunto de datos existente sin reescribirlo por completo.
Inicio rápido
- 1
Instala el paquete de Python pylance
pip install pylance - 2
Convierte un conjunto de datos Parquet a Lance y vuelve a leerlo en Python
Antes de usarlo
- Lance publica versiones con frecuencia, así que fija data_storage_version para obtener escrituras deterministas entre distintas versiones de Lance.
- El alias de formato de archivo 'next' es inestable y no debe usarse para datos de producción.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es lance?
- Formato abierto de tablas y archivos lakehouse para IA multimodal, con búsqueda vectorial y de texto completo, y acceso aleatorio rápido en almacenamiento de objetos. Lance es un formato de archivos, un formato de tablas y una especificación de catálogo para crear un lakehouse sobre almacenamiento de objetos destinado a cargas de trabajo de IA. Guarda imágenes, videos, audio, texto y embeddings en un solo formato, con codificación de blobs y carga diferida para datos multimodales.
- ¿lance es gratuito? ¿Qué licencia tiene?
- lance es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿lance sigue mantenido?
- Mantenimiento activo. El último commit de lance fue el 5 nov 2026.
- ¿Para qué puedo usar lance?
- Crear motores de búsqueda o feature stores que combinen filtros vectoriales, por palabras clave y SQL. Entrenar modelos de ML a gran escala cuando se necesita muestreo aleatorio rápido en conjuntos de datos de imágenes o videos. Gestionar embeddings y recursos multimodales en un lakehouse con almacenamiento de objetos. Añadir características derivadas a un conjunto de datos existente sin reescribirlo por completo.
- ¿Cómo se instala lance?
- Instala el paquete de Python pylance: pip install pylance Convierte un conjunto de datos Parquet a Lance y vuelve a leerlo en Python
- ¿Dónde consigo lance?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lance-format/lance
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un backend de Python que permite declarar datos multimodales, columnas calculadas, índices vectoriales y rutas HTTP en un solo archivo.
Biblioteca de DataFrame para Python que permite explorar y visualizar de forma diferida conjuntos de datos tabulares de miles de millones de filas, sin cargarlos por completo en memoria.
Herramienta de línea de comandos para ejecutar consultas SQL en bases de datos mediante drivers ADBC, con shell interactivo y exportación a archivos.
Framework declarativo de deep learning para entrenar, ajustar y desplegar LLM, modelos multimodales y tabulares a partir de configuraciones YAML.
Implementación en PyTorch de GeoCLIP, un modelo al estilo CLIP que alinea imágenes con coordenadas GPS para geolocalizar imágenes en todo el mundo.