BigMac是什么
BigMac 是小红书 dots infra 团队开源的多模态大模型流水并行训练框架,针对 MLLM 训练中计算效率与显存占用难以兼顾的问题,提出依赖安全的嵌套流水线范式。框架用成熟 LLM 流水线为主干,在不打乱执行顺序的前提下嵌入编码器和生成器计算,实现训练速度提升 1.08~1.9 倍的同时保持显存稳定,已作为 dots 多模态训练核心组件投入生产。

BigMac的主要功能
-
依赖安全的嵌套流水线:以 LLM pipeline 为稳定主干,在依赖满足的位置嵌入 encoder / generator 计算,避免跨模块 bubble 干扰。
-
显存有界的模态激活:编码器和生成器激活显存降至 O(1),LLM 激活行为保持不变,支持更大 batch size 而不 OOM。
-
全局调度与执行解耦:Scheduler 生成覆盖所有 rank、microbatch 和模块的全局 operator 表;Executor 解释本地序列并分发给对应后端。
-
流水线无感接口:算法工程师只需描述模块输入输出边界,BigMac 自动处理 schedule、handoff 和跨设备通信,模型代码保持模块化。
-
Schedule-aware 工具链:内置 profiler、simulator 和可视化工具,支持 per-operator 级别 trace 导出(兼容 Perfetto UI),快速定位 bubble、慢算子与通信等待。
BigMac的技术原理
- 依赖安全的嵌套流水线调度:BigMac将其作为基础时间线。调度器分析 encoder forward / LLM forward / generator forward 及对应 backward 的数据依赖关系,仅在输入已就绪且不会打乱 LLM 执行顺序的”空档”插入模态计算。 LLM 按原 schedule 持续推进,encoder 和 generator 的激活也能在梯度就绪后尽快释放,backward 及时执行,打破”计算高效必高显存、显存高效必多 bubble”的帕累托权衡。
- 全局 Operator 表与后端解耦:系统将调度策略显式化为一张全局 operator 表,包含所有 pipeline rank 上 LLM / encoder / generator 的 forward/backward operator 及模块边界通信。执行层仅解释本地 operator 序列,LLM operator 复用 Megatron Core,模态 operator 保留自身 data-parallel / FSDP 实现,schedule 调整无需重写模型 runtime。

微信关注回复“开源”,加入AI开源项目交流群
如何使用BigMac
-
定义模块边界:按模块化方式编写 encoder_forward、llm_forward、generator_forward 函数,声明各模块的输入输出。
-
接入 BigMac 接口:通过 PP-transparent 接口注册模块,BigMac 自动处理 pipeline stage 划分、activation handoff、gradient handoff 和跨 rank 通信。
-
配置并行策略:设置 PP / VPP、microbatch 数量、模块放置策略等参数。
-
运行训练:启动 Scheduler 生成全局计划,Executor 在各 rank 上执行 operator 序列。
-
性能诊断:用内置 profiler 采集 per-operator 时间,导出 rank-aligned timeline 至 Perfetto UI 分析 bubble 与瓶颈;或使用 simulator 在启动训练前快速迭代并行策略。
BigMac的核心优势
-
打破帕累托前沿:同时实现高计算效率与低显存占用,无需二选一。
-
LLM 流水线零干扰:保留成熟 LLM schedule,编码器/生成器耗时波动不会沿 pipeline 传播。
-
显存可扩展:encoder / generator 激活显存 O(1),支持生产级大 batch 训练。
-
算法友好:模型代码无需感知 pipeline runtime,单卡验证的实验可自然扩展至流水并行。
-
可调试可部署:全局 schedule 可见可检查,配套 trace / simulation 工具链降低性能优化成本。
BigMac的项目地址
- 项目官网:https://dots-infra.github.io/BigMac/
- GitHub仓库:https://github.com/Dots-Infra/BigMac/
- arXiv技术论文:https://arxiv.org/pdf/2605.25451
BigMac的同类竞品对比
| 维度 | BigMac | Megatron-LM |
|---|---|---|
| 调度范式 | 依赖安全的嵌套流水线,LLM 为主干 | 显存高效的单条流水线,模态模块作为独立 stage |
| 计算效率 | 高,无跨模块 bubble | 中,encoder/generator 波动会引入 pipeline bubble |
| 显存占用 | 稳定,模态激活 O(1) | 较低,但随模块耦合显存优化空间有限 |
| 扩展性 | 支持理解+生成双路径大规模训练 | 生成路径扩展时 bubble 与显存压力显著 |
| 接口友好度 | PP-transparent,算法代码零侵入 | 需理解并适配 pipeline runtime 与 stage 划分 |
| 工具链 | 内置 schedule-aware profiler + simulator | 依赖传统 nsys / torch trace 手动关联分析 |
BigMac的应用场景
-
多模态理解模型预训练:如图文理解、视频理解等 MLLM 的端到端预训练,需高效处理 ViT / Whisper 等编码器与 LLM 的流水协同。
-
多模态生成模型训练:同时包含理解与生成路径(如图像生成、语音合成),需协调 LLM 与 MMDiT / LDM 等生成器的双向依赖。
-
大规模 batch 训练:在显存受限集群上追求更大 global batch size,避免传统计算高效设计因 activation 累积导致 OOM。
-
快速实验迭代:算法团队可在单卡或 DP 环境验证模型结构,通过 BigMac 接口无缝扩展至 pipeline 并行,无需重写代码。
-
训练性能调优:工程团队用 schedule-aware profiler 和 simulator 定位 pipeline bubble,优化并行配置与模块放置策略。
