EMR Serverless Daft 如何简化多模态数据处理:视频抽帧、清洗、标注全流程与具身智能实践

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 阿里云 EMR Serverless Spark 引入 Ray 分布式计算框架与 Daft 高性能数据引擎,为用户提供了一套开箱即用、免运维且极致高效的多模态数据处理基础设施。

引言:具身智能时代的数据工程挑战

在大模型跨界多模态的浪潮下,具身智能(Embodied AI) 正成为人工智能的下一个前沿高地。与传统 AI 依赖互联网静态图文不同,具身智能的训练高度依赖来自真实物理世界的多模态感知数据——包括第一人称视角(Egocentric)视频、深度传感器数据、力反馈信号等。

以训练一个能理解厨房操作的机器人为例,我们需要采集数千小时的人类佩戴摄像头拍摄的操作视频。解码后,这些数据将产生数亿张图像帧。然而,原始数据中充斥着大量“噪音”:静止画面、模糊镜头、无效空帧。如何从海量冗余中高效提取高质量训练样本,已成为制约具身智能发展的核心瓶颈。

为了解决这一行业痛点,阿里云 EMR Serverless Spark 引入了 Ray 分布式计算框架,并深度集成了专为多模态 AI 工作负载设计的高性能数据引擎——Daft。本文将深入解析如何利用这套组合拳,构建从视频抽帧、清洗到标注的全自动化流水线。

一、 Daft:为 AI 多模态而生的高性能数据引擎

1.1 为什么需要 Daft?

Daft 是一款专为 AI 时代多模态数据处理而设计的分布式 DataFrame 引擎。在大模型驱动的智能应用浪潮中,企业需要处理的数据早已不止于结构化表格——视频、图像、音频、Embedding 等非结构化数据正成为 AI 工作负载的核心燃料。Daft 正是为此而生。

在大模型驱动的智能应用中,数据早已超越结构化表格。视频、图像、音频、Embedding 等非结构化数据成为了 AI 的核心燃料。传统数据处理引擎在处理这些复杂类型时往往力不从心,而 Daft 正是为此而生:

  • 多模态原生支持:Daft 从底层类型系统将 ImageVideoAudioTensor 视为“一等公民”,天然理解其物理布局并进行针对性优化。
  • 极简开发体验:开发者只需一行表达式,即可在分布式集群上完成视频解码、帧提取、图像变换,无需关心底层的分片调度。
  • “数据处理即 AI 推理”:通过 UDF 机制,Daft 允许将通义千问等大模型的推理能力直接嵌入 DataFrame 流水线。图像理解、视频描述生成等 AI 任务与数据清洗无缝衔接,将原本割裂的多套系统收敛为一条统一的 Python Pipeline。

1.2 架构优势

  • Rust 核心 + Arrow 列式内存:Daft 以 Python API 暴露数据处理能力,底层由 Rust 执行引擎支撑,并利用 Apache Arrow 生态的列式内存表示,降低序列化与数据交换开销。
  • 面向 AI/多模态负载的执行优化:Daft 采用惰性求值,执行前会进行规则优化和代价优化,例如谓词/投影下推、Join 重排等。面向 UDF、模型推理、下载、解码等高开销环节,Daft 通过 Source、UDF 和 AI Functions 等机制进行任务化执行,并支持批处理、并发控制和自适应背压。
  • CPU 与 GPU 资源调度能力:常规数据处理主要由本地执行引擎或分布式 runner 执行;对模型推理等 GPU 任务,可通过 AI Functions 或 UDF 声明 GPU 资源、batch size 与并发度,在吞吐、显存和延迟之间做调优。
  • 从单机到集群扩展:同一套 DataFrame/SQL API 可在本地 native runner 上运行,也可通过 Ray 扩展到分布式集群,适合从开发环境平滑迁移到大规模处理场景。


二、 EMR Serverless 集成 Daft 引擎的价值

