ITBEAR科技资讯
网站首页 科技资讯 财经资讯 分享好友

火山引擎LAS 团队技术分享:字节跳动基于 Hudi 的机器学习应用场景

时间:2023-07-20 11:56:37来源:互联网编辑:茹茹

本文为 Apache Hudi 技术社区分享会嘉宾分享文章,主要介绍火山引擎 LAS 团队自研的多场景样本离线存储技术,用于处理机器学习系统的离线数据流。同时,还会为大家揭秘流批一体样本生成的过程,分享对 Hudi 内核所做出的优化和改造,探索其在数据处理领域的实际应用和效果。

以下为分享原文。

1. 业务场景

为了让大家更容易理解接下来要讲的基于数据湖的样本存储和样本生成问题,文章先给大家简单介绍一些相关的基础概念。首先是机器学习系统的离线数据流架构,机器学习系统和其他线上服务系统类似,其中和样本有关的角色也比较集中。如下图所示,整个离线数据流架构分为流式和批式两种类型,其中的样本数据由两部分构成,分别是特征和标签。

图片1.png

在流式架构中,特征由在线预估服务在 serving 时 dump 对应的快照并发送到消息队列中。标签则来自实时行为采集服务,通过日志上报等方法采集得到。在线样本生成服务消费两个数据流,通过关联得到完整的样本,并发送到下游的流式训练服务中进行模型训练,完成样本数据的消费。

批式架构是流式架构的补充,批式架构在订阅流式数据的同时,还会加入批式的特征或者批式生成的标签。比如风控反作弊或者广告类的业务,会有批式生产的数据,并使用批式的样本生成模块生成样本,进而被模型训练组件消费。

流式和批式数据流架构中,还有元数据服务,元数据服务记录了特征的相关元数据,流式批式数据流都会访问元数据服务获取 meta 信息。因此,我们对于批式的特征存储有若干种特定的访问 pattern。

读方面有以下读数据 pattern:大范围的按天批式读取,关注吞吐指标;秒级的点查;高效的谓词下推查询能力;存在基于主键/外建的 join。

在写方面需支持以下能力:基于主键的 upsert;针对部分 cell 的插入与更新;针对行/列/cell 的删除;基于外键的 upsert。

在这样的背景下,我们了解 Hudi 在机器学习离线数据流中的若干应用场景。

2.离线样本存储与迭代

我们希望设计的样本离线存储方案能够适用于多种场景,主要包含以下三类情况。

第一,模型的重新训练,回放流式训练的过程,迭代/纠偏模型等等。

第二,样本的数据迭代,增加修改或者删除对应的特征/标签,并重新训练模型。

第三,样本的 OLAP 查询,用于日常 debug 等。

为了能够支持以上的场景的样本存储与迭代,我们提出的存储方案整体架构设计如下。在逻辑建模上,构建样本存储和构建特定 pattern 的 Hive 表非常类似,样本包含主键、分区键、内部元数据列等功能性 column,然后包含若干特征列和若干标签列。在物理架构上,通过流式和批式生产/采集的特征数据和标签数据通过多个作业混合 upsert 的方式写入 Hudi,更新位于 KV 存储的索引信息,并将实际的数据写入 HDFS 中。由于 Hudi 基于主键/外键 upsert 的特性,数据会被自然地拼接在一起,形成完整的包含特征和标签的样本数据,供消费使用。

图片2.png

在对离线特征进行调研时,我们需要面临以下挑战:基于 HDFS 这种不可变的文件存储,如何实现低成本低读写放大的数据修改。在没有使用数据湖之前,用户做离线特征调研之前需要复制样本,修改并另存一份。其中消耗了巨大的计算和存储资源,伴随样本量的增大,这样的方案将消耗数个 EB 的存储,使得迭代变得不可能。

我们基于 Hudi 实现了 ColumnFamily 的能力。这个方案受到了经典 BigTable 存储 Apache Hbase 的启发,将 IO pattern 不同的数据使用不同的文件进行存储,以减少不必要的读写放大。原理是将同一个 FileGroup 的不同列数据存储在不同的文件中,在读时进行合并。这种方法会将新增列的数据单独进行文件存储,发生修改或者新增成本很低。

图片3.png

我们通过为调研特征列赋予单独的 CF 的方式来减少读写放大,其他列复用线上的特征所在的 CF。这样资源的使用量只会和新增特征相关。这种方式极大得减少了迭代所需的存储使用,并且不会引入任何 shuffle 操作。

图片4.png

上文介绍了离线样本的存储与迭代方案,接下来我们进一步为大家介绍在线样本生成时的流批一体生成方案,讨论其如何降低在线存储的使用成本。

