暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

构建AI时代的大数据基础设施-MaxCompute多模态数据处理最佳实践

原创 阿里云大数据AI技术 2025-05-20
140

大数据AI一体化架构演进

大模型是“大数据加大算力+强算法”结合的产物。数据毋庸置疑是 AI 的养料,海量、高质量的多模数据对模型训练精度至关重要;算力则是 AI 的基石,大规模数据处理、模型训练需要依赖大量 CPU 及 GPU 算力;算法是 AI 的骨架,优秀的算法框架可以大大提升数据处理及模型训练效果。

下图是 Data+AI 开发全生命周期。简单来说,这一过程从数据预处理开始,包括数据清洗、转换和特征提取等复杂任务。随后,我们会使用 SQL、Python 等多种语言进行数据处理及模型开发,随后利用 GPU 资源池进行大规模训练。训练完成后,我们会对模型进行评估,通过对比预测结果与实际结果来不断优化模型精度。最后,模型会被部署并对外发布,支持在线和离线推理。

在大模型开发过程中,客户经常遇到一系列挑战和痛点。以下是三个较为典型的问题:

数据管理乱

多模态开发场景数据类型多,往往会涉及结构化数据(如表格)、半结构化数据(如 JSON、XML)以及非结构化数据(如图像、视频、文本)等多类数据;且数据存储介质杂,不同类型的数据需要不同的数据存储介质,用户管理、使用复杂。

开发效率低

开发效率是另一个重要方面,首先是计算性能差,在大规模数据处理和模型训练场景中,许多用户采用开源方案,但开源数据处理算子、计算框架未经深度优化包括性能优化和 DAG 优化,难以满足企业级生产需求,容易出现 OOM 等问题。其次数据开发与模型开发脱节,开发人员需要在不同的平台间跳转使用,比如通过大数据平台进行数据处理,又要通过AI平台进行模型开发训练,严重影响开发效率。

运维管理难

最后,运维管理也是一大挑战。许多用户通过自建和组合开源组件来构建开发环境,带来大量搭建工作,且运维复杂,代码、模型运维难;除此之外,整个开发迭代过程,需要用户通过工程化方式进行数据开发、建模,用户间可能存在环境不一致问题,导致开发过程脆弱,不具备鲁棒性。

下图展示了如何通过 Data+AI 实现一体化流程。左侧展示了大数据提供的能力,包括数据统一管理,大规模数据处理、分布式计算,以及海量弹性 CPU 资源管理等。右侧则是基于 AI 提供的能力,包括统一模型管理、可视化模型的开发、分布式模型训练、以及海量弹性 GPU 资源管理等。Data 和 AI 之间互相支撑,大数据提供海量高质量数据给 AI,AI 则反向优化大数据基础架构,包括底层计算引擎优化,代码优化等。

构建 AI 时代数据基础设施

在构建AI时代的数据基础设施时,尤其是大模型数据处理阶段,用户通常会面临一系列挑战,包括数据读取效率、调度能力、计算性能以及易用性等。

首先,在数据读取方面,无论是处理海量小文件还是大文件,都需要具备高效的读取机制。

其次,考虑到当前大型模型训练所需的数据量往往达到PB级别,因此必须具备强大的弹性调度能力,可以基于海量计算资源进行弹性调度,按需伸缩。同时,为了保证作业的可靠性和稳定性,还需引入容错 Checkpoint 机制,并发切分等调度能力。再者,关于计算能力,除了计算效率、算子丰富度,还需要考虑多开发编程语言生态。

最后,从用户体验角度来看,一个优秀的数据基础设施应当具备高度的易用性,提供环境管理能力,支持大量第三方包管理使用。

  • 接下来分享下 MaxCompute 如何构建全面的基础设施。

首先, MaxCompute 云底座依托于海量服务器资源,每个 Region 都拥有大规模的计算群;存储方面提供多种数据存储能力,结构化数据可以以表的形式存储在 MaxCompute,也支持对接 OSS 获取元数据信息,构建非结构化数据管理能力。在调度层面,我们采用了阿里云自主研发的调度系统伏羲,调用海量计算资源的同时还能保证很强的弹性能力。

