invergent-ai/surogate

Training/Fine-tuning at the speed of light

解决的问题

Surogate Trainer 是一款高性能训练引擎,旨在加速大规模模型的预训练、微调和强化学习 (RL)。它解决了现有框架的性能瓶颈,专门针对在本地或云端运行的开发人员和企业的速度及 VRAM 效率进行了优化。

工作原理

该项目利用原生 C++/CUDA 引擎实现接近光速的吞吐量。它采用带有 AOT 自动微分的 Python DSL,允许添加新的模型架构。为了优化内存和速度,它具有针对权重、梯度和激活值的智能 CPU 卸载功能,并支持包括 BF16、FP8 和 NVFP4(专门针对 Blackwell GPU)在内的广泛精度格式。它还通过多线程后端和 Ray 支持原生的多 GPU 和多节点训练。

适用对象

专为需要在各种 NVIDIA GPU 架构(从 SM80 到 SM121)上对 LLM 和 MoE 模型进行快速实验和高性能训练的 AI 开发人员和企业而构建。

亮点

  • 极致精度支持:原生支持 BF16、FP8 和 NVFP4 训练,包括针对 Blackwell GPU 的专用方案。
  • 高级 RL 能力:支持具有确定性环境的 GRPO 和 DPO 强化学习。
  • 内存效率:智能 CPU 卸载允许以原生 bf16 精度进行微调,旨在取代对 QLoRA 的需求。
  • 自适应训练:内置带有阶段检测、提前停止和动态 epoch 调整的自动化监控。
  • MoE 专项优化:混合专家模型 (MoE) 的专用功能,包括专家并行 (Expert Parallelism) 和不平衡检测。
  • Stacked LoRA:能够在不进行离线合并的情况下,在另一个 LoRA 适配器之上训练 LoRA 适配器的能力。