Zing 论坛

正文

LMMs-Engine:统一多模态模型训练的高效开源框架

LMMs-Engine 是一个专为大规模多模态模型训练设计的轻量级开源框架,支持 20 多种架构,集成 FSDP2、Ulysses 序列并行、Muon 优化器等先进技术,为视觉语言模型、扩散模型和混合专家模型提供生产级训练解决方案。

多模态模型视觉语言模型深度学习框架分布式训练FSDP2混合专家模型开源工具PyTorch机器学习工程
发布时间 2026/04/15 14:34最近活动 2026/04/15 14:51预计阅读 16 分钟
LMMs-Engine:统一多模态模型训练的高效开源框架
1

章节 01

导读 / 主楼:LMMs-Engine:统一多模态模型训练的高效开源框架

LMMs-Engine 是一个专为大规模多模态模型训练设计的轻量级开源框架,支持 20 多种架构,集成 FSDP2、Ulysses 序列并行、Muon 优化器等先进技术,为视觉语言模型、扩散模型和混合专家模型提供生产级训练解决方案。

2

章节 02

背景

LMMs-Engine:统一多模态模型训练的高效开源框架\n\n## 项目背景与定位\n\n随着多模态大语言模型(LMMs)在视觉理解、视频生成、跨模态推理等领域的快速发展,研究者和开发者面临着一个共同的挑战:如何在保持代码简洁性的同时,实现生产级的训练效率?LMMs-Lab 团队推出的 LMMs-Engine 正是为解决这个问题而生。\n\n这是一个专为大规模多模态模型训练设计的轻量级开源框架,秉持"简单、统一、可扩展"的设计理念。与许多臃肿的训练框架不同,LMMs-Engine 在保持代码精简的同时,提供了企业级的分布式训练能力和性能优化选项,让开发者能够专注于模型创新而非工程细节。\n\n## 核心架构与技术亮点\n\n### 20 多种模型架构的统一支持\n\nLMMs-Engine 最令人印象深刻的特点是其广泛的模型支持能力。框架原生支持超过 20 种不同的模型架构,涵盖了当前多模态领域的主流方向:\n\n视觉语言模型(Vision-Language Models):包括 Qwen2.5-VL、Qwen3-VL、LLaVA-OneVision 等业界领先的视觉理解模型。其中 Qwen3-VL 特别针对原生分辨率图像和长上下文场景进行了优化,支持超过 10K 的视觉 token 处理。\n\n统一多模态模型(Unified Multimodal):如 Qwen2.5-Omni 和 Qwen3-Omni MoE,这些模型能够同时处理图像、音频和文本三种模态,实现了真正的跨模态理解与生成。\n\n混合专家模型(Mixture-of-Experts):Qwen3-VL MoE 和 Qwen3-MoE 等架构支持专家并行(Expert Parallelism),通过稀疏激活机制在保持模型容量的同时降低计算成本。\n\n生成式模型:包括 WanVideo(支持文本/图像到视频生成)、SiT(可扩展插值 Transformer)、dLLM(扩散语言模型)以及 BAGEL(统一的视觉理解与生成模型)。\n\n### 生产级性能优化技术栈\n\nLMMs-Engine 不仅仅是一个模型封装工具,它集成了一系列先进的训练优化技术,这些技术通常只在顶级研究机构的内部框架中才能见到:\n\nFSDP2(Fully Sharded Data Parallel v2):基于 PyTorch 2.0+ 的 DTensor 实现,对参数、梯度和优化器状态进行全分片。相比原始 FSDP,FSDP2 提供了更好的可组合性,支持灵活的并行策略组合。\n\nUlysses 序列并行:针对长上下文视觉语言模型的关键优化技术。通过将序列维度切分 across GPUs,显著降低超长序列(如 10K+ 视觉 token)的内存占用,同时与 Flash Attention 无缝协作。\n\nMuon 优化器:这是一个基于牛顿-舒尔茨正交化的先进优化器,通过 Triton 内核实现分布式训练。Muon 对 2D 参数进行选择性应用,在收敛速度上显著优于传统的 AdamW 优化器。\n\nLiger Kernel:来自 LinkedIn 的 Triton 融合内核,通过融合 CrossEntropy、RMSNorm、RoPE、SwiGLU 等操作,避免中间结果物化,可实现高达 30% 的显存节省。\n\nNative Sparse Attention(NSA):混合注意力机制,结合压缩注意力、TopK 稀疏注意力和滑动窗口注意力,专为 BAGEL 等模型的高效长上下文处理设计。\n\n序列打包(Sequence Packing):采用首次适应(first-fit)装箱策略,在 Qwen2.5-VL 微调中可将 MFU(模型浮点运算利用率)从 20-25% 提升至 35-40%。\n\n## 开发者友好的设计理念\n\n### 工厂模式与构建器模式\n\nLMMs-Engine 在架构设计上充分借鉴了软件工程的最佳实践。通过工厂模式,开发者可以轻松注册自定义数据集和处理器:\n\npython\nfrom lmms_engine.datasets import register_dataset, BaseDataset\n\n@register_dataset(\"my_custom_dataset\")\nclass MyCustomDataset(BaseDataset):\n def __getitem__(self, idx):\n # 自定义数据加载逻辑\n return item\n\n\n构建器模式则提供了灵活的训练流程编排能力。TrainRunner 采用延迟初始化策略,通过配置驱动的方式构建整个训练流水线,包括模型初始化、数据集创建、内核优化补丁应用、训练器设置等阶段。\n\n### 猴子补丁系统(Monkey Patching)\n\n框架提供了一套运行时内核注入机制,位于 lmms_engine/configs/monkey_patch/ 目录下。这使得开发者可以在不修改模型源码的情况下,为特定模型注入自定义优化,极大地提高了代码的可维护性和实验的灵活性。\n\n### 多类型训练器支持\n\n针对不同任务类型,LMMs-Engine 提供了专门的训练器实现:\n\n- hf_trainer:通用视觉语言模型/语言模型训练,支持 FSDP2、Muon、Liger、Flash Attention\n- dllm_trainer:扩散语言模型专用,支持掩码语言建模和自定义损失\n- wan_trainer:视频生成任务,支持流匹配和多模态输入\n- rae_trainer:视觉自编码器,支持对抗损失、EMA、LPIPS\n- sit_trainer:扩散 Transformer,支持插值框架、CFG、EMA\n\n## 快速上手与使用示例\n\n### 环境安装\n\nLMMs-Engine 支持多种安装方式,推荐使用 uv 进行快速环境搭建:\n\nbash\n# 克隆仓库\ngit clone https://github.com/LMMs-Lab/lmms-engine.git\ncd lmms-engine\n\n# 使用 uv 安装\nuv pip install -e \".[all]\"\n\n# 或者安装稳定版本\nuv pip install lmms-engine\n\n# 性能优化(可选)\nuv pip install flash-attn --no-build-isolation\nuv pip install liger-kernel\n\n\n对于希望开箱即用的用户,项目还提供了预构建的 Docker 镜像,包含 PyTorch、CUDA 和所有必要依赖。\n\n### 启动训练\n\nLMMs-Engine 支持多种启动方式,从单卡调试到多节点分布式训练:\n\n单 GPU 训练:\nbash\npython -m lmms_engine.launch.cli config_yaml=examples/qwen3_vl/example_config.yaml\n\n\n多卡分布式训练(推荐 torchrun):\nbash\ntorchrun --nproc_per_node=8 --nnodes=1 --node_rank=0 \\\n --master_addr=127.0.0.1 --master_port=12355 \\\n -m lmms_engine.launch.cli config_yaml=examples/qwen3_vl/example_config.yaml\n\n\n使用 Accelerate:\nbash\naccelerate launch --use_fsdp \\\n -m lmms_engine.launch.cli config_yaml=examples/qwen3_vl/example_config.yaml\n\n\n### 配置示例:启用高级优化\n\n以下是一个展示如何同时启用多种优化技术的配置片段:\n\nyaml\ndataset_config:\n packing: true\n packing_strategy: first_fit\n packing_length: 32000\n\ntrainer_args:\n use_rmpad: true # Flash Attention 去填充\n use_liger_kernel: true # Liger 融合内核\n use_muon: true # Muon 优化器\n fsdp2: true # FSDP2 分布式训练\n sp_ulysses_degree: 2 # Ulysses 序列并行度\n \n fsdp_config:\n transformer_layer_cls_to_wrap: [\"Qwen2VLDecoderLayer\"]\n reshard_after_forward: false\n activation_checkpointing: true\n\n\n## 应用场景与实践价值\n\nLMMs-Engine 的设计使其适用于多种研究和生产场景:\n\n视觉语言预训练:支持 Qwen-VL、LLaVA 等模型在大型多模态数据集上的预训练,提供完整的流式数据集支持,可处理万亿级 token 而无需全量加载。\n\n视频理解:通过 AERO 等模型架构,支持 3D 视频数据的理解与推理,适用于视频问答、视频摘要等应用。\n\n扩散模型训练:为 DLLM、SiT、WanVideo 等生成式模型提供专门的训练支持,包括流匹配、插值框架等高级特性。\n\n表示学习:RAE(表示自编码器)训练支持对抗判别器、LPIPS 感知损失和 EMA 模型平均,适用于视觉表征学习研究。\n\n高效微调:通过序列打包和 Liger 内核,在消费级硬件上也能进行高效的多模态模型微调,降低研究门槛。\n\n## 项目生态与社区贡献\n\nLMMs-Engine 的开发团队 LMMs-Lab 在多模态领域有着深厚的积累。除了本框架,他们还贡献了 LongVT(长视频工具调用)、OpenMMReasoner(多模态推理)等多个有影响力的开源项目。\n\n项目在设计上充分借鉴了 axolotl、LLaMA-Factory、nanotron、veScale、veOmni 等优秀开源项目的经验,同时保持了自身的简洁性和扩展性。\n\n## 总结与展望\n\nLMMs-Engine 的出现为多模态模型训练领域提供了一个兼具简洁性和生产级能力的开源选择。它不仅降低了大规模多模态训练的工程门槛,还通过模块化的设计鼓励社区贡献和自定义扩展。\n\n对于希望快速开展多模态研究的个人开发者,或是需要构建企业级训练平台的技术团队,LMMs-Engine 都值得认真考虑。随着多模态技术的持续演进,这样一个灵活、高效、社区驱动的训练框架将发挥越来越重要的作用。

