Phase 17: Infrastructure & Production

تخفيف البدء البارد لبرامج القانون العلمي بدون خادم

تصورة نموذج 20 جيجابايت تستغرق 5-10 دقيقة (7 بي) إلى 20+ دقيقة (70 بي) للذهاب من البرد إلى الخدمة. في عالم حقيقي بدون خادم، هذا ليس إثارة، إنه انقطاع. تعمل التخفيفات في خمس طبقات: صور العقد المسبقة (Bottlerocket على AWS ، قوس حجم مزدوج) ، وتدفق النموذج (NVIDIA Run:ai Model Streamer ، الأصلي في vLLM) ، صور سريعة في ذاكرة GPU (مواقع التفتيش المودالية ، تغيير تشغيل أسرع بنحو 10 مرات) ، ومجمعات دافئة (min_workers=1), تحميل مستويات (أنابيب NVMe→DRAM→HBM من ServerlessLLM ، خفض التأخير 10-200x) ، والهجرة الحية التي تحرك رموز المدخل (KB) بدلا من كاش KV (GB). ينشر Modal 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

أهداف التعلم

  • قم بإدراج الطبقات الخمس للتخفيف من بدء البرد وسمي أداة أو نمط في كل طبقة.
  • احسب الوقت الإجمالي للبدء البارد كجمع (إمدادات العقدة) + (وزن التنزيل) + (وزن الحمل إلى HBM) + (بدء المحرك) لنموذج 70B.
  • شرح لماذا تحويل الهجرة الحية توكنات المدخلات (KB) وليس KV cache (GB) وما هي العقوبة (إعادة الحساب).
  • أسمائ التداول في حوض الاستحمام الحر (دفع مقابل جهاز التشغيل المضغوط أو تقبل ذيل البدء البارد) والعتبة SLA التي min_workers > 0يصبح إلزاميًا.

المشكلة

إنّ محاميكِ بدون خادم يصلون إلى الصفر خلال الليل، في الثامنة صباحاً، تُصعد حركة المرور، ويتوقع الطلب الأول:

  1. كاربينتر يقدم عقدة GPU: 45-60s.
  2. الحاوية تسحب صورة 30 جيجا غابايت مع الوزن: 120-300s.
  3. يحمل المحرك الوزن إلى HBM: 45-120s اعتمادا على حجم النموذج وسرعة التخزين.
  4. vLLM أو TRT-LLM يبدأ الرسوم البيانية CUDA، مجموعة cache KV، tokenizer: 10-30s.

إجمالي: 220-510s (حوالي 3-8 دقائق) قبل عودة رمز واحد. SLA الخاص بك هو 2s. أنت شحن حمام دافئ (min_workers=1و يبدو أن المشكلة تختفي ولكن الآن تدفع مقابل GPU واحدة عديمة الفائدة 24x7. إذا كان لديك الخدمة 5 منتجات كل منها مع نسخة واحدة دافئة، وهذا هو 5 × 24 × 30 = 3600 ساعة GPU / شهر سواء كان مستخدم واحد أو لا.

التخفيف من بدء البرد هو كيفية الحفاظ على اقتصاد الخادم بدون تقريب تأخير دائما على.

المفهوم

الطبقة 1 صور العقدة المسبقة (Bottlerocket)

على AWS، تقوم بنية Bottlerocket ذات حجم مزدوج بتفصل نظام التشغيل عن البيانات. صور حجم البيانات مع صورة الحاوية الخاصة بك مسبقاً. راجع معرف الصورة الفورية في جهازك EC2NodeClass. تعبئة العقد الجديدة مع الأوزان بالفعل على NVMe المحلية الخطوة 2 و جزء من 3 تختفي. يعمل مع Karpenter بشكل أصلي. توفير نموذجي: 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)

يقوم مودال بتفتيش حالة GPU (الوزن، الرسوم البيانية CUDA، منطقة cache KV) بعد الحمل الأول. تقوم عمليات إعادة تشغيل لاحقة بتحطيم المعلومات مباشرة إلى HBM 10x أسرع من إعادة تشغيل. هذا هو أقرب شيء لـ "تشغيل GPU دافئة في ثواني". التجارة: الصور الفورية هي لكل topology GPU، لذلك إذا قام Karpenter بتحريركك إلى SKU مختلف، تقوم بإعادة التفتيش.

الطبقة 4 حمامات دافئة (مئات العمال = 1)

أبسط التخفيف: إبقاء نسخة واحدة جاهزة دائما. التكلفة هي معدل ساعة واحد من GPU 24x7.$0.85-$1.50/ساعة لتجنب بدء بارد في 30s) ومهينة إلى الكبيرة (دفع 4 دولار / ساعة لتجنب بدء بارد في 5 دقائق). عتبة SLA حيث تصبح المسبحات الدافئة إلزامية: عادة TTFT P99 < 60s على نموذج 70B +.