阿里云 EMR Serverless Spark 在其 Serverless 架构中深度集成了 Ray 分布式计算框架,并内置了 Daft 引擎,为用户提供了一套开箱即用的多模态数据处理基础设施与引擎。

  1. 极致的弹性与免运维
    依托 EMR Serverless 架构,用户无需关心底层集群的搭建、扩缩容和节点维护。只需聚焦于业务逻辑开发,按需使用、按量计费,真正实现了多模态数据处理基础设施的“零运维”,大幅降低 TCO。

  1. 内置多模态算子,AI 与数据无缝融合
    EMR Serverless Spark 在 Daft 引擎中内置了丰富的多模态 AI 函数,支持图片、视频、音频、文本等数据的直接处理。同时,与阿里云百炼平台上的大语言模型(如 Qwen 系列)无缝集成,让数据清洗、特征提取与 AI 标注可以在同一流水线中高效完成,加速 AI 应用落地。

  1. 统一的数据湖体验,打通存储孤岛
    EMR Serverless Spark 提供了与阿里云 OSS、OSS-HDFS 等对象存储的深度集成,并支持无缝挂载 NAS 和 CPFS 高性能文件系统,满足模型训练与推理阶段对海量非结构化数据的高吞吐读写需求,实现结构化与非结构化数据的统一访问与管理。

  1. 稳定性提升
    Daft基于Ray的架构天然支持异构资源,EMR Serverless Daft在异构节点的任务调度时细粒度控制,避免关键节点(如Header)负载过高,解决部分算子因为依赖配置而非实际资源引起的作业Hang住现场。实施对内存的监管,针对核心算子基于运行时内存使用情况支持Spill机制,解决大数据量规模下算子运行稳定性问题。

  1. 可观测性提升
    Dashboard以及细粒度的Metrics是分析和优化作业的核心参考之一。EMR Serverless Daft提供了全托管的Daft Dashboard,保证云上作业信息随时可查;同时基于在Spark的丰富经验拓展多项算子和UDF(包括AI Function)等运行时指标信息,全面提升作业的可观测性。

  1. 融入 OpenLake 生态,释放数据要素价值
    作为阿里云 OpenLake 多模态解决方案的关键组件,EMR Serverless Daft 全面支持 Data Lake Formation(DLF)与 Apache Paimon。依托 DLF 对湖上元数据的统一管理,借助 Paimon 的 Blob、Vector 等多模态原生能力,进一步发挥 Daft 引擎在“结构化+多模态”混合处理场景中的独特优势,助力企业构建统一的智能数据底座。


三、 具身智能实践:从原始视频到高质量训练数据的全流程流水线

3.1 场景背景

训练具身智能模型理解和复现人类日常操作动作时,研发人员通常会让真实人类佩戴头戴式摄像头(Head-mounted Camera),在厨房等真实生活场景中执行烹饪、切菜、翻炒等操作,采集大量第一人称视角(Egocentric)的原始视频。


如下图所示,这类视频记录了人类在厨房中翻炒食材的完整过程,是训练 VLA(视觉-语言-动作)模型的宝贵数据来源。

image (69).png

这些视频中包含大量无价值的冗余帧——例如操作间隙的静止画面、模糊镜头,或镜头朝向地面/天花板时拍摄到的无效内容。我们需要一个高效的自动化流水线,从海量视频中抽取关键帧,并利用多模态大模型对图片进行智能筛选,最终只保留包含有效烹饪操作内容(例如"锅具"或"食材处理")的高质量图片帧,用于后续的模型训练。


3.2 流水线架构

整个流程分为五个核心步骤,实现了从原始视频到高质量数据集的端到端自动化转化:

image (70).png

步骤 1:分布式视频读取与高效抽帧

利用 Daft 的流式优化能力,直接在 OSS 上进行分布式读取和解码,避免本地下载开销。

import daft
from daft import col

# 流式读取 OSS 视频,仅提取关键帧,每2秒采样一次
df = daft.read_video_frames(
    path="oss://<your-bucket>/cooking_videos/*.mp4",
    image_height=480,
    image_width=640,
    is_key_frame=True,           # 只取关键帧,减少冗余
    sample_interval_seconds=2.0, # 采样频率
    max_frames_per_video=100,    # 限制单视频最大帧数
    io_config=io_config,
)



步骤 2:图像编码与批量写入 OSS

抽取的原始视频帧是未经压缩的张量,直接存储成本极高。Daft 提供了 encode_image 函数,可将帧数据即时编码为 JPEG 格式。随后,通过 FrameUploader 批量 UDF 将图片写入 OSS,并获取每张图片的 OSS 路径:

from daft.functions import encode_image
from daft.emr.functions import emr_udf

