lance: 为多模态 AI 设计的具有高性能向量搜索和随机访问能力的开放式 lakehouse 格式
lance: 为多模态 AI 设计的具有高性能向量搜索和随机访问能力的开放式 lakehouse 格式
它解决了什么问题
Lance 提供了一种专为多模态 AI 设计的高性能开放式 lakehouse 格式。它解决了传统以 SQL 为中心的 lakehouse 格式(如 Parquet 或 Iceberg)在现代 ML 训练和特征工程所需的随机访问、向量搜索和多模态数据存储方面的局限性。
工作原理
Lance 实现了一种可以构建在对象存储之上的文件格式、表格式和目录规范。它能够在单一统一的格式中实现嵌入(embeddings)、图像、视频、音频和文本的高效存储。它支持混合搜索——结合了向量相似度、全文搜索 (BM25) 和 SQL 分析——并为采样和探索提供闪电般的随机访问速度。
适用人群
它专为需要管理大规模多模态数据集、构建具有混合搜索能力的搜索引擎或特征存储,以及为大规模 ML 训练执行高性能 IO 的 AI 工程师和数据科学家而构建。
亮点
- 混合搜索: 在单个数据集上结合向量相似度、BM25 全文搜索和 SQL 分析。
- 快速随机访问: 随机访问速度比 Parquet 或 Iceberg 快高达 100 倍。
- 多模态支持: 对图像、视频、音频和文本进行原生存储和延迟加载。
- 数据演进: 允许在不要求全表重写的情况下添加带有回填值的列。
- 零拷贝版本控制: 包括 ACID 事务、时间旅行、标签和分支,且无需额外基础设施。
- 广泛的集成: 兼容 Apache Arrow、Pandas、Polars、DuckDB、Ray 和 Apache Spark。
Sources
- undefinedlance-format/lance