الطبقة 5 التحميل المتعدد المستويات (LLM بدون خادم)

تعامل ServerlessLLM مع التخزين على أنه سلسة التسلسل: NVMe (سرعة ولكن كبيرة) ، DRAM (متوسطة ولكن مستوى) ، HBM (صغيرة ولكن فورية). يتم تحميل الوزن مسبقا إلى DRAM؛ تحميل على الطلب إلى HBM. تقارير ورقة تقرير 10-200x خفض التأخير على الأحمال الباردة مقابل البراغية القرص إلى HBM. تبني الإنتاج مبكر ولكن التكاملات مع vLLM موجودة.

الطبقة 6 الهجرة الحية (نمط مكافأة)

عندما تصبح العقدة غير متوفرة (إزالة النقاط ، تنفذ العقدة) ، فإن النمط التقليدي هو بدء نسخة أخرى باردة وتصفيف صف طلب. الهجرة الحية تنتقل رموز المدخل (كيلوبايت) إلى وجهة يتم تحميل النموذج وتقوم بإعادة حساب cache KV على وجهة النظر. تعد الحسابات الأخرى أرخص من نقل GB من cache KV عبر الشبكة. تطبق على التنفيذات المفصلة.

الرياضيات الحرارية

بالنسبة للخدمة مع P99 TTFT SLA من 2s، السؤال ليس "حوض دافئ نعم / لا" ولكن "كم نسخ دافئة، والمسارات التي تحصل عليها".

  • مسارات تفاعلية ذات قيمة عالية (الرداد المباشر، وكيل الصوت): min_workers=1-2. . .
  • مسارات البطاقات الخلفية (تصنيف ليلي): المقبولة من مقياس إلى الصفر، يمكن تحمل البدء البارد لمدة 5-10 دقائق.
  • مستوى المكافأة: min_workersلكل مستأجر لديه قدرة مخصصة.

القياس قبل التحسين

تشريح البدء البارد لنموذج 70B على عقدة جديدة (موضحية):

PhaseTimeMitigation
Node provision50sBottlerocket + pre-seeded image, warm pool
Image pull180sPre-seeded data volume (eliminate)
Weights to HBM75sModel streamer (halve); GPU snapshot (eliminate)
Engine init20sPersistent CUDA graph cache
First forward3sMin inherent latency
Total cold328s
Total with mitigations~15s22x reduction

أرقام يجب أن تتذكر

  • بدء البرد المتدري: 2-4 ثانية (مع صور GPU).
  • الباسيتين افتراضي البرد: 5 إلى 10 ثانية؛ ثانوية دون التدفئة المسبقة.
  • البداية الباردة 70B الخام: 3-8 دقائق.
  • أداء: أيزم: 2x زيادة في الوزن
  • تحميل مستويات غير خادم: 10-200x تخفيض تأخر (أرقام ورقة).

استخدمها

code/main.pyيُظهر مسار بدء البرد مع كل تخفيف وبدون ذلك. يُذكر إجمالي وقت بدء البرد، وتكلفة المسبح الحر، ومعدل طلبات التكامل الذي يزيد عن المسبح الحر على نفسه.

أرسله

هذا الدرس يُنتجoutputs/skill-cold-start-planner.md. بالنظر إلى SLA، حجم النموذج، وشكل حركة المرور، يختار ما التخفيفات التي يجب أن تتراكم.

التمارين

  1. أركضcode/main.py- حساب معدل طلبات التكامل فوقها نسخة دافئة أرخص من دفع ضريبة البدء الباردة عن طريق انخفاض طلبات إضافية في SLO.
  2. تقوم بتنفيذ نموذج 13B مع P99 TTFT SLA من 3s. اختر الحد الأدنى من مكافحة (أقل طبقات) التي تحقق ذلك.
  3. يزيل التزاوج المسبق لقطة الزجاجات التقطير الصورة ولكن الأوزان لا تزال تحميل من اللقطة إلى HBM. احسب ساعة الجدار لنموذج 70B إذا كانت NVMe المدعومة لقطة الفور تقرأ عند 7 جيجابايت / ثانية.
  4. يقدم مزودك بدون خادم لقطات اللقطات GPU (مودال) ويمنع فريقك لأن "التقطات اللقطة تسرب PII".
  5. صمم سياسة حرارة المسبح المرتبة: كم عدد النسخ الدافئة للمستخدمين المدفوعين، والمستخدمين التجريبية، والحملات المكونة من العمل؟

الشروط الرئيسية

TermWhat people sayWhat 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

المزيد من القراءة

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.