# 1. 编码为 JPEG
df = df.with_column("jpeg_bytes", encode_image(col("data"), "JPEG"))

# 2. 批量上传至 OSS (并发控制最大化 I/O 吞吐)
df = df.with_column(
    "oss_path",
    emr_udf(
        FrameUploader,
        construct_args={"output_base": output_base},
        concurrency=4,
        batch_size=32,
    )(col("path"), col("frame_index"), col("jpeg_bytes")),
)


FrameUploader 内部使用 Daft 内置的 io_put 接口写入 OSS,无需引入额外的 oss2 SDK,并且通过 concurrency 参数控制并发写入数量,最大化网络 I/O 吞吐量。


步骤 3:集成多模态大模型进行智能筛选

这是最关键的一步。利用 ai_query 函数,让 Qwen-VL 大模型直接通过签名 URL 读取 OSS 图片进行推理,无需将图片数据拉回计算节点再转发给模型网关,极大地节省了带宽并降低了延迟:

from daft.emr.functions import ai_query
from daft import lit

# 调用 Qwen-VL 进行视觉判断
df = df.with_column(
    "llm_result",
    ai_query(
        prompt=lit("判断这张图片是否包含有效的烹饪操作画面(如锅具、食材处理、手部操作等)。如果包含请只回复KEEP,不包含请只回复DROP,不要输出其他内容"),
        data=col("oss_path"),      # 传入 OSS 路径,模型服务端直接拉取
        model="qwen-vl-plus",
        concurrency=32,            # 32并发,充分利用模型吞吐
        batch_size=32,
        options={"enable_thinking": False},
    ),
)


通过配置 max_concurrency=32,流水线将启动 32 个并发的 UDF 实例,充分利用模型服务的吞吐能力,大幅缩短整体处理时间。


步骤 4:结果解析与冗余数据自动清理

解析 LLM 返回的结果,保留标记为 "KEEP" 的图片,物理删除标记为 "DROP" 的无效数据。

image (71).png

from daft.functions import get as struct_get

df = df.with_column("llm_content", struct_get(col("llm_result"), "content"))
df = df.with_column("keep", col("llm_content").upper().contains("KEEP"))

# 物化结果,统计保留与删除数量
df = df.collect()
result_dict = df.to_pydict()
total = len(result_dict["keep"])
kept = sum(1 for k in result_dict["keep"] if k)
dropped = total - kept

# 删除 LLM 判定为 DROP 的帧
if dropped > 0:
    df_drop = df.where(col("keep") != True).select("oss_path")
    df_drop = df_drop.with_column(
        "deleted",
        emr_udf(OSSDeleter, concurrency=4, batch_size=32)(col("oss_path")),
    )
    df_drop.collect()


3.3 流程总结

通过这四个步骤,我们构建了一个端到端、全自动的具身智能数据处理流水线。整个流程的数据流向如下表所示:

步骤

输入

操作

输出

视频读取与抽帧

OSS 上的原始 MP4 视频

read_video_frames 按间隔采样

解码后的图像帧张量

图像编码

图像帧张量

encode_image 压缩为 JPEG

JPEG 字节流

写入 OSS

JPEG 字节流

FrameUploader UDF 批量上传

