کاهش شروع سرد برای LLM بدون سرور
min_workers=1), بارگذاری طبقه بندی شده (نویم→DRAM→HBM لوله سرورlessLLM، کاهش تاخیر 10-200x) و مهاجرت زنده که توکن های ورودی (KB) را به جای کیش KV (GB) حرکت می دهد. Modal 2-4s سرد را به عنوان یک طبقه منتشر می کند.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
اهداف یادگیری
- پنج لایه کاهش شروع سرد را ذکر کنید و در هر لایه یک ابزار یا الگوی را نام ببرید.
- زمان شروع سرد را به صورت مجموعی (مدد نوید) + (وزن دانلود) + (وزن بارگذاری به HBM) + (موتور آغاز) برای مدل 70B محاسبه کنید.
- توضیح دهید که چرا مهاجرت زنده توکن های ورودی (KB) را نه KV cache (GB) را انتقال می دهد و مجازات چیست (عکس بندی).
- نام معامله گرم (پای GPU بیکار یا قبول دم شروع سرد) و حد SLA را که در آن
min_workers > 0به عنوان یک قانون اجباری
مشکل
در ساعت 8 صبح، ترافیک بالا میره، اولین درخواست منتظر است تا:
- کارپنتر يک گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گپ گ
- ظرف یک تصویر 30 گیگابایت با وزن 120 تا 300 عدد را می کشد.
- موتور وزن ها را به HBM بار می زند: 45-120s بسته به اندازه مدل و سرعت ذخیره سازی.
- vLLM یا TRT-LLM نمودار CUDA را شروع می کند، ذخایر حافظه KV، توکن: 10-30s.
کل: 220-510 (تقریباً 3-8 دقیقه) قبل از اینکه یک توکن برگردد. SLA شما 2s است. شما یک حمام گرم (min_workers=1اگر سرویس شما دارای 5 محصول با یک نسخه گرم باشد، 5 × 24 × 30 = 3600 ساعت GPU در ماه، چه یک کاربر تماس گرفته باشد یا نه.
کاهش شروع سرد این است که چگونه اقتصاد بدون سرور را حفظ کنیم در حالی که تاخیر همیشه را نزدیک می کنیم.
مفهوم
لایه 1 تصاویر گره های پیش از زراعت (Bottlerocket)
در AWS، معماری دو حجم Bottlerocket OS را از داده ها جدا می کند. حجم داده را با تصویر کانتینر شما پیش از کشیدن به تصویر بگیرید.EC2NodeClass. گره های جدید با وزنه های موجود در NVMe محلی شروع می شوند مرحله 2 و بخشی از 3 ناپدید می شوند. با کارپنتر به صورت بومی کار می کند. پس انداز معمولی: 2-4 دقیقه در هر راه اندازی سرد برای مدل های بزرگ.
معادل در GCP: تصاویر VM سفارشی با لایه های کانتینر پیش پخته شده. در Azure: عکس های سریع دیسک مدیریت شده با الگوی مشابه.
لایه 2 مدل جریان (Run:ai Model Streamer)
به جای بارگذاری فایل کامل قبل از پاسخ به اولین درخواست، وزن ها را به لایه به لایه حافظه GPU جریان دهید و به محض اینکه اولین بلوک ترانسفورماتور مستقر شود پردازش را شروع کنید. NVIDIA Run:ai Model Streamer در vLLM 2026 بومی می شود. با S3 ، GCS و NVMe محلی کار می کند. زمان بار وزن را تقریباً در مدل های بزرگ با تعبیه I / O با تنظیمات محاسبات به نصف کاهش می دهد.
لایه 3 عکس های حافظه GPU (Modal)
Modal پس از بارگذاری اول نقطه چک حالت GPU را (وزن، نمودار CUDA، منطقه cache KV) می گیرد. بازخورد بعدی مستقیماً به HBM 10 برابر سریعتر از بازخورد. این نزدیک ترین چیز برای "بازخورد یک GPU گرم در 2 ثانیه" است.
لایه 4 استخر های گرم (min_workers=1)
ساده ترین کاهش: همیشه یک نسخه را آماده نگه دارید. هزینه یک GPU 24x7 است. حسابداری در مدل های کوچک وحشیانه است (شما پرداخت می کنید $0.85-$1.50/ساعت برای جلوگیری از شروع سرد 30s) و مهربان به بزرگ (در برابر 4 $ /ساعت برای جلوگیری از شروع سرد 5 دقیقه) . حد SLA که در آن استخر های گرم تبدیل به اجباری: به طور معمول TTFT P99 < 60s در مدل 70B +.
لایه 5 بارگذاری طبقه بندی شده (ServerlessLLM)
ServerlessLLM به عنوان یک سلسله مراتب ذخیره سازی: NVMe (سرعانه اما بزرگ) ، DRAM (متوسط اما طبقه بندی شده) ، HBM (مختصر اما فوری) برخورد می کند. وزن ها به DRAM از قبل بارگذاری می شوند؛ بارگذاری در مورد تقاضا به HBM. کاغذ گزارشات کاهش تاخیر 10-200x در بار سرد در مقایسه با دیسک ساده به HBM. پذیرش تولید زود است اما ادغام با vLLM وجود دارد.
لایه 6 مهاجرت زنده (نمونه پاداش)
هنگامی که یک گره در دسترس نیست (خروجی نقطه، تخلیه گره) ، الگوی سنتی شروع سرد یک نسخه دیگر و تخلیه صف درخواست است. مهاجرت زنده توکن های ورودی (کلو باایت) را به یک مقصد منتقل می کند که مدل بارگذاری شده است و حافظه کش KV را در مقصد دوباره محاسبه می کند. محاسبه مجدد ارزان تر از انتقال GB از حافظه کش KV بر روی شبکه است. قابل استفاده برای انتشار تجزیه شده است.
ریاضیات حومه گرم
برای یک سرویس با P99 TTFT SLA از 2s، سوال "بله گرم بله / نه" نیست بلکه "چقدر نسخه گرم و کدام مسیرها آنها را دریافت می کنند".
- مسیرهای تعاملی با ارزش بالا (چات زنده، نماینده صوتی):
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 |
شماره هایی که باید به یاد داشته باشی
- شروع سرد مودالی: ۲ تا ۴ ثانیه (با عکس های GPU).
- باستین افتراض سرد: ۵ تا ۱۰ ثانیه؛ زیر ثانیه با پیش گرم کردن.
- شروع سرد 70B خام: 3-8 دقیقه
- مدل Streamer: ~ 2x سرعت بار وزن
- بارگذاری درجه بندی ServerlessLLM: کاهش تاخیر 10-200 برابر (نمره کاغذ).
ازش استفاده کن
code/main.pyمدل مسیر شروع سرد با و بدون هر کاهش را گزارش می کند. کل زمان شروع سرد، هزینه حمام گرم و نرخ درخواست تعادل که بیش از آن حمام گرم برای خود پرداخت می کند.
-باده
این درس به ما کمک می کندoutputs/skill-cold-start-planner.mdبا توجه به SLA، اندازه مدل و شکل ترافیک، انتخاب کند که کدام کاهش دهنده ها را جمع آوری کند.
تمرینات
- فرار کن
code/main.py. نرخ درخواست بروک همبستگی را محاسبه کنید که بالاتر از آن یک نسخه گرم ارزان تر از پرداخت مالیات شروع سرد با کاهش درخواست اضافی در SLO است. - شما یک مدل 13B با P99 TTFT SLA از 3s استفاده کنید. حداقل تخفیف را انتخاب کنید که آن را به دست آورد.
- پیش بینی بوتل راکت باعث حذف کشش تصویر می شود اما وزن ها هنوز از عکس به HBM بار می شوند. ساعت دیواری را برای مدل 70B محاسبه کنید اگر NVMe پشتیبان از عکس در 7 GB / s خوانده شود.
- ارائه دهنده بدون سرور شما تصاویر فوری GPU (Modal) را ارائه می دهد و تیم شما از آن انکار می کند زیرا "تصاویر به طور مستقیم PII را از بین می برند".
- یک سیاست گرم استخر طبقه بندی شده طراحی کنید: چند نسخه گرم برای کاربران پرداخت شده، کاربران آزمایشی و بار کار دسته ای؟ ریاضیات را نشان دهید.
اصطلاحات کلیدی
| 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.