机器学习广泛应用于字节跳动,数据作为机器学习训练的核心要素,如何高效灵活的管理支撑大规模训练数据的存储、生产以及训练,成为数据基础设施的一大挑战;近两年大模型迅猛发展,对数据集管理也提出了更多新的场景需求。
字节跳动在开源 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
机器学习在字节跳动深度应用,数据规模以及丰富的场景为数据管理带来新的挑战。传统方案在应对大规模机器学习工作负载时,局限性日益凸显:
Magnus 围绕大模型训练场景的上述四个痛点,在 Apache Iceberg 开源数据湖的基础上进行了全面优化,具备以下核心能力:
除 Parquet 等开源列存格式外,Magnus 支持新的自研格式以解决大模型训练场景下的存储挑战,包括 Krypton 列存与 Blob 格式。Krypton 列存格式通过与 Parquet 相比更轻量的元数据设计,在宽表场景下大幅节省了存储空间和内存消耗。Blob 格式将图片、视频等多模态数据的二进制对象与其他列分离存储,支持按需提取部分视频帧,大幅减少 I/O 放大。
在原生索引构建上,Magnus 根据不同场景的需求提供哈希索引与 HFile 索引两种主键索引,写入时高效路由数据至特定桶,桶内数据按主键排序并通过单调递增序列号解决冲突,保证了后续读时合并的高效性能。
此外,Magnus 直接在数据湖内构建倒排索引与向量索引,无需将数据导出至 Elasticsearch 等外部系统。通过 Spark SQL 语句即可创建索引,实现训练数据存储与检索功能的统一管理。
Magnus 对元数据进行优化,相较 Iceberg 精简了 manifest 文件中 70%-80% 的冗余统计信息,并通过按分区排序文件条目、构建稀疏索引,在查询特定分区时能快速跳过无关数据块,显著提升了元数据解析效率。
Magnus 在 Iceberg 的快照与分支机制的基础上,进一步引入类 Git 的分支 Rebase 与 Merge 等操作,实现高效的调研流程,所有分支操作仅修改元数据,无需复制底层数据文件。此外,Tag 作为不可变的快照引用,配合提交日志,保证模型训练的数据版本可追溯、可复现。
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 机制在合并阶段实现高效数据过滤与并行处理,最终达成“低写入吞吐+高读取吞吐”的平衡,为特征工程、广告数据更新等高频场景提供坚实支撑。
Magnus 解决了字节跳动内部 EB 级数据的管理难题,为行业提供了可复用的大规模机器学习数据管理范式。随着大模型技术的持续演进,Magnus 也将不断创新迭代提供更强有力的数据基础设施支撑。
训练设施团队为字节内部大规模机器学习包括大模型场景提供计算/编排/数据管理的基础框架以及解决方案,包括 Primus/Ray/Magnus 等,欢迎感兴趣同学加入我们!联系方式:wuyixin.yx@bytedance.com。