3. 流批一体的样本生成

在线样本生成服务中,我们使用 KV 或者 BigTable 类存储来满足样本拼接的需求,比如 RocksDB 等。这类存储点查性能好,延迟低,但是存储成本也较高。如果在数据有明显的冷热分层的情况下,这类存储本身并不能很好的满足这样的存储需求。Hudi 是一个具有 KV 语义的离线存储,存储成本较低,我们将冷数据存在 Hudi 上的方式来降低在线存储的使用成本,并通过统一的读写接口来屏蔽差异。这一架构也受到了目前市面的多种 HSAP 系统的启发。

图片5.png

为了能够让 Hudi 支持更好的点查,我们复用了写时的 Hbase 索引。点查请求会先访问 Hbase 索引找到数据所在文件,然后根据文件进行点查。整体端到端的延迟可以做到秒级。适合存储数据量大,qps 较低的场景。

图片6.png

4. 功能与优化

在使用 Hudi 满足诸多业务需求的过程中,我们也对其内核做了一些改造,以更好得服务我们的业务场景。

4.1 Local Sort

我们支持了单文件内的主键排序。排序是较为常见的查询性能优化手段。通过对主键的排序,享受以下收益

● CF 在读时,多 CF 合并使用 Sort Merge 的方式,内存使用更低。

● Compaction 时支持 Sort Merge。不会触发 spill,内存使用低。我们之前使用 SSD 队列来做 Compaction 以保证性能,现在可以使用一些廉价的资源(比如无盘的潮汐资源)来进行 Compaction。

● 在流批一体的样本生成中,由于主键是排好序的,我们点查时基于主键的谓词下推效果非常好。提升了点查性能。

4.2 Bulkload 并发写

并发写一直是 Hudi 的比较大的挑战。我们的业务场景中会发生行级别/列级别的写冲突,这种冲突无法通过乐观锁来避免。基于机器学习对于数据冲突的解决需求,我们之前就支持了 MVCC 的冲突解决方式。更进一步得,为了能够让 Hudi 支持并发读写,我们参考 Hbase 支持了 Bulkload 的功能来解决并发写需求。所有写数据都会写成功,并由数据内部的 mvcc 来决定数据冲突。

我们首先将数据文件生成到一个临时缓冲区,每个缓冲区对应一个 commit 请求,多个写临时缓冲区的请求可以并发进行。当数据完整写入临时缓冲区之后,我们有一个常驻的任务会接收数据 load 的请求,将数据从缓冲区中通过文件移动的方式 load 进 Hudi,并生成对应的 commit 信息。多个 load 请求是线性进行的,由 Hudi Timeline 的表锁保证,但是每个 load 请求中只涉及文件的移动,所以 load 请求执行时间是秒级,这样就实现了大吞吐的数据多并发写和最终一致性。

图片7.png

4.3 Compaction Service

关于 Compaction,Hudi 社区提供了若干 Compaction 的开箱即用的策略。但是业务侧的需求非常灵活多变,无法归类到一种开箱即用的策略上。因此我们提供了 Compaction Service 这样的组件用来处理用户的 Compaction 请求,允许用户主动触发一次 Compaction,并可指定 Compaction 的数据范围,资源使用等等。用户也可以选择按照时间周期性触发 Compaction,以达到自动化数据生效的效果。

在底层我们针对 Compaction 的业务场景做了冷热队列分层,根据不同的 SLA 的 Compaction 任务,会选择对应的队列资源来执行。用来降低 Compaction 的整体成本。比如每天天级别的数据生效是一个高保障的 Compaction 任务,会有独占队列来执行。但是进行历史数据的单次修复触发的 Compaction,对执行时间不敏感,会被调度到低优先级队列以较低成本完成。

针对数据湖的样本存储与生成问题,我们搭建了适用于多种场景的存储方案架构,实现了批流一体的样本生成,并且通过对 Hudi 内核进行一定的改造,实现更加满足实际业务需求的功能设计。

以上就是字节跳动在 Hudi 的实践,目前均已通过火山引擎 湖仓一体分析服务 LAS 产品对外服务,欢迎对这方面有需求、感兴趣的用户都可以积极地来体验一下我们的 LAS 湖仓一体分析服务 。

湖仓一体分析服务 LAS(Lakehouse Analytics Service)是面向湖仓一体架构的 Serverless 数据处理分析服务,提供字节跳动最佳实践的一站式 EB 级海量数据存储计算和交互分析能力,兼容 Spark、Presto 生态,帮助企业轻松构建智能实时湖仓。

