随着大模型的发展和应用,文本的边界被拓宽,图像、视频、语音各种模态涌现,并给数据管理、检索、计算带来巨大挑战。 火山引擎多模态数据湖 解决方案则可实现海量结构化、半结构化及非结构化数据的统一精细化管理,全方位兼容各类数据格式,为LLM预训练、持续训练和微调全程各个环节提供更好的数据支持。
本文主要包括以下三个章节:
● 数据湖在AI时代下的难点和挑战
● 火山引擎多模态数据湖介绍
● 未来演进和思考
数据湖
在AI时代下的难点和挑战
/ 计算资源从CPU扩展到GPU
AI时代带来的变化之一,是非结构化数据处理占比变大。
传统数据湖聚焦于处理结构化数据,而AI时代下需要对图像、音视频等非结构化数据进行处理。 非结构化数据使用CPU算力处理效率不高,因此需要 借助GPU算力资源 来提高处理效率。
传统数据湖常使用基于BSP架构的Spark引擎,在调度、数据传输、资源利用率上对GPU不够友好。如上图所示,多个data partition 在不同阶段使用CPU和GPU计算时,容易出现资源空闲,造成较大的成本浪费。
/ 数据处理任务对效率、稳定性和灵活性要求高
基模用户和领域大模型用户,在做数据准备中常常会遇到以下问题:
一、 存储带宽瓶颈
● 模型训练前的数据准备阶段,单次任务处理数据多,耗时长。一份数据在任务中会被多次读取加工。
● 任务直接读写对象存储Bucket 数据,会产生很大的带宽和QPS压力。
● 单次任务的耗时、多任务并发时整体任务的吞吐量都受限于带宽和QPS,会成为数据准备任务的瓶颈。
二、高负载和小文件
● 相对传统数仓而言,高负载和小文件问题呈指数级放大,模型训练场景下会产生百万级的Spark partition shuffle压力,原生Shuffle、开源集中式Shuffle如celeborn,均无法稳定高效处理。
● 高负载和高并发下,原生的Spark history server容易出现崩溃或者页面无法打开等问题。
● 任务失败后的重试成本高。
三、自定义运行环境
● 数据准备阶段的不同任务,往往需要一些第三方的库包,比如算法函数、硬件加速相关包等,不同任务依赖的库包甚至会是互相冲突。
● 传统大规模计算集群,在运行节点上预先安装好各种依赖包,提供环境级别的隔离,已无法满足需求,当下需要的是提供任务级别的自定义运行环境。
因此在AI时代下,为保障数据处理任务高效运行,急需对平台进行升级。火山引擎给出的解决方案是多模态数据湖。接下来,我将介绍火山引擎多模态数据湖的架构设计,以及对上述问题的解决方案。
火山引擎
多模态数据湖介绍
/ 多模态数据湖架构
火山引擎多模态数据湖 可以支持数据从数据源到Data Agent、商业智能等数据应用全流程。
一、** 数据源:** 与传统数据库相比,除了结构化数据,还支持半结构化数据,以及非结构化数据,比如文本、图片、音频和视频。
二、数据应用: 可以承接传统的数仓任务,比如报表业务、实时数据仓库等;还可以支持模型训练、训练数据准备,以及快速搭建AI应用(如RAG应用)。
三、多模态数据湖架构: 包括湖管理、湖计算、湖存储。
- 湖管理:
● 全域数据集成DataSail:数据入湖。
● AI数据湖服务(Lake AI Service,LAS):提供了统一元数据及权限管理的能力。这一层之下需要接入不同的数据源,之上需要对接不同的计算引擎,要使一份数据可以被多个引擎处理,则需统一元数据管理,LAS即为这样的平台。
● 大数据研发治理套件DataLeap:提供了Data+AI的统一数据开发平台,具有找数助手、开发助手、运维助手等功能,例如可以通过自然语言生成SQL并检索展示数据。
- 湖存储: 存储结构化和非结构化数据,支持开发的湖格式(Iceberg、Hudi、Paimon),以及湖存储加速引擎Proton。
- 湖计算: 支持火山引擎多款数据产品,包括大数据平台E-MapReduce、流计算Flink、自研支持向量化读写的OLAP引擎ByteHouse。
/ 多模态数据湖设计理念
● 开箱即用(进得来): 在传统企业上云场景下,已经有多云部署的趋势,在AI时代下,特别是模型算法公司,需要数据湖是透明、数据Open。
● 开源兼容(出得去): 与开源技术栈完全兼容,可无缝多环境迁移部署,不Lock In用户。
● 轻量运维(管得住): 垂直类模型公司的工程师以算法为主,不擅长底层设施的维护,需要尽可能降低运维的门槛。
● 成本优化(用得省): 通过全托管、弹性伸缩、冷存归档等手段,结合预约按量付费实例等计费方式,降低用户的使用成本。
● 极致性能(算得快): 通过优化计算引擎内核、计算链路,实现实质性提效。
● AI云原生(做得强): 专为多模态数据设计,与AI混合大数据协同发展,以适应各种场景需求。
/ 多模态数据湖方案产品
以上是火山引擎多模态数据湖方案涉及的产品。
/ EMR多产品形态提供Data和AI计算引擎
上图中展示了EMR产品架构。
2024年 EMR扩充了很多Data for AI相关能力, 正式商业化了Serverless和容器形态,提供Spark和Ray两套AI引擎,支持CPU+GPU异构计算架构,具备以下特点:
● 允许用户 基于EMR基础镜像,灵活打入第三方包。 通过自定义镜像方式实现任务级别的运行环境自定义。
● 针对高负载和小文件等问题,进行了性能优化。 基于原生Celeborn实现优化,支持500万级别的Partition Shuffle,远超传统数仓容量规模,并提高了Spark History Server的稳定性。
● 抖音集团内部孵化 Spark Native Engine, 相比Spark开源版本,性能提升达到了2.5倍以上。
● 此外, 针对用户体验进行了优化, 提供了丰富的弹性伸缩类型和付费方式,满足各种场景需求。
● EMR产品可以与其它云产品,如数据集成DataSail、大数据研发治理套件DataLeap等高度适配,提供 一站式Data+AI开发、调试、运行和诊断平台。
/ 使用Ray对多模态数据做高效处理
相比Spark BSP架构, Ray的Pipeline模式能更充分地利用资源, 同时减少数据落磁盘IO操作,在内存中处理数据,提高整体性能。
EMR 针对性地结合Ray的autoscale能力, 灵活伸缩保证资源利用率,还丰富了监控指标, 在原有Ray Dashboard的基础上,通过Ray History Server提供持久化的任务日志,并且集成了各种湖格式,提供开箱即用的数据读写。
/ 使用Proton实现数据湖加速
Proton是一款EMR团队自研的数据湖加速引擎, 旨在消除不同负载和存储间的GAP。
Proton的核心特性包括:兼容Hadoop FileSystem语义;数据加速功能与引擎组件解耦,对存储透明,非Proton写入的数据也可在读取时加速;
提供了元数据加速的能力,可大幅减少对象存储QPS需求;提供了灵活的淘汰机制,如白名单、黑名单、关键字匹配,用户可自定义缓存策略以满足不同需求。
未来展望与思考
横向看,我们将进一步拓展应用场景, 将数据湖能力从数据准备阶段,扩展到离线推理、模型部署阶段; 同时,支持用户快速构建
AI应用。
垂直看,我们将增强现有能力, 提高GPU链路产品能力, 包括可观测性和资源效率的提升;另外,提升产品易用性,持续降低数据处理功能的使用门槛。
如果大家对 多模态数据湖解决方案 感兴趣, 欢迎【扫描二维码】或点击文末 【 阅读原文】, 可申请 免费试用!
点击阅读原文,体验
多模态数据湖解决方案