MinT开源新进展:首批支持GLM5/GLM5.1的LoRA训练,DSA+MTP全栈打通|代码已合并

3 阅读8分钟

国产开源大模型GLM5系列,终于可以高效做LoRA微调了。 刚刚,Macaron AI背后的研究团队Mind Lab宣布,旗下训练框架MinT已经完成对智谱GLM5和GLM5.1的全栈支持——训练、推理、Checkpoint转换三条链路全部打通。

听起来像例行公事?并不是。 GLM5不是"又一个大MoE模型"那么简单。它同时集成了Multi-Head Latent Attention(MLA)、DeepSeek Sparse Attention(DSA)、Multi-Token Prediction(MTP)三套先进架构。 这意味着:训练栈、推理栈、Checkpoint桥接,三方各自能跑通,但凑到一起就可能"翻脸"。任何一个环节对模型的理解出现偏差,整个流程就垮了。 Mind Lab啃下了这块硬骨头,相关代码已合并到VeRL、Megatron-LM、Megatron-Bridge、vLLM等多个开源项目。

为什么GLM5的支持这么难? 先说背景。 最近半年,国产开源大模型在架构上越走越激进。GLM5系列把三个高难度组件叠在了一起:

  • MLA:Multi-Head Latent Attention,DeepSeek V3带火的注意力压缩方案
  • DSA:DeepSeek Sparse Attention,稀疏注意力机制,对训练精度极度敏感
  • MTP:Multi-Token Prediction,多token预测,涉及模型结构、Checkpoint转换、训练损失三条路径 每一个单独拿出来都不算简单,三个叠在一起就是"地狱模式"。 更麻烦的是,整个训练流程涉及多个上游项目:transformers、Megatron-LM、Megatron-Bridge、vLLM、VeRL……任何一个版本对不上号,工程时间就会被无情吞噬。 Mind Lab最终把问题拆成了三块来解决:
  1. 训练侧:让DSA和MTP在真实训练配置下稳定收敛
  2. 推理侧:让vLLM正确加载DSA架构的LoRA适配器
  3. 桥接侧:让Checkpoint在不同框架间无损转换

训练侧:DSA对训练-推理误差零容忍 第一个真正的拦路虎,是训练结果和Rollout结果对不上。 普通的稠密注意力对rollout和training之间的微小数值差异比较宽容——大不了就是一点噪声。但DSA不一样。 DSA的稀疏选择机制对数值精度极度敏感。一点点差异,就可能导致选中的token完全不同。一旦发生这种情况,你训练用的轨迹就和Rollout生成的轨迹不是一回事了。 GLM5的技术报告里专门提到这一点:他们用IcePop来缓解RL中的训练-推理误差,并且在DSA的indexer token选择中需要确定性的torch.topk,默认还要冻结indexer。 Mind Lab在VeRL PR #5722里扩展了Rollout修正的语义:

  • 如果阈值是单个浮点数,沿用之前的截断重要性采样
  • 如果传入了上下界两个阈值,就切换到IcePop模式,把信任范围之外的重要性权重直接清零

但仅仅修复indexer的RoPE还不够。DSA要真正派上用场,必须能在长上下文训练配置下跑起来——也就是Token-Head-Dim(THD)的紧凑布局加上Context Parallelism(CP)的序列分片。 Mind Lab的解决方案是Megatron-LM PR #3674:

  • 加入TileLang融合内核,覆盖DSA的indexer和稀疏MLA路径
  • 实现absorbed MLA支持,传入position_ids和up_v_weight到DSA核心注意力
  • 增加get_absorb_query_key_value_tensors(),物化等效的linear_kv_up_proj权重(包括LoRA delta)
  • 提供分块非融合稀疏注意力的fallback方案 整个改动覆盖了从内核优化到fallback路径的完整链路。

MTP的稳定支持:和上游版本赛跑 MTP是另一个让人头疼的组件。 它同时触及模型结构、Checkpoint转换、训练损失路径三个方向,意味着单独看每一块都正常,但上游一旦改动其中一处,其他几处就可能悄悄失同步。 Mind Lab分三步推进: 第一步:VeRL PR #5323 启用Megatron-Bridge支持的MTP模型,把MTP从"特殊功能"变成正常训练路径,不再依赖特定版本的依赖项。 第二步:VeRL PR #5587 对齐上游Megatron-Core的MTP loss处理逻辑,可用时使用上游process_mtp_loss,不可用时fallback到旧逻辑,同时保持PPO要求模型返回logits的设定。 第三步:VeRL PR #6005 随着上游MLA flash-attention forward的修复落地,本地patch只需要在没有该修复的Megatron-Core版本上保持激活。 一旦模型家族依赖多个快速演进的上游项目,版本对齐本身就会消耗大量工程时间。

