lance
Lance 是一个专为多模态 AI 设计的开源湖仓格式,旨在高效存储、查询和管理图像、视频、音频、文本及嵌入等多模态数据。它通过创新的文件格式、表格式和目录规范,帮助用户在对象存储上构建高性能的数据湖仓,从而支持复杂的 AI 工作流。
Lance 解决了传统数据格式(如 Parquet)在随机访问性能、向量搜索和数据版本管理上的不足。相比 Parquet 或 Iceberg,Lance 的随机访问速度快 100 倍,同时保持高效的扫描性能。此外,它支持混合搜索(向量相似性搜索、全文搜索和 SQL 分析),并提供零拷贝版本控制和 ACID 事务,非常适合需要频繁更新和回溯的机器学习特征工程。
对于开发者和研究人员来说,Lance 提供了与 Pandas、DuckDB、PyArrow 和 PyTorch 等流行工具的无缝集成,降低了使用门槛。无论是构建搜索引擎、特征存储,还是进行大规模机器学习训练,Lance 都能显著提升效率。其独特的技术亮点包括原生多模态数据支持、高效的二进制编码和懒加载机制,以及无需额外基础设施的自动版本管理。
如果你需要处理复杂多模态数据或优化 AI 数据管道,Lance 是一个值得尝试的工具。只需几行代码,即可将现有 Parquet 数据转换为 Lance 格式,快速体验其卓越性能。
使用场景
一家电商公司正在构建一个商品推荐系统,需要处理数百万条包含商品图片、描述文本和用户行为数据的多模态数据,并为实时查询提供支持。
没有 lance 时
- 数据存储在 Parquet 文件中,随机访问速度慢,每次查询特定商品信息时都需要加载大量无关数据,导致延迟高。
- 图片和文本数据分开存储,整合分析困难,开发人员需要额外编写代码来处理不同格式的数据。
- 数据更新频繁,但每次新增特征列都需要重写整个表,耗费大量存储空间和时间。
- 缺乏版本管理功能,模型训练时无法追溯历史数据状态,调试和复现结果变得复杂。
- 查询性能不足,尤其是在结合向量搜索和全文检索时,响应时间难以满足实时需求。
使用 lance 后
- 随机访问速度提升 100 倍,查询特定商品信息几乎瞬时完成,显著改善用户体验。
- 多模态数据统一存储,图片、文本和嵌入向量可以高效编码和懒加载,简化了数据处理流程。
- 支持高效列添加和回填功能,无需重写整个表,节省存储空间并加快数据更新速度。
- 自动版本控制功能让数据变更可追溯,支持时间旅行和分支管理,方便模型调试和结果复现。
- 结合向量相似性搜索、全文检索和 SQL 分析的能力,大幅提升复杂查询性能,满足实时推荐需求。
lance 的高性能和多功能特性显著提升了多模态数据处理效率,为电商推荐系统的开发和运行提供了坚实基础。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
多模态 AI 的开源湖仓格式(Open Lakehouse Format for Multimodal AI)
为湖仓提供高性能向量搜索、全文搜索、随机访问和特征工程能力。
兼容 Pandas、DuckDB、Polars、PyArrow、Ray、Spark,更多集成正在进行中。
Lance 是一个多模态 AI 的开源湖仓格式(Open Lakehouse Format)。它包含一个文件格式、表格式和目录规范,允许您在对象存储之上构建完整的湖仓,以支持您的 AI 工作流。Lance 非常适合:
- 构建具有混合搜索能力的搜索引擎和特征存储。
- 需要高性能 IO 和随机访问的大规模机器学习训练。
- 存储、查询和管理包括图像、视频、音频、文本和嵌入在内的多模态数据。
Lance 的主要特性包括:
表达性强的混合搜索: 在同一数据集上结合向量相似性搜索、全文搜索(BM25)和 SQL 分析,并通过加速的二级索引提升性能。
闪电般的随机访问: 比 Parquet 或 Iceberg 快 100 倍的随机访问速度,同时不牺牲扫描性能。
原生多模态数据支持: 使用高效的二进制编码和延迟加载,将图像、视频、音频、文本和嵌入存储在统一的格式中。
数据演进: 高效添加带有回填值的列,无需重写整个表,非常适合机器学习特征工程。
零拷贝版本控制: 自动版本控制,支持 ACID 事务、时间旅行、标签和分支——无需额外的基础设施。
丰富的生态系统集成: Apache Arrow、Pandas、Polars、DuckDB、Apache Spark、Ray、Trino、Apache Flink 和开放目录(Apache Polaris、Unity Catalog、Apache Gravitino)。
更多细节,请参阅完整的 Lance 格式规范。
[!TIP] Lance 正在积极开发中,我们欢迎贡献。请参阅我们的 贡献指南 以获取更多信息。
快速开始
安装
pip install pylance
安装预览版:
pip install --pre --extra-index-url https://pypi.fury.io/lance-format/pylance
[!TIP] 预览版比正式版发布更频繁,包含最新的功能和错误修复。它们经过与正式版相同的测试级别。 我们保证它们至少会在未来 6 个月内保持发布并可供下载。当您需要固定到特定版本时,请优先选择稳定版。
转换为 Lance 格式
import lance
import pandas as pd
import pyarrow as pa
import pyarrow.dataset
df = pd.DataFrame({"a": [5], "b": [10]})
uri = "/tmp/test.parquet"
tbl = pa.Table.from_pandas(df)
pa.dataset.write_dataset(tbl, uri, format='parquet')
parquet = pa.dataset.dataset(uri, format='parquet')
lance.write_dataset(parquet, "/tmp/test.lance")
读取 Lance 数据
dataset = lance.dataset("/tmp/test.lance")
assert isinstance(dataset, pa.dataset.Dataset)
Pandas
df = dataset.to_table().to_pandas()
df
DuckDB
import duckdb
# 如果出现段错误,请确保已安装 duckdb v0.7+ 版本
duckdb.query("SELECT * FROM dataset LIMIT 10").to_df()
向量搜索
下载 sift1m 子集
wget ftp://ftp.irisa.fr/local/texmex/corpus/sift.tar.gz
tar -xzf sift.tar.gz
将其转换为 Lance 格式
import lance
from lance.vector import vec_to_table
import numpy as np
import struct
nvecs = 1000000
ndims = 128
with open("sift/sift_base.fvecs", mode="rb") as fobj:
buf = fobj.read()
data = np.array(struct.unpack("<128000000f", buf[4 : 4 + 4 * nvecs * ndims])).reshape((nvecs, ndims))
dd = dict(zip(range(nvecs), data))
table = vec_to_table(dd)
uri = "vec_data.lance"
sift1m = lance.write_dataset(table, uri, max_rows_per_group=8192, max_rows_per_file=1024*1024)
构建索引
sift1m.create_index("vector",
index_type="IVF_PQ",
num_partitions=256, # IVF
num_sub_vectors=16) # PQ
搜索数据集
# 获取前 10 个最相似的向量
import duckdb
dataset = lance.dataset(uri)
# 抽样 100 个查询向量。如果出现段错误,请确保已安装 duckdb v0.7+ 版本
sample = duckdb.query("SELECT vector FROM dataset USING SAMPLE 100").to_df()
query_vectors = np.array([np.array(x) for x in sample.vector])
# 获取所有查询向量的最近邻
rs = [dataset.to_table(nearest={"column": "vector", "k": 10, "q": q})
for q in query_vectors]
目录结构
| 目录 | 描述 |
|---|---|
| rust | 核心 Rust 实现 |
| python | Python 绑定 (PyO3) |
| java | Java 绑定 (JNI) |
| docs | 文档源码 |
性能基准
向量搜索
我们使用 SIFT 数据集对 1M 个 128 维向量进行基准测试
- 对于 100 个随机抽样的查询向量,平均响应时间 <1ms(在 2023 年款 M2 MacBook Air 上)

