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 강화 학습 지원.
  • 메모리 효율성: 네이티브 bf16 정밀도로 미세 조정을 가능하게 하는 스마트 CPU 오프로딩을 통해 QLoRA의 필요성을 대체하는 것을 목표로 함.
  • 적응형 학습: 단계 감지, 조기 종료 및 동적 에포크 조정 기능이 포함된 내장 자동 모니터링.
  • MoE 특화: Expert Parallelism 및 불균형 감지를 포함한 Mixture-of-Experts 전용 기능.
  • Stacked LoRA: 오프라인 병합 없이 다른 LoRA 어댑터 위에 LoRA 어댑터를 학습할 수 있는 기능.