最关键的计算部分,我们提供 SQL 和 MaxFrame 两套计算引擎。SQL 引擎支持标准的SQL语言编程,MaxFrame 则是面向 Python 开发生态。此外,为了满足不同用户的开发需求,我们还提供了一系列开发工具,包括 SQL Editor、Notebook等,支持 SQL 和 Python 开发。

相信阿里云用户对 MaxCompute 都不陌生。MaxCompute 是阿里云第一款大数据处理平台,自2013年起开始对外提供商业化服务。

在1.0版本中,MaxCompute 就已经具备了5K集群的调度能力,并且提供基于 SQL 的计算能力。

进入2.0时代后,MaxCompute 提供 Serverless 弹性能力,保证十几万甚至更高要求的资源调度能力,同时支持存算分离以及跨集群调度能力。

到了3.0阶段,MaxCompute 进一步聚焦于湖仓一体,离在线实时一体场景,从而更好地满足复杂多变的数据管理和应用场景需求。

而在2023年云栖大会上正式对外发布的4.0版本,进一步提供了开发能力,通过开放底层存储接口(如盘古文件系统),使得用户能够利用标准 Storage API 访问和操作数据;此外,还支持对接 Apache Spark 等三方计算引擎。最重要的是,MC 4.0致力于深度融合 Data+AI ,为用户提供更加全面、智能的大数据处理体验。

下图是 MaxCompute Data+AI 功能架构图。

底层提供了统一的元数据管理,有面向分布式存储的盘古系统,支持非结构化数据存储的 OSS,以及 Paimon 湖格式。在计算方面,打通了从数据处理到模型开发、训练、推理及管理的全流程。这一过程中,可以利用我们的自定义镜像功能,以及分布式 Python 计算框架 MaxFrame。此外,在开发方面,我们集成了 MaxCompute Notebook、DataWorks 一站式数据开发平台,还与阿里云AI平台PAI打通,提供 DSW 和 Designer 等可视化开发和建模平台。

MaxCompute 面向Data +AI 提供了四个核心功能。

首先,是基于 OpenLake 解决方案的统一数据管理能力,实现了对各类数据的统一管理和计算引擎的统一对接;

其次,在计算方面,面向 Python 开发生态的分布式计算框架 MaxFrame,统一 Python 编程接口,提供高效的分布式计算能力,还内置了面向大模型数据处理 AI function 相关能力;交互式开发环境 MaxCompute Notebook 开箱即用;

最后,考虑到 Python 编程往往依赖于众多第三方包,MaxCompute 还提供开箱即用的镜像管理功能,内置第三方依赖包及通用模型,支持用户进行自定义镜像管理。

针对几个核心能力进行展开,首先是备受关注的数据管理。数据管理能力演进经历了多个阶段。

第一阶段以数据联邦为主,主要目标是追求在不同引擎,不同存储下进行自由高效联通,此外还提供了包括OSS、Hive 等相关的外表能力。

第二阶段主要面向湖仓一体场景,以 OSS 作为基本存储,也支持 Paimon、Hudi、Delta 湖表,去进行数据统一管理。

第三阶段则更多地面向 AI 数据管理。特别是针对多模态数据管理,包括多模态数据纳管、预处理、访问加速等。还提供基于 FDC 的数据缓存加速,Object Table 多模态数据管理和查询优化能力。Object Table 是面向非结构化数据的表格式,基于 Object Table 可以很便捷地纳管 OSS 上的非结构化数据,自动映射 OSS 元数据信息,并且以表的形式在 MaxCompute 上进行管理,这样不论是通过 SQL 或 Python,都可以很容易地探查 OSS 上的元数据信息,如文件路径、OSS 路径、更新时间、Owner 等。

MaxFrame是由阿里云自研的分布式计算框架,支持 Python 编程接口并可直接复用 MaxCompute 计算资源及数据接口,用户可以以更熟悉、高效、灵活的方式利用 MaxCompute 的海量计算资源及数据进行大规模数据处理、可视化数据探索分析以及科学计算、ML/AI 开发等工作。

更熟悉的开发生态

MaxFrame 兼容 Python 开发生态,提供 MaxCompute Python 生态统一开发接口,通过一份 Python Code 实现 Data + AI 开发完整流程。

更完善的算子支持

MaxFrame 兼容 Pandas 接口且自动进行分布式处理,在保证强大数据处理能力的同时,大幅度提高数据处理规模及计算效率。

