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支持,实现无缝的集群级部署。
相关
- 项目
- 项目
- 项目
- 项目
- 项目