invergent-ai/surogate
Train and serve LLMs at extreme speed and massive throughput.
Surogate – 高性能 LLM 训练与服务引擎 (C++/CUDA)
是什么 – Surogate 是一个原生 C++/CUDA 工具包,可让你 训练 大型语言模型(包括 LoRA/QLoRA、强化学习方法、知识蒸馏、MoE 以及多模态微调),并使用兼容 OpenAI 的 HTTP 服务器 服务 生成的检查点。该项目专注于通过使用编译的训练图、融合内核、低精度张量核心格式(BF16、FP8、NVFP4、GGUF)以及激进的内存管理技巧,从 NVIDIA GPU 中榨取每秒最多的 token 数量。
核心功能
| 领域 | 亮点 |
|---|---|
| 训练引擎 | • 完整预训练、SFT、LoRA/QLoRA、GRPO(强化学习)、DPO、知识蒸馏。 • 精度方案:BF16、混合 FP8、Blackwell-NVFP4,以及量化适配器。 • 多 GPU 与多节点支持(线程化数据并行、ZeRO 分片、Ray 集成)。 • 流水线并行与 CPU 卸载,适用于超过单张 GPU 容量的模型。 • MoE 专家并行、负载均衡与不平衡检测。 • 自动图编译与提前编译的自动微分,实现低开销。 |
| 服务引擎 | • 兼容 OpenAI 的 Chat/Completions API(也支持 Anthropic 风格的消息)。 • 流式输出、工具调用解析、“思考”控制。 • 连续批处理、前缀缓存,每模型最多支持 128 个并发序列。 • 推测解码(MTP/DFlash)与多 GPU 层级流水线。 • 原生 GGUF 加载(Q4_K_M、Q8_0 等)与直接 safetensors 导入。 • 运行时 LoRA 加载/卸载、多模型托管、空闲模型的休眠/唤醒。 • 视觉与嵌入端点(图像/视频,GPU/AVX-512 上的 EmbeddingGemma)。 • Prometheus 指标、API 密钥认证、健康检查。 |
性能声明(截至 2026 年 9 月)
| 任务 | 硬件 | 每秒 token 数 | 相对提升 |
|---|---|---|---|
| 训练 – Qwen3-0.6B BF16 | 1 × H100 | 53,900 | 比 Unsloth(1 × H100)快 2.53× |
| 4 × RTX 5090 | 136,200(FP4 LoRA) | 单卡相比聚合提升 3.74× | |
| 服务 – Qwen3.5-0.8B(1 用户) | 1 × RTX 5090 | 802 | 比 vLLM 快 2.32× |
| 8 × RTX 5090,GLM-5.3-Flash(16 用户) | 292.9 | 比 llama.cpp 快 7.0× | |
| 100 用户,Qwen3.5-4B | 5,345 | 比 vLLM 快 1.19× |
基准测试基于打包的 2,048 token 序列(训练)或 512 输入 / 128 输出工作负载(服务)的墙时 token 计数;模型加载时间不计入。
快速入门(Linux,Python 3.12,CUDA 12.8+)
# 安装预构建的 wheel(自动选择合适的 CUDA 构建版本)
curl -LsSf https://github.com/invergent-ai/surogate/releases/latest/download/install.sh | bash
source .venv/bin/activate
服务一个模型
surogate serve Qwen/Qwen3.5-0.8B \
--served-model-name surogate \
--port 8080 --max-model-len 4096 \
--max-num-seqs 16 --kv-capacity auto
训练一个 LoRA 适配器(示例 train.yaml 见 README)然后运行:
surogate sft train.yaml
CLI 还提供 merge、quantize、grpo-colocate 命令以及 Docker 镜像(ghcr.io/invergent-ai/surogate:latest-cu129)。
哪些人可能使用它
- 研究实验室 / 初创公司:需要快速迭代微调或 RLHF 流程,并希望在同一代码库中实现确定性、低延迟推理。
- 企业用户:在 RTX 50 系列或 H100 集群上部署大量并发 LLM 端点,寻求比 vLLM/llama.cpp 更高的吞吐量。
- 自定义模型家族开发者(如 Qwen、Llama 3、Gemma 4、MiniCPM5 等):希望拥有统一的原生引擎用于训练与服务,内置对 LoRA、MoE 和视觉扩展的支持。
局限性 / 待办事项
- 服务构建默认针对 SM120a(Blackwell/RTX 50);Ada/Hopper GPU 运行回退构建,可能缺少部分功能。
- 某些模型家族(如 DeepSeek-V4、Flash-Next、GLM-5.3-Flash)的训练定义标记为“延迟”——可服务但尚不可训练。
- 运行时 LoRA 尚不支持 Spark-X2.5 服务路径。
- 仅支持 GPU 推理;不提供纯 CPU 生成。
如何深入了解
- 文档 – https://docs.surogate.ai(安装指南、训练模式指南、精度方案、强化学习指南、服务 API 参考)。
- 基准测试 –
docs/reference/benchmarks.md与surogate/serve/BENCHMARKS.md。 - 示例 –
examples/目录包含 SFT、MoE、视觉、GRPO、DPO 和量化等端到端脚本。 - 源码 – C++/CUDA 核心位于
csrc/;Python DSL 与 CLI 在surogate/。
简要总结
Surogate 是一个以性能为首要目标的原生 C++/CUDA 平台,统一了 LLM 训练(包括 LoRA、强化学习、MoE 与多模态微调)与高吞吐服务,通过 OpenAI 兼容 API 实现。它利用编译图、融合内核与低精度格式,在现代 NVIDIA GPU 上宣称比主流 Python 堆栈快 2–7 倍。
相关
- 项目
- 项目
- 项目
- 项目
- 项目