当前位置:首页 > 技术知识 > 正文内容

VLDB2025 | Magnus: 字节跳动面向大规模机器学习的数据管理方案

maynowei5个月前 (10-14)技术知识128

导读

机器学习广泛应用于字节跳动,数据作为机器学习训练的核心要素,如何高效灵活的管理支撑大规模训练数据的存储、生产以及训练,成为数据基础设施的一大挑战;近两年大模型迅猛发展,对数据集管理也提出了更多新的场景需求。

字节跳动在开源 Apache Iceberg 的基础上,打造了一套面向大规模机器学习的数据管理解决方案 Magnus,在存储格式、索引、元数据管理、更新机制、训练框架集成等多个维度实现优化。

Magnus 已在字节内部部署超过五年,在搜索、广告、推荐、大模型等核心业务中大规模落地,数据规模超5EB,相关成果已被 VLDB 2025收录。

论文标题:Magnus: A Holistic Approach to Data Management for Large-Scale Machine Learning Workloads

论文作者:Jun Song, Jingyi Ding, Irshad Kandy, Yanghao Lin, Zhongjia Wei, Zilong Zhou, Zhiwei Peng, Jixi Shan, Hongyue Mao, Xiuqi Huang, Xun Song, Cheng Chen, Yanjia Li, Tianhao Yang, Wei Jia, Xiaohong Dong, Kang Lei, Rui Shi, Pengwei Zhao, Wei Chen

论文地址:

https://www.vldb.org/pvldb/vol18/p4964-song.pdf

背景:机器学习训练场景下的数据管理挑战

机器学习在字节跳动深度应用,数据规模以及丰富的场景为数据管理带来新的挑战。传统方案在应对大规模机器学习工作负载时,局限性日益凸显:

  • 存储效率瓶颈:传统列存格式(如 Parquet)在处理万列大宽表和图像、视频等多模态数据时,难以满足资源效率以及读写性能的需求。

  • 索引能力欠缺:特征调研等场景需要更高效的主键索引来提升更新性能,同时大模型场景下需要更多的索引支撑各种类型的查询,比如倒排索引、向量索引等。

  • 元数据管理困难:元数据是数据的数据,是各种分布式计算引擎使用数据的桥梁,海量训练数据带来了 "大元数据" 问题;且现有方案缺乏类似 Git 的分支管理能力,无法高效支撑特征调研与模型迭代。

  • 高频更新需求:特征工程中的列添加、广告转化数据更新等高频场景,要求高效的增量更新能力。Copy-on-Write(COW)策略写入开销过大,而开源数据湖的 Merge-on-Read(MOR)策略在读写效率上难以满足机器学习场景需求。

  • 大模型训练特殊性:现有方案缺乏与机器学习训练框架的集成以及针对性优化,导致数据集管理困难、资源消耗过高、训练吞吐量受限。

技术突破:Magnus 核心创新

Magnus 围绕大模型训练场景的上述四个痛点,在 Apache Iceberg 开源数据湖的基础上进行了全面优化,具备以下核心能力:

Magnus 系统架构

1 高效存储格式与索引设计

除 Parquet 等开源列存格式外,Magnus 支持新的自研格式以解决大模型训练场景下的存储挑战,包括 Krypton 列存与 Blob 格式。Krypton 列存格式通过与 Parquet 相比更轻量的元数据设计,在宽表场景下大幅节省了存储空间和内存消耗。Blob 格式将图片、视频等多模态数据的二进制对象与其他列分离存储,支持按需提取部分视频帧,大幅减少 I/O 放大。

在原生索引构建上,Magnus 根据不同场景的需求提供哈希索引与 HFile 索引两种主键索引,写入时高效路由数据至特定桶,桶内数据按主键排序并通过单调递增序列号解决冲突,保证了后续读时合并的高效性能。

此外,Magnus 直接在数据湖内构建倒排索引与向量索引,无需将数据导出至 Elasticsearch 等外部系统。通过 Spark SQL 语句即可创建索引,实现训练数据存储与检索功能的统一管理。

2 轻量级元数据管理与版本控制

Magnus 对元数据进行优化,相较 Iceberg 精简了 manifest 文件中 70%-80% 的冗余统计信息,并通过按分区排序文件条目、构建稀疏索引,在查询特定分区时能快速跳过无关数据块,显著提升了元数据解析效率。

Magnus 在 Iceberg 的快照与分支机制的基础上,进一步引入类 Git 的分支 Rebase 与 Merge 等操作,实现高效的调研流程,所有分支操作仅修改元数据,无需复制底层数据文件。此外,Tag 作为不可变的快照引用,配合提交日志,保证模型训练的数据版本可追溯、可复现。

元数据分支与标记

3 高性能 MOR 更新与 Upsert 机制

Magnus 基于轻量级 Merge-on-Read(MOR)策略,构建了一套高性能 Update 与 Upsert 机制,以适配机器学习场景中数据更新需求,既规避了 Copy-on-Write(COW)的高写入开销,又突破了开源数据湖 MOR 策略的性能瓶颈。