- 近似最近邻(ANNs)始终是召回率和性能之间的权衡

与 Parquet 对比
我们使用 Oxford Pet 数据集创建了一个 Lance 数据集,以对 Lance 与 Parquet 和原始图像/XML 文件进行初步性能测试。对于分析查询,Lance 比直接读取原始元数据快 50-100 倍。对于批量随机访问,Lance 比 Parquet 和原始文件快 100 倍。

为什么选择 Lance 用于 AI/ML 工作流?
机器学习开发周期包含多个阶段:
graph LR
A[Collection] --> B[Exploration];
B --> C[Analytics];
C --> D[Feature Engineer];
D --> E[Training];
E --> F[Evaluation];
F --> C;
E --> G[Deployment];
G --> H[Monitoring];
H --> A;
传统的湖仓格式(lakehouse formats)专为 SQL 分析设计,在处理需要以下能力的 AI/ML 工作负载时表现不佳:
- 向量搜索(Vector search),用于相似性和语义检索
- 快速随机访问(Fast random access),用于采样和交互式探索
- 多模态数据存储(Multimodal data storage),支持图像、视频、音频以及嵌入(embeddings)的存储
- 数据演化(Data evolution),在无需重写整个表的情况下进行特征工程
- 混合搜索(Hybrid search),结合向量、全文检索和 SQL 谓词
尽管现有格式(如 Parquet、Iceberg、Delta Lake)在 SQL 分析方面表现出色,但它们需要额外的专业系统来实现 AI 功能。Lance 将这些以 AI 为核心的功能直接集成到湖仓格式中。
以下是不同格式在 ML 开发阶段中的对比:
| Lance | Parquet & ORC | JSON & XML | TFRecord | Database | Warehouse | |
|---|---|---|---|---|---|---|
| 分析(Analytics) | 快速 | 快速 | 慢 | 慢 | 一般 | 快速 |
| 特征工程(Feature Engineering) | 快速 | 快速 | 一般 | 慢 | 一般 | 良好 |
| 训练(Training) | 快速 | 一般 | 慢 | 快速 | 不适用 | 不适用 |
| 探索(Exploration) | 快速 | 慢 | 快速 | 慢 | 快速 | 一般 |
| 基础设施支持(Infra Support) | 丰富 | 丰富 | 一般 | 有限 | 丰富 | 丰富 |
版本历史
v5.0.0-beta.52026/04/04v5.0.0-beta.42026/04/02v5.0.0-beta.32026/04/02v5.0.0-beta.22026/03/30v4.0.02026/03/30v5.0.0-beta.12026/03/27v4.0.0-rc.32026/03/24v4.1.0-beta.32026/03/23v4.1.0-beta.22026/03/23v4.1.0-beta.12026/03/22v4.0.0-rc.22026/03/20v4.0.0-rc.12026/03/19v4.0.0-beta.132026/03/19v3.0.12026/03/19v3.0.1-rc.12026/03/18v4.0.0-beta.122026/03/13v4.0.0-beta.112026/03/13v3.0.02026/03/13v4.0.0-beta.102026/03/12v4.0.0-beta.92026/03/11常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。