invergent-ai/surogate

Train and serve LLMs at extreme speed and massive throughput.

Surogate – 高性能LLM学習・サービングエンジン (C++/CUDA)

何であるか – Surogateは、大規模言語モデル(LoRA/QLoRA、強化学習手法、知識蒸留、MoE、マルチモーダルファインチューニングを含む)の学習と、OpenAI互換HTTPサーバーでサービングするためのネイティブC++/CUDAツールキットです。本プロジェクトは、コンパイルされた学習グラフ、結合カーネル、低精度Tensor Coreフォーマット(BF16、FP8、NVFP4、GGUF)、そして積極的なメモリ管理テクニックを用いて、NVIDIA GPUの1秒あたりのトークン数を最大限に引き出すことに焦点を当てています。


コア機能

分野 ハイライト
学習エンジン • フルプレトレーニング、SFT、LoRA/QLoRA、GRPO(RL)、DPO、知識蒸留。
• 精度レシピ:BF16、ハイブリッドFP8、Blackwell-NVFP4、および量子化されたアダプタ。
• マルチGPUおよびマルチノード対応(スレッド化データ並列、ZeROシャーディング、Ray統合)。
• パイプライン並列化およびCPUオフロード(1つのGPUより大きなモデル用)。
• MoEエキスパート並列化、ロードバランス、不均衡検出。
• 自動グラフコンパイルおよび事前オーバーヘッド最小のオートディフ(ahead-of-time autodiff)。
サービングエンジン • OpenAI互換のChat/Completions API(Anthropicスタイルのメッセージも対応)。
• ストリーミング出力、ツールコール解析、「思考」制御。
• コンティニュアスバッチ処理、プレフィックスキャッシュ、1モデルあたり最大128同時シーケンス。
• 予測的デコード(MTP/DFlash)およびマルチGPUレイヤーパイプライン。
• ネイティブGGUFロード(Q4_K_M、Q8_0など)および直接safetensorsインポート。
• ランタイムLoRAロード/アンロード、マルチモデルホスティング、アイドルモデルのスリープ/ウェイクアップ。
• ビジョンおよび埋め込みエンドポイント(画像/動画、GPU/AVX-512上のEmbeddingGemma)。
• Prometheusメトリクス、APIキー認証、ヘルスチェック。

パフォーマンスの主張(2026年9月時点)

タスク ハードウェア トークン/秒 相対的向上
学習 – 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トークンシーケンス(学習)または512入力/128出力ワークロード(サービング)を壁時計時間で測定しており、モデルロード時間は含まれません。

はじめ方(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アダプタを学習する(READMEに例としてtrain.yamlを示す)その後実行:

surogate sft train.yaml

CLIにはmergequantizegrpo-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オンリーの生成は提供されていません。

詳細を学ぶには


TL;DR

Surogateは、性能最優先のネイティブC++/CUDAプラットフォームであり、LoRA、RL、MoE、マルチモーダルファインチューニングを含むLLM学習と、OpenAI互換APIを介した高スループットサービングを統合しています。コンパイルされたグラフ、結合カーネル、低精度フォーマットを活用し、最新のNVIDIA GPU上で、人気のあるPythonベーススタックより2~7倍の速度向上を主張しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト