MinT开源:管理百万级LoRA策略的训练-服务一体化框架,让万亿模型多租户训练成为现实0

0 阅读12分钟

大模型后训练(Post-training)正在变成基础设施级别的工作负载。

当训练目标从"一个checkpoint"变成"百万级策略变体"时,传统的训练-服务架构就开始撑不住了。

刚刚,Macaron AI背后的研究团队Mind Lab发布MinT技术报告——一套面向LoRA后训练和在线服务的托管基础设施。

核心数据先放在前面:

  • 百万级LoRA策略目录:单引擎可遍历10万条目,集群级别支持千adapter级活跃浪潮
  • 训练-服务交接成本:4B稠密模型降低18.3倍,30B MoE模型降低2.85倍
  • 并发GRPO训练:4B模型墙钟时间降低1.77倍,30B模型降低1.45倍,峰值显存不变
  • 冷加载速度:通过MoE LoRA张量打包,引擎实时加载提升8.5-8.7倍
  • 规模验证:从4B/30B/235B稠密及MoE模型,到Kimi K2 1.04T级别全部跑通

这不是又一个训练框架,而是把"百万LoRA策略管理"这件事第一次做成了真正可运维的服务。

后训练已经不是"训练完就结束"了

先理解为什么需要这套基础设施。

当大模型走向万亿参数、真实部署、持续从经验中学习时,前沿模型开发者越来越强调一件事:为现代Agent能力构建可靠框架的复杂度,已经远超模型本身。

这背后是一个被很多人忽视的事实:

真正在生产环境跑大模型后训练,你面对的不是"训练1个模型",而是要维护一个不断膨胀的策略变体池——任务分支、产品版本、租户专属变体、回滚点、个性化策略、评估快照、研究实验……

传统基础设施的处理方式是:每个变体都做成一个完整的微调checkpoint,复制、加载、部署。

这条路走不通。原因很直接:

  • 一个4B bf16基础模型的权重就要8GB
  • 一个rank-32的LoRA adapter只有252MiB
  • 而rank-1的紧凑配置可以小到不到基础模型的0.10%

如果每个策略变体都materialize成完整checkpoint,大部分GPU显存都浪费在重复的权重上。

MinT的核心设计:让Adapter Revision成为可管理单元

Mind Lab的解决方案叫MinT(MindLab Toolkit)。

核心思路:基础模型常驻,把LoRA adapter作为后训练和在线服务的基本策略单元。

整个范式被重新定义:

  • 任务行为、产品分支、实验版本、租户专属变体、回滚点——都用不同的adapter表示
  • 跨越训练-服务边界的不再是完整checkpoint,而是紧凑的adapter revision
  • 基础模型只加载一次,所有策略共享这份常驻部署

这和之前的两种主流路径形成鲜明对比:

Full Fine-tuning路径:每个变体都搬完整checkpoint,成本爆炸

LoRA Merge路径:训练时省内存,但还是会把adapter合并回基础模型,最后传输的还是完整checkpoint

MinT的Multi-LoRA路径:训练adapter在常驻基础模型旁边,只把adapter revision传输到已经加载相同基础模型的推理引擎

关键区分:Adapter Revision vs Policy Record

MinT做了一个看似简单但极其重要的概念区分:

Adapter Revision(适配器版本) :固定的、已导出的LoRA快照,在特定训练步冻结,以服务张量布局存储——这是执行行为的载体

Policy Record(策略记录) :服务管理的生命周期状态,让这个载体可复现、可重载、可回滚——这是让载体可被服务化的元数据

为什么这个区分重要?

一次RL更新留下的东西远不止一个LoRA文件:

  • Adapter张量
  • 优化器动量
  • 调度器位置
  • 累积梯度
  • 后续评分可能仍需要的rollout记录

采样器没法直接消费这些训练checkpoint。 它需要的是一个固定的adapter revision,以服务张量布局存储,绑定到推理引擎中已经常驻的基础模型。

MinT每次更新后会回答四个具体问题:

  1. 哪个基础部署能运行这个adapter?
  2. 哪个训练checkpoint应该在训练恢复时还原?
  3. 哪个固定的adapter revision应该被rollout、评估、服务使用?
  4. 这些adapter字节现在在哪里——在GPU批次中活跃、缓存在CPU内存中、还是只在共享存储里?

这四个答案被分开存储,因为它们的变化时间尺度完全不同。

三个scaling轴:Scale Up / Scale Down / Scale Out

MinT沿着三个scaling方向展开:

Scale Up:把LoRA RL推到万亿参数级

支持大型稠密和MoE基础模型,包括MLA和DSA注意力路径,模型并行训练和服务路径验证超过1T总参数

具体覆盖:

模型家族模型结构验证规模Materialize/加载时间
Qwen3系列稠密+MoE变体0.6B/4B稠密adapter;30B-A3B和235B-A22B MoE训练0.036 s
Moonlight & Kimi K2MLA MoEMoonlight-16B-A3B;Kimi K2 1.04T倒计时任务LoRA RL71.820 s
GLM-5/GLM-5.1MLA, DSA, MTP, MoEDSA/MTP训练+服务全栈支持46.455 s
Qwen3-30BMerge61.084 GB402.245 s

Scale Down:让训练-服务交接成本崩塌

这是MinT最炸裂的一组数据。

测量到的Qwen3-4B rank-32 PEFT adapter文件:252MiB(约基础权重的3.3%)

Qwen3-30B rank-16 LoRA adapter:1.692GB(基础模型61.084GB)

对比"materialize-and-load"路径:

模型路径Checkpoint大小Materialize/加载时间
Qwen3-4BAdapter252 MiB0.036 s
Qwen3-4BMerge8.061 GB71.820 s
Qwen3-30BAdapter1.692 GB46.455 s
Qwen3-30BMerge61.084 GB402.245 s

Adapter-only交接将4B模型的交接步骤降低18.3倍,30B MoE模型降低2.85倍。

更关键的是并发训练效果。在相同的常驻基础模型分配下:

  • Qwen3-4B:3个GRPO策略顺序执行需要3081.2秒;并发MinT只需1736.1秒,速度提升1.77倍,节省43.7%时间
  • Qwen3-30B:从10130秒降到7008.4秒,速度提升1.45倍,节省30.8%时间

关键是:峰值内存完全不变。

提速来自填满策略间的调度空隙——基础模型常驻,多个策略错峰使用训练器和采样器。

Scale Out:策略目录从千级扩展到百万级

这是MinT最有创新的部分——把"可寻址性"和"本地驻留"分成不同尺度。

资源层级问题测量边界
可寻址目录请求能选多少策略?测量1k到100k目录扫描;百万级理论容量
CPU缓存一个actor能保留多少adapter?512热集场景369个加载;2048弱locality场景550个
GPU批次解码能并发使用多少adapter?测试同批次窗口64个不同adapter

这三个尺度是完全不同的容量轴。

百万级是"可寻址性"问题,而不是"同时GPU驻留"问题。

冷加载:被忽视的服务工作

在多 LoRA 服务里,cache miss 远不只是“读个文件”。

当一个请求第一次命中当前 engine 尚未加载的 adapter 时,系统必须先完成一段冷加载工作:

  1. 读取 adapter 权重文件,拿到 LoRA tensor;
  2. 物化 LoRA 权重对象;
  3. 把 adapter 注册进推理引擎的 LoRA manager;
  4. 将 adapter 放入可调度的 active set;
  5. 然后请求才能进入正常的 prefill / decode 路径。

这段工作在单个 adapter 上看起来不大,但在 many-unique cache miss burst 里会被迅速放大。我们的测量显示:

  • warm-loaded LoRA 场景下,N=64 的端到端 p95 延迟为 21.35s
  • cold first-touch unique LoRA 场景下,N=64 的端到端 p95 延迟升至 199.81s
  • 进一步的 add_lora timing probe 显示,16 个不同 cold adapters 的 admission 时间形成明显阶梯:从 1.375s 线性累积到 23.267s,单个 adapter admission 约 1.35-1.40s

这里需要强调:199.81s 不是“单个 cache miss 要 199 秒”,而是大量不同 cold adapters 同时进入在线路径后,在 engine 的加载、注册路径上排队形成的端到端尾延迟。

因此,cache miss 在这里不是一个简单 I/O 事件,而是一段会占用推理服务关键路径的控制面工作。

MinT 的处理方式是把冷加载显式当成可调度的服务工作:

  • 去重:对同一个 missing adapter 的并发 cache-miss 请求,只触发一次真实加载,其余请求等待同一个加载结果;

  • 有界背压:对不同 missing adapters 的冷加载请求分别排队和限流,避免无限制地把加载工作压进推理引擎。

MoE LoRA Tensor打包:8.5倍加速的秘密

冷加载这条路径上还有一个关键瓶颈。

一个rank-1 MoE LoRA adapter的字节大小其实不大,但被分割成37,248个tensor对象,大部分是tiny expert tensor。

这会让冷加载付出很高的小对象开销:

  • 文件里有大量 tiny tensor metadata;
  • safetensors 解析和 get_tensor 调用次数很多;
  • Python / PyTorch 需要反复创建大量小对象;
  • 推理引擎注册 adapter 时也要处理大量细碎 tensor。

所以瓶颈不只是“读了多少字节”,还包括“处理了多少对象”。

我们的优化是对 MoE LoRA tensor 做打包:把大量 tiny expert tensor 合并成更少的大 tensor。这样 adapter 的总字节大小几乎不变,但 tensor 对象数量大幅下降,冷加载路径上的 metadata、对象创建和注册开销随之降低。