图片8.png
更多热门内容
2025上半年营收破百亿,九号公司靠智能两轮车杀出重围
九号公司2025半年报一出来,我注意到一个很有意思的点:公司上半年在研发上的投入达到5.22亿元,同比大涨49.5%。在行业竞争越来越激烈的情况下,能这么大幅加码研发,说明九号是真的在靠技术拉开差距。截至期末,九号公司全球专利总数已经达到5982项,产品也在不断创新

2025-08-03

联想集团AI赋能广东省超,科技助力“全民快乐足球”
8月3日,广东省足球超级联赛(下称广东省超)2025赛季启动发布会在广州举办,正式宣布联想集团成为“广东省超联赛官方AI技术合作伙伴”。业内分析认为,具有蓬勃活力与高涨参与热情的民间赛事与全球领先AI科技企业携手践行“足球,AI就玩了”的快乐足球理念,为这场覆盖广

2025-08-03

TCL携全场景电竞显示产品与智慧终端亮相2025ChinaJoy展会
8月1日,全球数字娱乐盛会ChinaJoy2025在上海新国际博览中心盛大开幕。TCL科技与TCL实业两大产业集团联合策展,由TCL华星携手三星、联想、华硕、AOC、飞利浦、iQOO、Acer、MSI、LG、雷鸟等品牌合作伙伴联合参展,全面展示TCL华星在电竞显示领域创新与TCL实业在智能终端

2025-08-02

一加高调亮相 2025 ChinaJoy,四大游戏体验区燃炸全场
8 月 1 日,2025 年中国国际数码互动娱乐展览会(ChinaJoy)盛大开幕。一加手机以“上车 MVP,当场换新机”为活动主题,携三大性能旗舰产品一加 13、一加 Ace 5 和一加 13T 强势亮相骁龙主题馆,并在展会现场设置四大游戏主题体验区,搭载骁龙 8 至尊版和一加独家自研芯片

2025-08-02

BLACKPINK出道九周年 网易云音乐成巡演快闪独家合作音乐平台
2025年8月2日,全球顶级艺人BLACKPINK官宣入驻网易云音乐,并通过独家中文笔记向平台乐迷分享了最新动态。YG娱乐联合CASTER STAR、网易云音乐在中国开展BLACKPINK WORLD TOUR POP-UP STORE(全球巡演中国快闪)活动。作为本次快闪的独家合作音乐平台,网易云音乐倾力打造

2025-08-02

创想三维亮相 ChinaJoy, 3D打印赋能动漫次元
8 月 1 日,2025 ChinaJoy 在上海新国际博览中心盛大开幕。全球消费级3D打印生态领创者创想三维携手京东打造3D打印展区,携全品类设备强势登陆,以 “科技赋能娱乐” 为核心,给观众带来一场融合 3D 打印、动漫与互动体验的创意盛宴。作为中国乃至全球数字娱乐产业的风

2025-08-02

2025按摩椅十大品牌排名最新榜单深度解析
面对市面上琳琅满目的按摩椅品牌,从国产到进口,价格从几千到上万,哪些品牌才是真正专业高品质,什么样的按摩椅才是真按得舒服?下面将基于市场认可度和用户口碑,解析2025年按摩椅品牌排行榜前十名,为消费者避开营销迷雾,助您做出明智选择。2025年十大按摩椅品牌:

2025-08-02

开源大模型史上最高分!阿里千问3性能全球第三
8月2日凌晨,国际权威大模型评测 Chatbot Arena更新了最新一期的大模型榜单,上周新鲜开源的阿里千问3新模型斩获1433分,超越顶尖闭源模型Grok4、Claude4,位列所有闭源及开源模型的全球总榜第三,是全球最强非推理(non-thinking)模型,并创下全球开源模型和国产模型的

2025-08-02

蚂蚁数科 Agentar 企业级智能体开发平台:五大支撑驱动金融新质生产力可信跃迁
蚂蚁数科的 Agentar 企业级全栈智能体平台,通过五大核心支撑构建起金融领域智能应用的可信底座,既突破了金融场景的专业性、复杂性壁垒,又确保了技术应用的合规性与可靠性,最终推动金融新质生产力实现跃迁。支撑一:企业级全栈智能体平台,夯实技术底座平台以 “1000

2025-08-02

蚂蚁 Agentar-Fin-R1:以大模型能力重构企业级智能体开发平台全栈范式
在智能化开发转型的深水区,全栈开发能力已成为智能体规模化落地的核心竞争力。蚂蚁集团推出的 Agentar-Fin-R1 金融大语言模型,通过与 Agentar 企业级智能体开发平台的深度耦合,实现了从数据治理、模型训练到应用落地的全流程赋能,重新定义了金融智能体开发的效率、

2025-08-02