OSS 图片路径(oss://...

LLM 智能筛选

OSS 图片路径

ai_query 调用 Qwen 视觉大模型

KEEP/DROP 标注结果

数据清理

DROP 标注的 OSS 路径

OSSDeleter UDF 批量删除

清洗后的高质量图片集


原始的第一人称视角烹饪视频输入,高质量、经过大模型标注和清洗的训练图片集输出。整个过程无需人工干预,且能够随着 Ray 集群的弹性伸缩轻松应对 PB 级的数据规模。


四、 EMR Serverless Ray & Daft 产品架构与生态能力

4.1 灵活的运行模式

Daft 作为新一代多模态 DataFrame 框架,向下无缝对接弹性计算资源,向上提供统一的数据处理 API。在底座层面,Ray 引擎实现了 CPU 与 GPU 队列组的混合调度,并全面接入 Kerberos 与 Ranger,为企业级应用提供坚实的安全隔离保障。


针对不同阶段的业务需求,平台提供了三种灵活的运行模式:

  1. Local Mode(本地模式)该模式在单 Pod 容器内直接执行,零启动开销。其按需计费、用完即释放的特性,是轻量级代码调试与单机验证的理想选择。
  2. On Ray - Ephemeral(临时集群模式)专为大规模 CPU&GPU 批处理设计。系统在任务提交时自动拉起临时 Ray 集群,任务完成后自动销毁,用户仅需指定计算规格,实现基础设施的完全免运维和任务之间的完全隔离。
  3. On Ray - Persistent(常驻集群模式)主要面向 CPU&GPU 多模态数据处理,深度学习推理及生产环境。该模式支持将任务路由至常驻 Ray 集群,实现计算资源的长期复用,并通过统一的 Dashboard 提供完善的作业监控。

image (72).png


4.2 100+ 开箱即用算子

在业务落地过程中,非结构化数据的预处理往往是工程链路上最耗时的环节。为此,EMR Serverless Spark 平台在 Daft 框架内深度沉淀了 100 余个开箱即用的多模态处理算子,全面覆盖视频、文本/文档、图片及音频四大核心场景。


在视频与图片处理方面,算子库涵盖了从基础的切片、抽帧、格式转换,到高阶的视频理解、人脸模糊及 OCR 识别;在文本与文档领域,不仅提供标准化的切分与去重功能,更针对 RAG(检索增强生成)场景内置了 PDF 智能解析与向量化提取能力;同时,音频处理也实现了从格式互转到多语种识别的全链路覆盖。


企业无需投入高昂的算法研发成本,也无需自行拼凑开源组件,即可快速构建高可用、企业级的多模态数据清洗与转换流水线,显著缩短 AI 业务的上线周期。

image (74).png

4.3 API 封装释放大模型生产力

为了进一步降低分布式数据处理的门槛,Daft 算子在设计上被划分为两类:负责传统数据过滤与聚合的基础算子,以及深度集成百炼等大模型服务的 AI 算子。


以“视觉理解(VisionUnderstanding)”算子为例,在传统的开发模式下,开发者需要自行处理模型加载、网络请求及分布式并发控制。而在 EMR Serverless 平台中,用户仅需通过数行极简代码,即可从 OSS 读取多模态数据,并调用 AI 算子完成复杂的推理任务。


这种设计的价值在于:

  • 开箱即用:免除繁琐的模型部署。
  • 极简 API:数行代码完成复杂推理。
  • 分布式透明化:底层由 Ray 自动接管并发调度与批处理加速。

image (75).png


五、 适用场景

这套技术栈适合以下几类典型场景:

具身智能行为数据集构建

从佩戴摄像头采集的第一人称视角原始视频中,自动完成抽帧、质量过滤、目标识别标注,构建 VLA(视觉-语言-动作)模型训练所需的高质量图文对数据集。

视频内容理解与特征提取

对监控视频、工业检测视频等进行批量帧级分析,提取关键事件帧,用于下游的模型训练或业务分析。

大规模多模态数据清洗与标注

对互联网爬取的图文、视频数据进行去重、质量评估、内容分类,为多模态大模型的预训练提供高质量数据源


结语

阿里云 EMR Serverless Spark 引入 Ray 分布式计算框架与 Daft 高性能数据引擎,为用户提供了一套开箱即用、免运维且极致高效的多模态数据处理基础设施。正如我们在具身智能视频抽帧与 LLM 筛选实践中所展示的,Daft on Ray 打破了传统批处理引擎在内存管理和异构资源调度上的瓶颈,让数据工程师和 AI 研究员能够以极简的代码,构建出稳定、高效的大规模多模态数据流水线,大幅加速具身智能数据飞轮的迭代速度,为下一代具身智能模型的研发提供坚实的数据基础。


相关文章
|
4天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
3天前
|
SQL 人工智能 自然语言处理
大模型内容安全实时防护:恶意Prompt注入拦截、越权阻断与熔断机制方案.166
本文系统阐述大模型输入安全防护体系,涵盖提示词注入、恶意Prompt拦截、越权阻断与输入熔断四大核心风险及应对方案。提出四层防护架构(预处理、检测、鉴权、熔断),结合规则引擎、语义识别与RBAC权限控制,实现全链路实时防护,保障业务合规、数据安全与服务稳定。
233 1
|
27天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
4天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
11天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
4天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
284 0
|
22天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
13天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。

热门文章

最新文章