EvolvingLMMs-Lab/lmms-engine

A simple, unified multimodal models training engine. Lean, flexible, and built for hacking at scale.

解决的问题

LMMs-Engine 提供了一个统一、轻量的框架,用于大规模训练多模态模型。它消除了对碎片化训练脚本的需求,通过单一引擎即可处理视觉-语言模型(VLM)、扩散模型和标准大语言模型(LLM),同时集成了高性能的分布式训练和内存优化。

工作原理

该引擎采用构建者模式来组合训练流水线,允许用户从预训练权重初始化模型,应用自定义数据处理器,并选择特定的训练器(例如用于通用 VLM 的 hf_trainer 或用于视频生成的 wan_trainer)。它使用工厂模式处理数据集和处理器,以确保可扩展性。

为实现可扩展性和高效性,它集成了多种先进技术:

  • 分布式训练:使用 FSDP2(基于 PyTorch DTensor 的分片)和 Ulysses Sequence Parallelism 来处理超长上下文。
  • 内核优化:实现 Liger 内核(Triton 融合操作)和 Flash Attention,以减少内存使用并消除填充计算。
  • 高级优化:包含 Muon 优化器,该优化器使用牛顿-舒尔茨正交化,相比 AdamW 具有更快的收敛速度。
  • 灵活的修补机制:通过猴子补丁系统,可在不修改原始源代码的情况下在运行时注入模型特定的优化。

适用人群

专为需要进行大规模多模态模型预训练或微调的 AI 研究人员和工程师设计,尤其适用于处理高分辨率图像、长视频或复杂多模态(图像、音频、文本)输入的场景。

主要亮点

  • 广泛的模型支持:支持 20+ 种架构,包括 Qwen2.5-VL、Qwen3-VL MoE、WanVideo 和 LLaVA-OneVision。
  • 高效率:采用序列打包(首次适应装箱)和原生稀疏注意力(NSA),实现高效的长上下文处理。
  • 统一的模态支持:能够训练将视觉、音频和文本统一在一个框架中的模型。
  • 生产级工具链:提供 Docker 镜像和原生 torchrun 支持,实现无缝的集群级部署。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目