इस प्रोजेक्ट के बारे में

Surogate एक Apache 2.0 टूलकिट है जो LLM प्रशिक्षण और सेवा को एक ही प्रोजेक्ट में जोड़ता है, जिसमें NVIDIA GPU के लिए डिज़ाइन किए गए मूल C++/CUDA इंजन हैं। यह Python 3.12 और CUDA 13 (ड्राइवर 580+) के साथ Linux x86_64 को लक्षित करता है, और इसे व्हील, इंस्टॉल स्क्रिप्ट और कंटेनर इमेज के रूप में वितरित किया जाता है। प्रशिक्षण इंजन प्रशिक्षण पक्ष में प्रीट्रेनिंग और पूर्ण फाइन-ट्यूनिंग, LoRA और QLoRA एडेप्टर, और BF16, हाइब्रिड FP8 और ब्लैकवेल NVFP4 सहित परिशुद्धता रेसिपी शामिल हैं। यह रिवॉर्ड एनवायरनमेंट के साथ GRPO रीइन्फोर्समेंट लर्निंग, DPO प्रेफरेंस ट्रेनिंग और टीचर टॉप-के वितरण से नॉलेज डिस्टिलेशन का समर्थन करता है। मल्टी-GPU और मल्टी-नोड निष्पादन थ्रेडेड डेटा समानांतरता, ZeRO शार्डिंग, संचार ओवरलैप और Ray का उपयोग करता है। पाइपलाइन समानांतरता NVLink के बिना PCIe GPU पर LoRA के लिए फ्रोजन वेट स्ट्रीम कर सकती है। MoE प्रशिक्षण में एक्सपर्ट समानांतरता और लोड संतुलन शामिल है। मेमोरी नियंत्रण में वेट, ग्रेडिएंट, ऑप्टिमाइज़र स्टेट, एक्टिवेशन और क्वांट्स के लिए CPU ऑफलोड, साथ ही पुनर्गणना और टाइल्ड MLP निष्पादन शामिल है। ऑप्टिमाइज़र में AdamW 8-बिट और NorMuon शामिल हैं, Weights & Biases लॉगिंग, चेकपॉइंट और रिज़्यूम के साथ। मॉडल Python DSL के माध्यम से परिभाषित किए जाते हैं जिसमें टाइम-अहेड स्वचालित विभेदन होता है। सेवा इंजन सेवा पक्ष एक मूल C++/CUDA HTTP सर्वर है जो OpenAI-संगत Chat Completions, Completions और Responses एंडपॉइंट, साथ ही Anthropic-संगत Messages प्रदान करता है। यह स्ट्रीमिंग, अलग रीज़निंग कंटेंट, थिंकिंग नियंत्रण और मॉडल-विशिष्ट फ़ंक्शन-कॉल पार्सर का समर्थन करता है। समवर्ती सुविधाओं में निरंतर बैचिंग, चंक्ड प्रॉम्प्ट प्रोसेसिंग, CUDA ग्राफ, प्रति मॉडल 128 सक्रिय अनुक्रम, प्रीफिक्स कैशिंग और MTP या DFlash के माध्यम से स्पेक्युलेटिव डिकोडिंग शामिल हैं। यह मूल GGUF (K-quants, Q8_0, लीगेसी और IQ प्रारूप), Hugging Face safetensors चेकपॉइंट और BF16/FP8/NVFP4 एक्सपोर्ट लोड करता है। KV कैश लोचदार है और मॉडलों के बीच साझा किया जा सकता है। रनटाइम LoRA एडेप्टर प्रति अनुरोध लोड और चुने जा सकते हैं। कई नामित मॉडल प्राथमिकताओं और स्लीप/वेक व्यवहार के साथ एक GPU साझा कर सकते हैं। बड़े मॉडल कई GPU में फैल सकते हैं या वेट को CPU पर ऑफलोड कर सकते हैं, MoE परिवारों के लिए GPU एक्सपर्ट कैशिंग के साथ। विज़न और एम्बेडिंग समर्थन में समर्थित विज़न मॉडल के लिए छवियां/वीडियो और GPU या AVX-512 CPU पर EmbeddingGemma शामिल हैं। परिचालन सुविधाओं में API-की प्रमाणीकरण, स्वास्थ्य जांच, Prometheus मेट्रिक्स, अनुरोध लॉग और कैश आँकड़े शामिल हैं। मॉडल कवरेज प्रशिक्षण उदाहरण Qwen3 डेंस और MoE, Qwen3-VL, Qwen3.5/3.6 डेंस और MoE, Llama 3.1/3.2, MiniCPM5, Spark-X2.5, Gemma 4, Nemotron 3/Cascade 2, GPT-OSS, Laguna और LFM2/LFM2.5 को कवर करते हैं। सेवा Qwen3, Qwen3.5/3.6/3.8, Qwen3.8 Flash-Next, GLM-5.3-Flash, Llama, Gemma 3/4, LFM2/LFM2.5, MiniCPM5, Spark-X2.5 और EmbeddingGemma 300M को कवर करती है। README नोट करता है कि DeepSeek-V4, Flash-Next और GLM-5.3-Flash प्रशिक्षण परिभाषाओं में अभी भी स्थगित घटक हैं। वर्कफ़्लो एक सामान्य प्रवाह है: इंस्टॉल करें, `surogate serve` के साथ एक मॉडल सेवा करें, YAML कॉन्फ़िग के साथ `surogate sft` के माध्यम से एक एडेप्टर प्रशिक्षित करें, एडेप्टर को उसके बेस मॉडल में मर्ज करें, वैकल्पिक रूप से GGUF में क्वांटाइज़ करें, फिर परिणाम सेवा करें। एक सिंगल-GPU GRPO मोड समर्थित BF16 LoRA परिवारों के लिए साझा वेट के साथ सेवा और प्रशिक्षण को सह-स्थित कर सकता है। हार्डवेयर नोट प्रशिक्षण बिल्ड SM89+ (Ada, Hopper, समर्थित Blackwell) को लक्षित करते हैं। FP8 के लिए SM89+ आवश्यक है; मूल NVFP4 के लिए समर्थित Blackwell हार्डवेयर आवश्यक है। डिफ़ॉल्ट सेवा बिल्ड SM120a (RTX 50 श्रृंखला और RTX PRO Blackwell) को लक्षित करते हैं, SM89/Ada पोर्ट के साथ जो संकलित होता है लेकिन रनटाइम सत्यापन लंबित है। वितरित प्रशिक्षण NCCL का उपयोग करता है; CPU ऑफलोड के लिए पर्याप्त सिस्टम RAM आवश्यक है। README विशिष्ट हार्डवेयर और वर्कलोड पर Unsloth, vLLM और llama.cpp के खिलाफ प्रशिक्षण और सेवा थ्रूपुट की तुलना करने वाली बेंचमार्क तालिकाएँ प्रस्तुत करता है; ये प्रोजेक्ट के अपने माप हैं और इन्हें ऐसा ही माना जाना चाहिए।