据作者现场录音整理,按讲者脉络转述,不是逐字稿。讲者是 LanceDB Senior Engineer,网名 Xuanwo,中文演讲,快闪场约 12 分钟,无问答环节。开场有两段调试设备的空白。

一句话

机器人数据只采集一次,但每换一版 caption、embedding 或模型都要对历史数据重新加工,所以它需要一个像代码构建系统那样的东西:原始数据当源码,用函数构建出新列,按 cell 标脏、增量重算、按快照发布。LanceDB 从文件格式、表格式到计算层一路往上做这件事。

论断

1. 机器人数据要的是构建系统,不只是存储

他从研究员常问的一个问题讲起:模型上一次训练到底基于哪一版 caption。数据从源头只采集一次,之后不断需要重建、追加新列。

“我们这个数据,它每一次的模型和更新,它都是一次对这个历史数据的重新构建”

  • 触发重算的三种情况:新数据追加、模型组出了新模型、换了新的 embedding API。
  • 他把构建系统的要素一一对应到数据上:源码是原始采集数据,构建规则是 function,增量依据是像 git 一样给每个 cell 标 dirty,产物是 artifacts,再加一个能标记整张表在整个训练周期状态的 checkpoint。

2. 加一列几乎零开销,表本身带版本管理

他说 Lance format 从一开始就是针对 AI 训练设计的,第一要点是加列没有开销:给表加新列时不重写已有数据,只写新的数据文件。表本身有完整的生命周期管理,支持分支、tag、分支间 cherry-pick 和 merge,保证每次训练都对应一份完整快照。

“我们 Lance format 从设计最开始就是完全针对于 AI 训练……去设计的,也就是我们第一要点就是它的 add column,基本上是没有开销的”

  • 一张表里可以同时管视频、音频、各种 embedding 和图片,在同一张表里对视频切片,再对切片做语义分析和检索。
  • 他说通过云存储管理大对象,比传统方式快 8 到 9 倍。比较对象和测的是什么操作没听清。

3. NULL 不够用,cell 要带状态

生产中常用 NULL 标记某列还没有数据。但机器人的夹爪还没夹到物体时,它的值是一个有效的空状态,和"没算"“没采到"混在一起就管不住。

“我们要求区分说这个值到底是有效,是没有采集,还是说采集但是失败了,还是说采集到了,这个夹子夹到它自己了”

  • 他们为此设计了 cell flag 机制,给每个 cell 存状态。
  • 配套一种针对稀疏数据的新编码,他说能把原始的 300 多兆压到 1 兆,存储降低 300 多倍。原始指什么格式、哪张表,没说。

4. 写一个 Python 函数绑到列上,系统负责增量计算

用户写一个简单的 Python 函数(比如 embedding 计算),注册到系统并绑定到某一列,后台就会自动刷新这一列。系统负责切片、调度 worker、持久化成功的结果;全部算完才在新快照里整体发布,避免用户某一瞬间读到错误的数据。

“这些所有调度出来的 worker 全都是可持久化的,也就是说我们不会让用户宝贵的 GPU 资源去重复的去做计算”

  • 他说从设计一开始就要做增量计算:不管表之前多大,新增 100 帧数据就只算这 100 帧。

5. 一个全局版本号定位表在某一时刻的全部状态

任何时候都可以用一个 global version id 定位到某张表,拿到和这个时间点相关的所有东西。版本上可以挂用哪个模型算的、什么时候算完、用户自定义的元数据。

“可以把一个表,它是用哪个模型去训练的,它是在什么时候训练完成的,包括一些用户自定义的data,它全都可以加到这里面”

  • 例子:桌上一个苹果,主视角和其他多个摄像头从不同角度同时拍,靠一个机制(录音不清,疑为快照)保证苹果的位置始终正确。

6. 从文件格式走到表格式,再走到计算格式

他说最重要的一点是这个系统能 scale。一个用户有 25 PB 的工厂视频数据集,不断随机抽帧做端到端训练,再更新训练集。

“我们从一个 storage format 进化到了一个计算的format”

  • 他说只有文件格式解决不了实际问题,所以设计了新的表格式,又把 function、物化视图并进 Lance 体系。
  • 在真实业务里,他说 Lance 比 LeRobot(疑为此名)原生格式快 3 到 5 倍,并说 LeRobot 已经原生支持用 Lance 做数据摄入和训练。测的是加载、随机读还是训练吞吐没说。
  • 合作方提到了 TikTok 等,做大模型训练、测试和推理。
  • 他说后面会有更多开源进展。

存疑

  • 挂在列上的那个计算功能的产品名没听清,需查 LanceDB 公开资料。
  • 讲增量计算时有一句说"只会去重试已经处理过的 range”,和上下文意思相反,需回放确认。
  • 一张表"6000 多帧"对持续追加的机器人数据表偏小,可能是"6000 多万帧"。
  • 多摄像头例子里的摄像头数量(听到的是 18 个)存疑。
  • 3 到 5 倍那段的比较对象按语境推断为 Hugging Face LeRobot,未核实。
  • 另一家合作方的名字没听清,疑为 Applied Intuition。