跳到主要内容

Vane Data v0.1.0

Vane Data 是面向 AI 工作负载的高性能多模态数据引擎。它基于 DuckDB fork,提供原生多模态处理能力,以及适用于本地和分布式环境的统一执行模型。

核心能力

  • 分布式 DuckDB 执行引擎
    在 DuckDB 基础上扩展分布式物理计划、分布式 Plan Fragment、FTE(容错执行)调度和分布式算子执行,并通过 Arrow Flight 提供跨 Worker 的 Exchange/Shuffle 数据传输。

  • Python UDF
    Relation UDF 支持逐行的 map、基于 Arrow Table 的 map_batches 和一对多的 flat_map。Expression UDF 提供 @vane.func、@vane.cls 及其对应的 .batch 形式。标量、批处理和类 UDF 均可通过 vane.attach_function() 注册为 SQL 函数。

  • AI 函数
    在 Python Expression API、Relation API 和 SQL 中提供带类型的 Prompt 与 Embed API。Prompt 集成 OpenAI、Anthropic、Google 和原生 vLLM 后端,Embed 支持 OpenAI、Google 和 SentenceTransformers。结构化输出和图像 Prompt 输入取决于 Provider 的支持情况。

  • 原生 vLLM 批处理执行
    实现原生 PhysicalVLLM 算子和 Actor Pool,通过在途任务数量限制控制任务提交。Prompt 按共享前缀分桶,并通过前缀感知路由分配给 Actor,以增加复用 vLLM Prefix Cache 的机会。
    原生 vLLM Prompt 路径目前仅支持文本输入。

  • 自适应多模态批处理与背压
    UDF 和 vLLM 执行路径根据行数、数据大小及在途任务限制,动态拆分或合并批次。资源准入控制和对象流背压限制排队任务的数量及其内存占用。

  • 容错执行
    支持任务重试、Worker 故障检测与替换、Split 重新分配、Attempt Fencing、取消和资源清理。

  • Ray Runner 与 Local Runner
    同一套 SQL 和 Relation 计划模型既可通过分布式 Ray Runner 执行,也可通过本地进程内 FTE Runner 执行。Ray Runner 是默认执行路径,支持单机和分布式执行。Local Runner 面向不依赖 Ray 的轻量、低开销本地执行。
    Local Runner 目前为实验性功能。

  • 多模态基准测试
    提供可对比的 Vane、Ray Data 和 Daft 流水线,覆盖音频转写、文档嵌入、图像分类和视频目标检测。
    当前基准测试使用单 GPU 机器上的本地文件,代表单节点环境,不是对原始分布式 Ray Data benchmark 的直接复现。

贡献者致谢

感谢所有通过非自动化贡献支持本次发布的作者与共同作者,贡献涉及 Vane、vane-website 和 demo-scene:

@kaka11chen、@QuakeWang、@caomaocao、@hubgeter、@liwuhen、@pollychen-lab、@figurant、@zy-kkk、@suxiaogang223、@jingdaws、@freemandealer、@liujiwen-up 和 @StanleyXu512。

发布相关链接