Magnus 支持列级更新,仅修改目标列,避免全行重写,且更新文件按主键排序,通过高效的 sort-merge join 进行读时合并,大幅降低读写放大。

Magnus 同时支持主键表 Upsert,通过主键索引,确保相同主键路由至唯一桶,写入时按主键排序数据文件,提交时分配全局唯一序列号标记顺序。处理并发提交无需写时冲突检测,冲突解决延迟至 MOR 阶段,依据序列号确定数据优先级。这种设计既能保证主键全局唯一(通过 HFile 索引),又避免了 Iceberg Upsert 读写放大的问题,Upsert 效率远超开源方案,甚至能完成 Iceberg 无法在合理时间内处理的大规模任务。

配合 Arrow 原生引擎的谓词下推与 IO 预取优化,Magnus 的 MOR 机制在合并阶段实现高效数据过滤与并行处理,最终达成“低写入吞吐+高读取吞吐”的平衡,为特征工程、广告数据更新等高频场景提供坚实支撑。

数据读取流程

4 大模型训练的深度适配

  • 推荐大模型(Large Recommendation Model, LRM)训练优化:LRM 训练样本按用户序列存储在 Magnus 主键表中。Magnus 设计了 Main+Extra 表的双表架构,将事件特征按月分区存储在 Main 表中,而将包含较多重复部分的用户序列特征单独存放在 Extra 表中。训练时,按时间戳截取 Extra 表中所需部分序列特征,再与 Main 表拼接得到完整特征。这种方案通过降低用户序列特征的重复存储,将存储空间降低约50倍;同时在增加或更新用户序列特征时大大减少读写放大,提高回溯效率。

Main x Extra 表

  • 多模态大模型(Large Multimodal Model, LMM) 训练优化:Magnus 通过提供统一的目录服务抽象 HDFS 路径,支持数据在不同存储介质间的迁移。Magnus 与 BytedStreaming 集成,直接使用 Magnus 元数据进行 sharding 和 shuffle,引入更细粒度的 planning 与 plan cache,并实现 lite planning 模式对 scan task 对象进行压缩存储,在保证 LMM 训练效果的同时大幅降低内存占用。

实证效果:生产环境性能验证

  • 存储效率:在万列宽表场景中,Krypton 格式较 Parquet 减少30%存储占用,Footer 解析时间降低80%;Blob 格式在视频抽帧等场景中,读取速度大幅提升。

  • 读写性能:TB 级表的列更新场景中,Magnus 的写入速度是 Iceberg COW 的10倍,且通过定期合并可维持读取性能与 Iceberg 相当。

  • 大模型训练收益:LRM 训练任务中,Magnus Main x Extra 表节省50×存储,吞吐量提升70%;LMM 训练中,内存占用减少约40%,启动性能提升一倍,训练耗时打平甚至更优。

结语

Magnus 解决了字节跳动内部 EB 级数据的管理难题,为行业提供了可复用的大规模机器学习数据管理范式。随着大模型技术的持续演进,Magnus 也将不断创新迭代提供更强有力的数据基础设施支撑。

训练设施团队为字节内部大规模机器学习包括大模型场景提供计算/编排/数据管理的基础框架以及解决方案,包括Primus/Ray/Magnus 等,欢迎感兴趣同学加入我们!联系方式:wuyixin.yx@bytedance.com。

相关文章

出售闲置原型素材来赚钱,上传作品,即可收上万元收入

出售闲置原型素材来赚钱。产品经理每年设计出大量的原型作品和组件、元件库、交互原型模板等作品,如果项目结束,你的原型就失去了作用,而有需求的人却找不到这样的作品。现在我们发现这样一家元件库、原型模板、素...

Objective-c单例模式的正确写法「藏」

单例模式在iOS开发中可能算是最常用的模式之一了,但是由于oc本身的语言特性,想要写一个正确的单例模式相对来说比较麻烦,这里我就抛砖引玉来聊一聊iOS中单例模式的设计思路。关于单例模式更多的介绍请参考...

2018年度回顾:挖矿木马为什么会成为病毒木马黑产的中坚力量

一、概述根据腾讯御见威胁情报中心监测数据,2018年挖矿木马样本月产生数量在百万级别,且上半年呈现快速增长趋势,下半年上涨趋势有所减缓。由于挖矿的收益可以通过数字加密货币系统结算,使黑色产业变现链条十...

惊现!iOS 16.5 kfd 漏洞利用,成功隐藏 Dock 栏

最近!kfd漏洞比较活跃,进展也是很顺利,今天就有大神成功使用 kfd 漏洞实现隐藏 Dock 栏,到底怎么回事?请继续往下看。-- kfd 漏洞说明 --kfd漏洞适合在 iOS 16.2 - 16...

微软明年要停止SQL Server 2005的技术支持了

站长之家(Chinaz.com)12月28日消息据外媒消息称,微软将于明年停止为SQL Server 2005提供技术支持,即不再为其提供新的安全补丁、新功能、应用升级等服务。且表示在停止技术支持后,...

Android主流UI开源库整理(android完整开源项目)

前言最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...