用例 · 多模态模型训练

把原始多模态数据变成可发布的训练数据集

通过一条统一的多模态训练数据流水线,以 SQL 处理、GPU 加速标注和 embedding 将原始数据转换为带版本、可直接训练的数据集,并从本地环境扩展到 Ray 集群。

原始 · 多模态
数据集发布
执行时间线

异构资源重叠执行。

传统流水线会形成阶段屏障和流水线气泡。Vane 通过流式执行与动态批处理,将 CPU、GPU 和 I/O 工作负载重叠调度。

同一条流水线Traditional 和 Vane 在同一时间尺度上运行相同阶段;越早完成表示关键路径越短。
城市路口相机帧
camera frame · ts 00:14.280
输入
camera framesLiDAR sweepsradar returnsego pose + calib
解码
解码 frames加载 sweeps
对齐
时间同步ego-pose 对齐
融合
传感器投影
打包
标注 + 跟踪样本 embed
Traditional Pipeline阶段屏障 · 更长关键路径

阶段屏障使 CPU 解码、GPU 推理和 I/O 串行执行,GPU 需要等待解码批次。

Vane Pipeline重叠流式执行 · 更短关键路径

Dynamic batching 让 CPU 解码、GPU 推理和 I/O 流式传输重叠,更早完成同一条流水线。

为什么选择 Vane

更高吞吐,更简洁的代码

高性能:极高吞吐,最大化资源利用率

从数据准备到 embedding,多模态 AI 工作负载的核心瓶颈是流水线效率。Vane 最大化端到端吞吐。

  • 异构执行,不让 GPU 空等异步重叠 CPU 处理、GPU 推理、数据传输与 I/O,使异构资源并发工作,避免阶段间等待。
  • 带背压与动态批处理的流式执行通过自适应批处理与流量控制,持续处理大规模媒体和传感器数据;在内存占用有界的前提下最大化吞吐。
  • Ray 原生分布式扩展在 Ray 上将 PB 级历史数据重处理作为一张统一的可扩展执行图运行,替代割裂的多系统流水线和长周期批处理任务。
查看基准测试

一套引擎,代码简单

多模态数据工作流通常需要多套系统和多层编排。Vane 将数据处理、AI 推理与数据集准备统一到一张执行图中。

  • 一个引擎,一张图在一条统一流水线中组合 DuckDB 兼容 SQL、Python UDF、AI 函数和 Ray 执行。
  • DuckDB 兼容 API从现有 Ray、Spark 或 Daft 流水线迁移成本低。
  • 从原始数据到可发布数据集完整流水线收敛为一张可读执行图,无需额外胶水代码。
阅读代码
代表性代码

训练数据发布流水线

文件选择、媒体解码、GPU caption/自动标注、质量过滤、去重、embedding 和发布打包都在同一条可读流水线里完成。

SQL 选择Ray GPU UDFSQL 质量门Embedding + 发布
training_data_release.py
import vane


con = vane.connect()


raw = con.sql("""
    SELECT id, uri, media_type, content_hash
    FROM read_parquet('s3://training-corpus/*.parquet')
    WHERE split = 'train'
""")


def CaptionAndScore(table):
    ...


labeled = raw.map_batches(
    CaptionAndScore,
    schema=release_schema,
    gpus=1,
)
labeled.to_table("labeled")


release = con.sql("""
    SELECT id, uri, caption, quality_score,
           ai_embed(
               caption,
               provider := 'transformers',
               model := 'sentence-transformers/all-MiniLM-L6-v2'
           ) AS caption_embedding
    FROM labeled
    WHERE quality_score >= 0.8
    QUALIFY row_number() OVER (
        PARTITION BY content_hash
        ORDER BY quality_score DESC
    ) = 1
""")


release.write_parquet("s3://dataset-releases/mm-v42/part-00000.parquet")

构建高效简单的多模态训练数据流水线