大数据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


阿里云大数据AI
12 声望12 粉丝

分享阿里云计算平台的大数据和AI方向的技术创新、实战案例、经验总结。