Pipeline de embeddings em Rust que ingere textos, PDFs, imagens, áudios e sites, gera embeddings localmente ou com modelos na nuvem e os envia para bancos de dados vetoriais.
lance-format/lance
Formato aberto de tabela e arquivo para lakehouses de IA multimodal, com busca vetorial e textual e acesso aleatório rápido em object storage.
- Estrelas
- 7,266
- Forks
- 926
- Issues abertas
- 1,197
- Último commit
- há 3 horas
O que é?
Lance é uma especificação de formato de arquivo, formato de tabela e catálogo para criar um lakehouse sobre object storage para workloads de IA. Armazena imagens, vídeos, áudio, texto e embeddings em um único formato, com codificação de blobs e carregamento sob demanda de dados multimodais.
O projeto atende a workloads que lakehouses tradicionais baseados em Parquet gerenciam mal, como busca por similaridade, amostragem aleatória para treinamento de ML e inclusão de colunas de features retropreenchidas sem reescrever a tabela inteira. Oferece suporte a índices vetoriais, busca textual BM25, análises SQL no mesmo conjunto de dados e versionamento automático com time travel, tags e branches.
É possível gravar dados em Lance a partir de Parquet com poucas linhas de Python e lê-los com Pandas, Polars, DuckDB, PyArrow e PyTorch. Também são listadas integrações com Ray, Spark, Trino e Flink, e o núcleo é implementado em Rust, com bindings para Python e Java.
Recursos principais
- 01Busca por similaridade vetorial com índices IVF_PQ, além de busca textual (BM25) e consultas SQL.
- 02Acesso aleatório que, segundo os benchmarks do projeto, pode ser até 100 vezes mais rápido que o Parquet para consultas em lote.
- 03Armazena imagens, vídeos, áudio, texto e embeddings em um único formato, com carregamento sob demanda de blobs.
- 04Adiciona colunas com valores retropreenchidos sem reescrever a tabela inteira.
- 05Versionamento automático com transações ACID, time travel, tags e branches.
- 06Compatível com Pandas, Polars, DuckDB, PyArrow e PyTorch.
Casos de uso
- Criar mecanismos de busca ou feature stores que combinam filtros vetoriais, por palavras-chave e SQL.
- Treinar modelos de ML em larga escala com necessidade de amostragem aleatória rápida em conjuntos de dados de imagens ou vídeos.
- Gerenciar embeddings e ativos multimodais em um lakehouse baseado em object storage.
- Adicionar features derivadas a um conjunto de dados existente sem reescrevê-lo por completo.
Início rápido
- 1
Instale o pacote Python pylance
pip install pylance - 2
Converta um conjunto de dados Parquet para Lance e leia-o novamente no Python
Antes de usar
- O Lance lança versões com frequência, então fixe data_storage_version para garantir gravações determinísticas entre diferentes versões do Lance.
- O alias de formato de arquivo 'next' é instável e não deve ser usado em dados de produção.
Em coleções
Tópicos
Perguntas frequentes
- O que é lance?
- Formato aberto de tabela e arquivo para lakehouses de IA multimodal, com busca vetorial e textual e acesso aleatório rápido em object storage. Lance é uma especificação de formato de arquivo, formato de tabela e catálogo para criar um lakehouse sobre object storage para workloads de IA. Armazena imagens, vídeos, áudio, texto e embeddings em um único formato, com codificação de blobs e carregamento sob demanda de dados multimodais.
- lance é gratuito? Qual é a licença?
- lance é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- lance ainda é mantido?
- Manutenção ativa. O último commit de lance foi em 7 de nov. de 2026.
- Para que posso usar lance?
- Criar mecanismos de busca ou feature stores que combinam filtros vetoriais, por palavras-chave e SQL. Treinar modelos de ML em larga escala com necessidade de amostragem aleatória rápida em conjuntos de dados de imagens ou vídeos. Gerenciar embeddings e ativos multimodais em um lakehouse baseado em object storage. Adicionar features derivadas a um conjunto de dados existente sem reescrevê-lo por completo.
- Como instalar lance?
- Instale o pacote Python pylance: pip install pylance Converta um conjunto de dados Parquet para Lance e leia-o novamente no Python
- Onde consigo lance?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lance-format/lance
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um backend em Python que declara dados multimodais, colunas calculadas, índices vetoriais e rotas HTTP em um único arquivo.
Biblioteca Python de DataFrames para explorar e visualizar tabelas com bilhões de linhas sem carregá-las totalmente na memória.
Ferramenta de linha de comando para executar consultas SQL em bancos de dados por meio de drivers ADBC, com shell interativo e exportação de arquivos.
Framework declarativo de deep learning para treinar, ajustar e implantar LLMs e modelos multimodais e tabulares a partir de configurações YAML.
Implementação em PyTorch do GeoCLIP, um modelo no estilo CLIP que alinha imagens a coordenadas GPS para geolocalização global de imagens.