सर्वरलेस LLM के लिए शीत प्रारंभ में कमी
min_workers=1), स्तरित लोडिंग (सर्वरलेसएलएलएम की एनवीएम→डीआरएएम→एचबीएम पाइपलाइन, 10-200x विलंबता में कमी), और लाइव माइग्रेशन जो कि केवी कैश (जीबी) के बजाय इनपुट टोकन (केबी) को स्थानांतरित करता है। मॉडल एक तल के रूप में 2-4s कोल्ड स्टार्ट प्रकाशित करता है; बेसटेन 5-10s डिफ़ॉल्ट, प्री-थर्मिंग के साथ उप-दूसरा। यह पाठ आपको पांच परतों को मापने, बजट करने और ढेर करने के लिए सिखाता है।Type: Learn
Languages: Python (stdlib, toy cold-start path simulator)
Prerequisites: Phase 17 · 02 (Inference Platform Economics), Phase 17 · 03 (GPU Autoscaling)
Time: ~60 minutes
सीखने के लक्ष्य
- शीत प्रारंभ में कमी के पांच परतों को सूचीबद्ध करें और प्रत्येक परत पर एक उपकरण या पैटर्न का नाम दें।
- 70B मॉडल के लिए कुल शीत प्रारंभ समय को (नोड प्रावधान) + (वेट डाउनलोड) + (वेट लोड HBM में) + (इंजन init) के योग के रूप में गणना करें।
- बताएं कि लाइव माइग्रेशन में इनपुट टोकन (KB) क्यों स्थानांतरित किए जाते हैं और KV कैश (GB) क्यों नहीं और दंड क्या है (पुनः गणना) ।
- वार्म-पूल ट्रेडऑफ का नाम दें (निष्क्रिय GPU के लिए भुगतान करें या ठंडे स्टार्ट पूंछ स्वीकार करें) और SLA सीमा जिस पर
min_workers > 0अनिवार्य हो जाता है।
समस्या
आपका सर्वरलेस LLM एंडपॉइंट रात भर शून्य तक बढ़ जाता है सुबह 8 बजे ट्रैफिक की बढ़त। पहला अनुरोध इंतजार करता है जबकिः
- कार्पेन्टर एक GPU नोड प्रदान करता हैः 45-60s.
- कंटेनर वजन के साथ 30 जीबी छवि खींचता हैः 120-300s.
- इंजन एचबीएम में भार भारः मॉडल आकार और भंडारण गति के आधार पर 45-120s।
- vLLM या TRT-LLM CUDA ग्राफ, KV कैश पूल, टोकनराइज़र को प्रारंभ करता हैः 10-30s।
कुलः 220-510s (लगभग 3-8 मिनट) एक टोकन वापस आने से पहले. आपका SLA 2s है. आप एक गर्म पूल भेज (min_workers=1) और समस्या गायब हो जाती है लगता है लेकिन अब आप एक निष्क्रिय GPU के लिए भुगतान करते हैं 24x7। अगर आपकी सेवा में 5 उत्पादों में से प्रत्येक एक गर्म प्रतिकृति के साथ है, तो यह 5 × 24 × 30 = 3,600 GPU-घंटे / महीने चाहे एक उपयोगकर्ता बुलाया या नहीं.
शीत प्रारंभ को कम करना यह है कि हमेशा-ऑन की लटेंसी के करीब आने के साथ सर्वरलेस अर्थव्यवस्था को कैसे बनाए रखा जाए।
अवधारणा
परत 1 पूर्व-बीज नोड छवियां (बॉटलेरोकेट)
AWS पर, Bottlerocket के दो-खंड वास्तुकला ओएस को डेटा से अलग करता है। अपने कंटेनर छवि के साथ डेटा मात्रा स्नैपशॉट पूर्व खींच लिया; अपने स्नैपशॉट आईडी का संदर्भ EC2NodeClass. नए नोड्स स्थानीय NVMe पर पहले से ही वजन के साथ बूट चरण 2 और भाग 3 गायब हो जाते हैं। कारपेन्टर के साथ मूल रूप से काम करता है। बड़े मॉडल के लिए सामान्य बचतः 2-4 मिनट प्रति ठंड स्टार्ट।
जीसीपी पर समकक्षः पूर्व-बक कंटेनर परतों के साथ कस्टम वीएम छवियां। Azure परः एक ही पैटर्न के साथ प्रबंधित डिस्क स्नैपशॉट।
परत 2 मॉडल स्ट्रीमिंग (Run:ai मॉडल स्ट्रीमर)
पहले अनुरोध का उत्तर देने से पहले पूरी फ़ाइल को लोड करने के बजाय, जीपीयू मेमोरी परत-पर-परत में स्ट्रीम वजन और प्रक्रिया शुरू करें जैसे ही पहला ट्रांसफार्मर ब्लॉक निवासी है। एनवीआईडीआईए रनःएआई मॉडल स्ट्रीमर vLLM 2026 में मूल रूप से जहाज करता है। एस 3, जीसीएस और स्थानीय एनवीएम के साथ काम करता है। बड़े मॉडल के लिए वजन-लोड समय को लगभग आधे में कम करता है।
परत 3 GPU स्मृति स्नैपशॉट (मोडल)
Modal पहले लोड के बाद GPU राज्य (वेट, CUDA ग्राफ, KV कैश क्षेत्र) का एक चेकपॉइंट लेता है। बाद में पुनः आरंभ करने की तुलना में 10 गुना तेजी से सीधे HBM में पुनः आरंभ होता है। यह "2 सेकंड में एक गर्म GPU को बूट करने" के लिए सबसे करीब है।
परत 4 गर्म पूल (min_workers=1)
सबसे सरल उपायः एक प्रतिकृति को हमेशा तैयार रखें। लागत एक GPU की घंटे दर 24x7 है। लघु मॉडल पर अंकगणित क्रूर है (आप भुगतान करते हैं $0.85-$1.50 / घंटा 30s ठंड शुरू से बचने के लिए) और बड़े लोगों के लिए दयालु (5 मिनट की ठंड शुरू से बचने के लिए $ 4 / घंटा का भुगतान करें) । SLA सीमा जहां गर्म पूल अनिवार्य हो जाते हैंः आमतौर पर 70B + मॉडल पर TTFT P99 < 60s।
परत 5 स्तरीय लोड (ServerlessLLM)
सर्वरलेसएलएलएम भंडारण को एक पदानुक्रम के रूप में मानता हैः एनवीएम (त्वरित लेकिन बड़ा), डीआरएएम (मध्यम लेकिन स्तरित), एचबीएम (छोटा लेकिन त्वरित) । वजन पहले से डीआरएएम में लोड किया जाता है; लोड-ऑन-डिमांड में एचबीएम में। पेपर ने ठंडे भारों पर 10-200 गुना विलंबता की कमी की रिपोर्ट की है।
परत 6 लाइव माइग्रेशन (बोनस पैटर्न)
जब एक नोड अनुपलब्ध हो जाता है (स्पॉट निकासी, नोड ड्रेन), पारंपरिक पैटर्न कोल्ड-स्टार्ट एक और प्रतिकृति और ड्रेन अनुरोध कतार है। लाइव माइग्रेशन इनपुट टोकन (किलोबाइट) को एक गंतव्य पर ले जाता है जिसमें मॉडल लोड हो गया है और गंतव्य पर KV कैश को पुनः गणना करता है। नेटवर्क पर GB के KV कैश को स्थानांतरित करने की तुलना में पुनः गणना सस्ती है। विखंडित तैनाती के लिए लागू।
गर्म पूल गणित
2s के P99 TTFT SLA के साथ सेवा के लिए, सवाल "गर्म पूल हाँ / नहीं" नहीं है, लेकिन "कई गर्म प्रतिकृति, और कौन से मार्ग उन्हें प्राप्त करते हैं।"
- उच्च मूल्य वाले इंटरैक्टिव पथ (लाइव चैट, वॉयस एजेंट):
min_workers=1-2. . - पृष्ठभूमि बैच पथ (रात में वर्गीकरण): स्केल-टू-शून्य स्वीकार्य, 5-10 मिनट की ठंड शुरू सहनशील।
- प्रीमियम स्तर:
min_workersप्रति किरायेदार विशेष क्षमता के साथ।
अनुकूलन से पहले मापें
एक ताजा नोड पर 70B मॉडल के लिए शीत प्रारंभ अवयव (चित्रात्मक):
| Phase | Time | Mitigation |
|---|---|---|
| Node provision | 50s | Bottlerocket + pre-seeded image, warm pool |
| Image pull | 180s | Pre-seeded data volume (eliminate) |
| Weights to HBM | 75s | Model streamer (halve); GPU snapshot (eliminate) |
| Engine init | 20s | Persistent CUDA graph cache |
| First forward | 3s | Min inherent latency |
| Total cold | 328s | |
| Total with mitigations | ~15s | 22x reduction |
संख्याओं को याद रखना चाहिए
- मोडल कोल्ड स्टार्टः 2-4 सेकंड (जीपीयू स्नैपशॉट के साथ) ।
- बेसटन डिफ़ॉल्ट कोल्ड स्टार्टः 5-10s; प्री-थ्रॉइंग के साथ उप-दूसरा।
- कच्चे 70 बी कोल्ड स्टार्टः 3-8 मिनट।
- रनःएआई मॉडल स्ट्रीमरः ~ 2x वजन लोड गति।
- सर्वरलेसLLM स्तरित लोडिंगः 10-200 गुना विलंबता में कमी (पेपर संख्याएं) ।
इसका प्रयोग करें
code/main.pyप्रत्येक कम करने के साथ और बिना एक शीत प्रारंभ पथ का मॉडल। यह कुल शीत प्रारंभ समय, वार्म पूल लागत और ब्रेक-ईव अनुरोध दर की रिपोर्ट करता है, जिसके ऊपर वार्म पूल खुद को भुगतान करता है।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-cold-start-planner.md. SLA, मॉडल आकार और यातायात के आकार को देखते हुए, यह चुनता है कि कौन से मिट्याग को ढेर करना है।
व्यायाम
- दौड़ें
code/main.py. SLO पर अतिरिक्त अनुरोध घटाने के माध्यम से शीत प्रारंभ कर का भुगतान करने की तुलना में गर्म प्रतिकृति के लिए सस्ती है, जो ब्रेक-ईव अनुरोध दर की गणना करें। - आप 3s के P99 TTFT SLA के साथ एक 13B मॉडल तैनात. न्यूनतम mitigation ढेर (कम से कम परतों) कि इसे प्राप्त करने के लिए चुनें.
- बोतल शॉट प्री-सेडिंग छवि खींच को समाप्त करता है लेकिन वजन अभी भी स्नैपशॉट से एचबीएम तक लोड होता है। 70 बी मॉडल के लिए वॉल-घड़ी की गणना करें यदि स्नैपशॉट-बैक एनवीएम 7 जीबी / सेकंड पर पढ़ता है।
- आपका सर्वरलेस प्रदाता GPU स्नैपशॉट (मोडल) प्रदान करता है और आपकी टीम "स्नैपशॉट पिएआई लीक" के कारण इनकार करती है। दोनों पक्षों का तर्क है वास्तविक जोखिम क्या है, और कम करने के लिए क्या है (अस्थायी स्नैपशॉट, एन्क्रिप्शन, नामस्थान अलगाव)?
- एक स्तरित वार्म पूल नीति बनाएंः भुगतान उपयोगकर्ताओं, परीक्षण उपयोगकर्ताओं और बैच वर्कलोड के लिए कितने गर्म प्रतिकृति? गणित दिखाएं।
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Cold start | "the big pause" | Time from request to first token on a fresh replica |
| Warm pool | "always-on minimum" | min_workers >= 1 to keep at least one replica ready |
| Pre-seeded image | "baked AMI" | Node image with container weights pre-resident |
| Bottlerocket | "AWS node OS" | AWS container-optimized OS with dual-volume snapshot support |
| Model streamer | "streaming load" | Overlap weights I/O with compute setup |
| GPU snapshot | "checkpoint to HBM" | Serialize post-load GPU state; deserialize on restart |
| Tiered loading | "NVMe + DRAM + HBM" | Hierarchy of storage tiers; load on demand |
| Live migration | "move tokens" | Transfer input (KB), recompute KV on destination |
min_workers | "warm replicas" | Serverless minimum keep-alive count |
| Scale-to-zero | "full serverless" | No cost when idle; accept full cold-start tax |
आगे पढ़ना
- Modal — Cold start performance मोडल के प्रकाशित बेंचमार्क और चेकपॉइंट आर्किटेक्चर।
- AWS Bottlerocket पूर्व-बुना डेटा मात्रा स्नैपशॉट पैटर्न।
- NVIDIA Run:ai Model Streamer गणना सेटअप के साथ ओवरलैप भार लोड।
- Baseten — Cold starts पूर्व-गर्म होने का खेल पुस्तिका।
- ServerlessLLM paper (USENIX OSDI'24) स्तरीय लोड डिजाइन।
- NVIDIA — Disaggregated LLM Inference on Kubernetes विखंडित तैनाती के लिए लाइव माइग्रेशन।
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.