推理侧:vLLM的LoRA加载坑有多深? 训练搞定了,推理这边的坑也不少。 vLLM处理GLM5的LoRA路径有自己独特的挑战:

  • MLA有自己的投影结构
  • DSA增加了indexer相关模块
  • MoE引入了分组的expert权重 这些意味着即使LoRA权重存在,加载也可能因为对模块类型或包装层布局的错误假设而失败。 Mind Lab在vLLM PR #35077里修复了这一切。 简单的失败问题相对好处理:
  • LoRA注册可能在fused_qkv_a_proj这类模块上失败
  • MLA的post-load处理可能因为LoRA wrapper把quant_method藏到了base_layer后面而崩溃
  • MoE LoRA可能落到一个重写权重布局的backend路径上 修完这些之后,看起来一切都正常了,适配器也能加载了——但结果和LoRA合并后的推理结果不一致。 最终找到根本原因:GLM5在vLLM中实现的某些LoRA target并不是普通的线性层。 像fused_qkv_a_proj和GateLinear这类模块带有自定义的forward()逻辑、自定义内核、输出dtype处理、张量并行通信行为。一个通用的LoRA wrapper会把这些模块路由到错误的实现上。 Mind Lab的修复方案:
  • BaseLinearLayerWithLoRA增加_apply_base_forward(),保留基础层自己的forward(),仅在之后应用LoRA delta
  • MergedColumnParallelLinearWithLoRA仅对MergedColumnParallelLinear的有效未分片子类使用此路由
  • ReplicatedLinearWithLoRA对ReplicatedLinear子类做同样的修改 这样自定义的融合模块就能保留自己特有的行为,而不是被强行通过通用的merged-column路径处理。

Checkpoint桥接:让DSA、MLA、MoE、MTP都能正确转换 最后一块拼图是Checkpoint桥接。 Megatron、Hugging Face、vLLM对同一个权重的命名方式不一样,所以LoRA的映射必须保持一致。 Mind Lab在VeRL PR #5462里增加了DSA特定的target模块——linear_wq_b、linear_wk、linear_weights_proj,让indexer模块真正参与到LoRA映射中。 更深一层的工作是从DeepSeek V3.2到GLM5的Bridge适配。 早期transformers库还没原生支持GLM5时,Mind Lab就通过DeepSeek V3.2路径临时支持了GLM5。后续在Megatron-Bridge PR #2469和PR #2913里:

  • 构建了专门的glm_moe_dsa bridge/provider路径
  • 映射了核心的DSA、MLA设置、MoE结构和MTP层
  • PR #2644构建了MTP的映射关系 把hf_pretrained和hf_config直接存储在bridge实例上,下游bridge就能足够早地检查Hugging Face模型状态,决定需要做什么样的转换。

Grouped Experts:迟一步合并就完蛋 transformers 5引入了融合的expert布局——一个框架可能以融合形式存储一组expert,另一个框架则期望它们被拆开。 Import和Export因此变成了结构性操作:在这里切片,在那里重组,回去的路上再拼接。 Grouped LoRA的导出也需要类似修复。Megatron-Bridge PR #3341修改了grouped expert export,让adapter权重在grouped tensor被累加和转置之前先合并。 如果合并做晚了,导出的Checkpoint看起来还是有效的,但实际上和你训练的adapter已经对不上了——因为adapter根本没有被合并到权重里。 这种"看起来正常但实际错误"的Bug是工程里最难排查的类型。

为什么GLM5.1反而很简单? 把GLM5的全栈打通之后,紧接着支持GLM5.1反而成了简单的事情。 原因很直接:GLM5.1依然在GlmMoeDsaForCausalLM这个架构家族里。一旦训练、推理、Checkpoint转换都理解了这个家族,GLM5.1基本就只是一个新的Checkpoint而已。 这正是这次工作的核心价值所在——一旦整个技术栈能够把DSA、MLA、MoE、MTP、LoRA在训练、推理、Checkpoint转换之间无损流转,未来新模型的接入会变得简单得多。

One More Thing 这已经不是Mind Lab第一次在大模型基础设施上做出贡献了。 回顾一下这个团队最近的工作节奏:

  • 2025年底:实现全球首个万亿参数LoRA-RL训练,GPU消耗直降90%,技术获NVIDIA Megatron-Bridge和Seed verl官方合并
  • 2026年初:提出Context Learning范式,把临时上下文增益永久写进模型参数
  • 2026年4月:完成GLM5/GLM5.1的全栈LoRA训练支持,覆盖训练、推理、Checkpoint桥接 每一步都在为同一个目标铺路:让大模型从真实使用中持续成长,成为可被研究、可被改进、可被复现的开放系统。 Mind Lab是一家专注于"经验智能"(Experiential Intelligence)的研究实验室,10人核心团队成员来自OpenAI、DeepMind、Seed,学术背景横跨清华、MIT、Cornell,发表200+篇论文,被引30,000+次。 他们的Slogan是: Real intelligence learns from real experience. 真正的智能源于真实的体验。 底层基础设施的每一次扎实推进,都是在让这句话离工程现实更近一步。

参考链接: [1] Mind Lab Blog: macaron.im/mindlab/res… [2] VeRL PR #5722: github.com/volcengine/… [3] Megatron-LM PR #3674: github.com/NVIDIA/Mega… [4] vLLM PR #35077: github.com/vllm-projec… [5] Megatron-Bridge PR #2469: github.com/NVIDIA-NeMo…