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 伺服器 服務 所產生的檢查點。此專案專注於透過編譯的訓練圖、融合的內核、低精度的 Tensor Core 格式(BF16、FP8、NVFP4、GGUF),以及積極的記憶體管理技巧,從 NVIDIA GPU 中榨取出最多的每秒 token 數量。
核心功能
| 領域 | 亮點 |
|---|---|
| 訓練引擎 | • 完整預訓練、SFT、LoRA/QLoRA、GRPO(RL)、DPO、知識蒸餾。 • 精度配方:BF16、混合 FP8、Blackwell-NVFP4,以及量化適配器。 • 多 GPU 與多節點支援(執行緒化資料平行、ZeRO 分片、Ray 整合)。 • 流水線平行與 CPU 離線,適用於超過單一 GPU 的模型。 • MoE 專家平行、負載平衡與不平衡偵測。 • 自動圖編譯與提前編譯的自動微分,以降低 overhead。 |
| 服務引擎 | • 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 | 2.53× 相較於 Unsloth(1 × H100) |
| 4 × RTX 5090 | 136,200(FP4 LoRA) | 總體 3.74× 相較於單卡 | |
| 服務 – Qwen3.5-0.8B(1 位使用者) | 1 × RTX 5090 | 802 | 2.32× 相較於 vLLM |
| 8 × RTX 5090,GLM-5.3-Flash(16 位使用者) | 292.9 | 7.0× 相較於 llama.cpp | |
| 100 位使用者,Qwen3.5-4B | 5,345 | 1.19× 相較於 vLLM |
基準測試以打包的 2,048 token 序列(訓練)或 512 輸入 / 128 輸出工作負載(服務)進行,以牆壁時間計算 token 數;模型載入時間不包含在內。
快速上手(Linux,Python 3.12,CUDA 12.8+)
# 安裝預建輪子(自動選擇正確的 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、RL、MoE 與多模態微調)與高吞吐量服務,並透過 OpenAI 兼容 API 提供。它利用編譯圖、融合內核與低精度格式,在現代 NVIDIA GPU 上聲稱比主流 Python 堆疊快 2–7 倍。
相關
- 專案
- 專案
- 專案
- 專案
- 專案