Skip to content

LanceDB 中文文档 ​

面向多模态 AI 的 Lakehouse。

LanceDB 是面向 AI 团队的多模态 Lakehouse,它把数据整理、特征工程、检索与模型训练放在同一层数据之上。 它构建在 Lance 之上——一个专为多模态 AI 数据设计的开源 Lakehouse 格式。

你可以在同一个平台上从数据探索一路走到模型训练,而不必同时维护存储、特征、检索、训练四套割裂的系统。

在正确的数据上更快训练 ​

在 PB 级规模上做检索、整理与训练,所有多模态数据都在一张表里。

当原始数据、元数据、向量、特征和治理产物分散在不同系统里时,准备训练数据和跑实验都会变慢。LanceDB 把它们收在一张带版本的多模态表里,于是 AI 团队少花时间拼基础设施,多花时间改进数据集、验证特征、喂满 GPU。

为模型研究加速数据飞轮 ​

把所有 AI 数据留在同一张表里。 找到失败样本,修数据,再重新训练。

1. 为每一个失败样本找到对应的训练子集

从一次抓取失败或一次评测失败的样本出发,把检索、元数据与向量放在一起查,召回相似的样本,再整理成一份有针对性的训练子集。

2. 每种模态都用同一份数据集

把 episode、帧、元数据、特征与向量放在同一张受 schema 约束的表里,不需要额外流水线去同步它们。表的版本能让你把每一次训练回溯到它当时用的那份确切数据。

3. 多做迭代,少守着预处理作业

把你实验需要的计算列和物化视图(比如抽取出的特征或向量)声明出来,数据变化时刷新它们。在 LanceDB Enterprise 上,列刷新是跑在集群上的后台作业,而不是压在你自己的代码里。

4. 更高的 GPU 利用率,更快的收敛

别让 GPU 饿着。StreamingDataset 以全局打乱、确定性批次的方式把多模态训练数据流式送进 PyTorch,兼具快速随机访问与高吞吐扫描。

同一张表可以同时用来整理训练数据、添加派生特征、召回样本,并喂给依赖昂贵 GPU 的训练作业。训练负载可以从本地存储或对象存储中采样、打乱、按投影扫描列,然后从某个打上 tag 的数据集版本组装出可直接进 GPU 的批次。训练流水线需要数据整理、派生特征、可复现的数据切分、快速随机访问,以及一条通往 PyTorch 这类框架的干净路径——无论一个工作流只用一张表还是几张相关的表,LanceDB 都用同一套表模型把它们连起来。

架构:Embedded 与 Enterprise ​

LanceDB 提供两个形态,共用同一套 Lance 格式与表模型——表数据、版本与索引都以开放的列式文件存放。两者真正的差别,是围绕这个格式如何组织存储与计算:从本地的 Embedded 起步,当团队需要分布式规模、托管基础设施、私有化部署,或更高吞吐的整理、特征工程、检索与训练工作流时,再迁移到 Enterprise。

LanceDB Embedded一个开源的嵌入式检索库,跑在你自己的应用进程里,不需要单独部署数据库服务。LanceDB Enterprise面向生产负载的分布式多模态 Lakehouse 服务,具备托管基础设施与更高吞吐的工作流。

逐项对比见 Embedded 与 Enterprise 对比,涵盖架构、延迟、吞吐以及日常使用上的差异。

使用 LanceDB 的项目 ​

训练 ​

  • stable-worldmodel —— 一个构建在 LanceDB 数据层之上的、可复现的世界模型研究平台,在 Push-T 上报告数据加载比 HDF5 / MP4 快 3–4 倍,而磁盘占用只有其一小部分。
  • le-wm —— 一个从像素出发的联合嵌入预测世界模型,在 stable-worldmodel 平台及其 LanceDB 数据层上训练。
  • lerobot-lancedb —— HuggingFace LeRobot 数据集的即插即用 LanceDB 后端,在各类机器人数据集上加载更快。

智能体应用 ​

在这些项目里,LanceDB 与 Lance 提供那一层多模态数据底座,把原始观测、标注、特征以及训练或记忆的访问模式放在同一种格式里,而不是散落到为各任务定制的存储中。

按你的负载开始 ​

写入数据建表、追加记录,并在数据变化时更新或删除行。构建检索使用向量检索、全文检索、混合检索、重排序、过滤与 SQL。整理训练数据在训练之前对记录做画像、抽样、切块、连接与去重。就地做特征工程直接派生计算列与物化视图,不必把数据搬到别处。把数据加载进 PyTorch用 LanceDB 表与置乱(permutation)实现按投影、打乱、随机访问的训练读取。管理 Catalog 对象从 Python、TypeScript 或 SQL 创建、列出与删除表、命名空间和视图。