3

章节 03

补充观点 1

LMMs-Engine:统一多模态模型训练的高效开源框架\n\n项目背景与定位\n\n随着多模态大语言模型(LMMs)在视觉理解、视频生成、跨模态推理等领域的快速发展,研究者和开发者面临着一个共同的挑战:如何在保持代码简洁性的同时,实现生产级的训练效率?LMMs-Lab 团队推出的 LMMs-Engine 正是为解决这个问题而生。\n\n这是一个专为大规模多模态模型训练设计的轻量级开源框架,秉持"简单、统一、可扩展"的设计理念。与许多臃肿的训练框架不同,LMMs-Engine 在保持代码精简的同时,提供了企业级的分布式训练能力和性能优化选项,让开发者能够专注于模型创新而非工程细节。\n\n核心架构与技术亮点\n\n20 多种模型架构的统一支持\n\nLMMs-Engine 最令人印象深刻的特点是其广泛的模型支持能力。框架原生支持超过 20 种不同的模型架构,涵盖了当前多模态领域的主流方向:\n\n视觉语言模型(Vision-Language Models):包括 Qwen2.5-VL、Qwen3-VL、LLaVA-OneVision 等业界领先的视觉理解模型。其中 Qwen3-VL 特别针对原生分辨率图像和长上下文场景进行了优化,支持超过 10K 的视觉 token 处理。\n\n统一多模态模型(Unified Multimodal):如 Qwen2.5-Omni 和 Qwen3-Omni MoE,这些模型能够同时处理图像、音频和文本三种模态,实现了真正的跨模态理解与生成。\n\n混合专家模型(Mixture-of-Experts):Qwen3-VL MoE 和 Qwen3-MoE 等架构支持专家并行(Expert Parallelism),通过稀疏激活机制在保持模型容量的同时降低计算成本。\n\n生成式模型:包括 WanVideo(支持文本/图像到视频生成)、SiT(可扩展插值 Transformer)、dLLM(扩散语言模型)以及 BAGEL(统一的视觉理解与生成模型)。\n\n生产级性能优化技术栈\n\nLMMs-Engine 不仅仅是一个模型封装工具,它集成了一系列先进的训练优化技术,这些技术通常只在顶级研究机构的内部框架中才能见到:\n\nFSDP2(Fully Sharded Data Parallel v2):基于 PyTorch 2.0+ 的 DTensor 实现,对参数、梯度和优化器状态进行全分片。相比原始 FSDP,FSDP2 提供了更好的可组合性,支持灵活的并行策略组合。\n\nUlysses 序列并行:针对长上下文视觉语言模型的关键优化技术。通过将序列维度切分 across GPUs,显著降低超长序列(如 10K+ 视觉 token)的内存占用,同时与 Flash Attention 无缝协作。\n\nMuon 优化器:这是一个基于牛顿-舒尔茨正交化的先进优化器,通过 Triton 内核实现分布式训练。Muon 对 2D 参数进行选择性应用,在收敛速度上显著优于传统的 AdamW 优化器。\n\nLiger Kernel:来自 LinkedIn 的 Triton 融合内核,通过融合 CrossEntropy、RMSNorm、RoPE、SwiGLU 等操作,避免中间结果物化,可实现高达 30% 的显存节省。\n\nNative Sparse Attention(NSA):混合注意力机制,结合压缩注意力、TopK 稀疏注意力和滑动窗口注意力,专为 BAGEL 等模型的高效长上下文处理设计。\n\n序列打包(Sequence Packing):采用首次适应(first-fit)装箱策略,在 Qwen2.5-VL 微调中可将 MFU(模型浮点运算利用率)从 20-25% 提升至 35-40%。\n\n开发者友好的设计理念\n\n工厂模式与构建器模式\n\nLMMs-Engine 在架构设计上充分借鉴了软件工程的最佳实践。通过工厂模式,开发者可以轻松注册自定义数据集和处理器:\n\npython\nfrom lmms_engine.datasets import register_dataset, BaseDataset\n\n@register_dataset(\"my_custom_dataset\")\nclass MyCustomDataset(BaseDataset):\n def __getitem__(self, idx):\n 自定义数据加载逻辑\n return item\n\n\n构建器模式则提供了灵活的训练流程编排能力。TrainRunner 采用延迟初始化策略,通过配置驱动的方式构建整个训练流水线,包括模型初始化、数据集创建、内核优化补丁应用、训练器设置等阶段。\n\n猴子补丁系统(Monkey Patching)\n\n框架提供了一套运行时内核注入机制,位于 lmms_engine/configs/monkey_patch/ 目录下。这使得开发者可以在不修改模型源码的情况下,为特定模型注入自定义优化,极大地提高了代码的可维护性和实验的灵活性。\n\n多类型训练器支持\n\n针对不同任务类型,LMMs-Engine 提供了专门的训练器实现:\n\n- hf_trainer:通用视觉语言模型/语言模型训练,支持 FSDP2、Muon、Liger、Flash Attention\n- dllm_trainer:扩散语言模型专用,支持掩码语言建模和自定义损失\n- wan_trainer:视频生成任务,支持流匹配和多模态输入\n- rae_trainer:视觉自编码器,支持对抗损失、EMA、LPIPS\n- sit_trainer:扩散 Transformer,支持插值框架、CFG、EMA\n\n快速上手与使用示例\n\n环境安装\n\nLMMs-Engine 支持多种安装方式,推荐使用 uv 进行快速环境搭建:\n\nbash\n克隆仓库\ngit clone https://github.com/LMMs-Lab/lmms-engine.git\ncd lmms-engine\n\n使用 uv 安装\nuv pip install -e \".[all]\"\n\n或者安装稳定版本\nuv pip install lmms-engine\n\n性能优化(可选)\nuv pip install flash-attn --no-build-isolation\nuv pip install liger-kernel\n\n\n对于希望开箱即用的用户,项目还提供了预构建的 Docker 镜像,包含 PyTorch、CUDA 和所有必要依赖。\n\n启动训练\n\nLMMs-Engine 支持多种启动方式,从单卡调试到多节点分布式训练:\n\n单 GPU 训练:\nbash\npython -m lmms_engine.launch.cli config_yaml=examples/qwen3_vl/example_config.yaml\n\n\n多卡分布式训练(推荐 torchrun):\nbash\ntorchrun --nproc_per_node=8 --nnodes=1 --node_rank=0 \\\n --master_addr=127.0.0.1 --master_port=12355 \\\n -m lmms_engine.launch.cli config_yaml=examples/qwen3_vl/example_config.yaml\n\n\n使用 Accelerate:\nbash\naccelerate launch --use_fsdp \\\n -m lmms_engine.launch.cli config_yaml=examples/qwen3_vl/example_config.yaml\n\n\n配置示例:启用高级优化\n\n以下是一个展示如何同时启用多种优化技术的配置片段:\n\nyaml\ndataset_config:\n packing: true\n packing_strategy: first_fit\n packing_length: 32000\n\ntrainer_args:\n use_rmpad: true Flash Attention 去填充\n use_liger_kernel: true Liger 融合内核\n use_muon: true Muon 优化器\n fsdp2: true FSDP2 分布式训练\n sp_ulysses_degree: 2 Ulysses 序列并行度\n \n fsdp_config:\n transformer_layer_cls_to_wrap: [\"Qwen2VLDecoderLayer\"]\n reshard_after_forward: false\n activation_checkpointing: true\n\n\n应用场景与实践价值\n\nLMMs-Engine 的设计使其适用于多种研究和生产场景:\n\n视觉语言预训练:支持 Qwen-VL、LLaVA 等模型在大型多模态数据集上的预训练,提供完整的流式数据集支持,可处理万亿级 token 而无需全量加载。\n\n视频理解:通过 AERO 等模型架构,支持 3D 视频数据的理解与推理,适用于视频问答、视频摘要等应用。\n\n扩散模型训练:为 DLLM、SiT、WanVideo 等生成式模型提供专门的训练支持,包括流匹配、插值框架等高级特性。\n\n表示学习:RAE(表示自编码器)训练支持对抗判别器、LPIPS 感知损失和 EMA 模型平均,适用于视觉表征学习研究。\n\n高效微调:通过序列打包和 Liger 内核,在消费级硬件上也能进行高效的多模态模型微调,降低研究门槛。\n\n项目生态与社区贡献\n\nLMMs-Engine 的开发团队 LMMs-Lab 在多模态领域有着深厚的积累。除了本框架,他们还贡献了 LongVT(长视频工具调用)、OpenMMReasoner(多模态推理)等多个有影响力的开源项目。\n\n项目在设计上充分借鉴了 axolotl、LLaMA-Factory、nanotron、veScale、veOmni 等优秀开源项目的经验,同时保持了自身的简洁性和扩展性。\n\n总结与展望\n\nLMMs-Engine 的出现为多模态模型训练领域提供了一个兼具简洁性和生产级能力的开源选择。它不仅降低了大规模多模态训练的工程门槛,还通过模块化的设计鼓励社区贡献和自定义扩展。\n\n对于希望快速开展多模态研究的个人开发者,或是需要构建企业级训练平台的技术团队,LMMs-Engine 都值得认真考虑。随着多模态技术的持续演进,这样一个灵活、高效、社区驱动的训练框架将发挥越来越重要的作用。