更快的处理性能

  • MaxFrame 可直连 MaxCompute 数据,运行时无需将数据拉取至本地计算,消除了不必要的本地数据传输,提高执行效率。
  • MaxFrame 可直接使用 MaxCompute 海量弹性计算资源,并支持自动分布式、并行处理,大幅缩短数据处理的时间。

更便捷的开发体验

  • MaxFrame 已与 MaxCompute Notebook、DataWorks 集成,无需配置环境即可直接使用,同时 MaxFrame 也支持在本地环境安装使用。
  • MaxFrame 支持直接引用 MaxCompute 内置镜像及用户自定义镜像,降低开发环境准备时间,避免环境版本冲突。

MaxFrame 主要场景可以归纳为以下几个方面。

首先是数据分析,处理数据量大,处理逻辑复杂的场景下,MaxFrame 可以基于 MaxCompute 海量数据及弹性计算资源,利用分布式能力进行大规模数据分析、处理及数据挖掘,大幅提高开发效率。针对传统 ML 领域,MaxFrame 支持 XGBoost、Scikit-learn 等相关算法,可以通过分布式能力解决性能瓶颈。更进一步地,针对AI开发者的需求,MaxFrame 支持完整的 Data+AI pipeline 构建,涵盖了大模型数据预处理,模型训练推理等环节。

上月,我们正式对外发布了 MaxFrame AI function,集成了 Qwen2.5 和 Deepseek-R1-Distill-Qwen 等系列大模型。通过AI Function SDK,用户可以选择模型,设置提示词,传入参数,对 MaxCompute 内表的结构化数据或者外表的非结构化多模态数据(图片/视频)进行大模型离线推理。且整个计算资源是复用 MaxCompute 计算资源,企业在MaxCompute中沉淀了海量数据,MaxCompute 提供 AI Functions,支持用户基于大模型的能力对数据资产进行智能分析、信息提取和内容生成,对 MaxCompute 的内表和外表数据进行文本和多模态 LLM 的离线处理。

Data+AI场景最佳实践

第三部分以多模态数据开发场景为例,具体介绍 MaxCompute 如何完成端到端的多模态数据开发。

一站式多模态数据处理主要分为以下步骤。

第一步是统一数据目录,通过这一目录,我们可以纳管结构化和非结构化数据集。用户可以通过数据目录查看搜索所需数据集。

第二步是非结构化数据处理链路。首先,我们使用 Object Table 映射 OSS 元数据,拿到核心元数据信息,再基于构建的 OT 表,使用 MaxFrame 进行图片裁剪、音视频降噪等处理。并且我们可以通过 Apply 接口将 udf 作业打包到 MaxCompute 集群分布式执行,最后,结果可以写入 Paimon 表、MC 表,甚至回写至 OSS,具体取决于实际业务需求。对于结构化数据处理链路,主要涉及以表格形式进行的操作,例如 join、filter、groupby等,此处不再赘述。

最后一步是构建相关业务应用。例如,我们可以将处理后的数据同步至搜索引擎中,建立向量索引,从而支持多模态检索、RAG 应用等。

客户案例

下面是某汽车行业车联网大数据客户多模态处理案例。在汽车行业,尤其是车联网和自动驾驶领域,多模态数据处理是一个典型的应用场景。车辆端会采集大量的数据,包括辅助驾驶数据、视频流以及各种传感器指标。这些数据通常通过 Flink 或离线链路将数据传回。视频类数据一般采用 OSS 进行存储;而对于结构化数据,我们则使用 MaxCompute 表进行存储。后续的数据处理和分析工作在 MaxCompute 上进行,例如视频切帧和标注等。通过 MaxFrame 调用处理算子和模型,高效执行各种数据分析任务。

体验 MaxFrame 解决方案

本方案通过 MaxCompute 提供面向多模态数据管理的表类型 Object Table,支持对 OSS 上的多模态图片数据进行元数据自动采集管理。同时,通过分布式 Python 计算框架 MaxFrame 完成对多模态数据处理开发,在 DataWorks 的 Notebook 中一站式完成多模态数据处理工作。

https://www.aliyun.com/solution/tech-solution/maxframe-for-multimodal-data-processing

最后修改时间:2025-05-20 15:13:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论