指标原始打包后效果
文件大小110.75 MB105.58 MB1.05× 缩小
Tensor对象数37,24867255.4× 减少
读取tensor0.3669 s0.0067 s54.8× 加速
构建loader对象0.7540 s0.0256 s29.5× 加速
N=4 实时加载1.363 s0.156 s8.7× 加速
N=8 实时加载1.361 s0.159 s8.6× 加速
N=16 实时加载1.388 s0.164 s8.5× 加速

字节大小几乎没变,但通过减少小对象fanout,实时加载速度提升8.5-8.7倍。

不只是infra,更是可复现的recipe生态

MinT附带了一套cookbook,覆盖SFT、偏好优化、rollout-based RL、AutoResearch等典型场景。

实验结果亮点:

SFT(金融领域)

  • Fineval:0.4226 → 0.7811
  • FPB:0.6906 → 0.8804
  • TFNS:0.5959 → 0.9095

DPO(聊天偏好)

  • 奖励边际:-0.03 → 30.88

GRPO(DAPO-AIME24)

  • 训练准确率EMA:0.11 → 0.47(最佳原始点0.568在第76步)

MoE 235B-A22B

  • AIME24 mean@1达到0.967峰值——在相同LoRA RL路径下接近饱和

Kimi K2 1.04T倒计时任务

  • 用32.6B激活参数完成完整RL循环

verl-mint正式开源:从论文到可用代码

更值得一提的是,就在论文发布后,Mind Lab把MinT与字节开源RL框架verl的集成版本——verl-mint——正式推到了GitHub开源仓库。

GitHub地址:github.com/verl-projec…

这意味着,论文里描述的整套基础设施不再只是"实验室成果",而是今晚就能拉下来跑的真实代码

verl-mint把MinT的核心能力直接接进了verl生态:

  • adapter-revision生命周期:从训练到rollout、评估、服务、回滚的完整闭环
  • time-sliced multi-LoRA训练:在常驻基础模型上并发训练多个策略
  • 分布式adapter导出:覆盖Megatron-style的TP/EP/PP并行布局
  • 共享基础vLLM服务:支持多LoRA运行时切换

对开发者来说,最重要的一点是:verl-mint不是另起炉灶的新框架,而是直接在verl这个已被业界广泛验证的栈上做集成。

这降低了迁移成本——已经在用verl做RL训练的团队,可以直接复用现有pipeline,无缝接入MinT的策略管理能力。

如果你正在做:

  • 多租户LoRA服务——需要支持成百上千的策略变体
  • 大规模Agent RL——需要长程rollout和高频adapter更新
  • MoE模型后训练——需要稳定的路由对齐和稀疏注意力处理
  • 持续学习/经验智能——需要训练-服务一体化的闭环

verl-mint值得看看。

One More Thing

回顾Mind Lab的工作节奏,可以看出一条非常清晰的infrastructure路线:

  • 2025年底:全球首个万亿参数LoRA-RL训练,GPU消耗直降90%
  • 2026年初:Context Learning范式,把临时上下文增益写进参数
  • 2026年4月:GLM5/GLM5.1全栈LoRA训练支持
  • 2026年4月:216次实验的LoRA rank scaling研究
  • 2026年5月:δ-mem——8×8矩阵搞定LLM长期记忆
  • 2026年5月MinT——百万级LoRA策略管理基础设施

所有工作都在指向同一件事:让大模型从研究原型变成可运维、可扩展、可复现的真实系统。

MinT解决的是一个最被低估的问题:

当大模型不再是"训练完就部署",而是要持续演化、服务百万级租户和场景时,infra本身就成了竞争壁垒。

回到那张训练-服务边界图,三种路径的本质差异其实是哲学差异:

  • Full Fine-tuning:每个变体都是"另一个完整模型"
  • LoRA Merge:训练时省,部署时还是回归完整模型
  • MinT Multi-LoRA变体只是策略状态,基础模型是共享底座

这个转变看似只是工程问题,但实际上重新定义了大模型的"颗粒度"——模型不再是不可分割的整体,而是"基础底座+策略调制"的组合。

Mind Lab是一家专注于"经验智能"(Experiential Intelligence)的研究实验室,10人核心团队成员来自OpenAI、DeepMind、Seed,学术背景横跨清华、MIT、Cornell,发表200+篇论文,被引30,000+次。

他们的Slogan没变:

Real intelligence learns from real experience. 真正的智能源于真实的体验。

而MinT做的事情,是把这句话从理念变成了可以承载百万级智能体共同进化的工程现实

参考链接: [1] arXiv论文: arxiv.org/abs/2605.13… [2] MinT Cookbook: github.com/MindLab-Res… [3] Mind Lab官网: macaron.im/mindlab