إنتاج خدمة كومة KV إزالة وتوجيه الاحتفاظ بالكاش
Type: Learn
Languages: Python (stdlib, toy KV-spill simulator)
Prerequisites: Phase 17 · 04 (Serving Engine Internals), Phase 17 · 06 (SGLang/RadixAttention)
Time: ~60 minutes
أهداف التعلم
- رسم مخططات سلسلة الإنتاج vLLM: الجهاز التوجيه، المحركات، KV خارج الحمل، قابلية الملاحظة.
- شرح API خيار إفراج KV (v0.9.0+) وكيف تخفي المسار غير متزامن 0.11.0 تأخير إفراج.
- تحديد مقدار مساعدة LMCache CPU-DRAM (KV > HBM) مقابل إضافة التكلفة العليا (KV صغيرة بما يكفي لتناسب HBM).
- اختر بين إزالة CPU vLLM الأصلي والاتصال LMCache نظراً لقيود التنفيذ.
المشكلة
يظهر خدمة vLLM الخاصة بك GPUs عند 100% HBM مع أحداث التمهيد كلما ارتفعت التزامن. يتم إخلاء الطلبات ، وتتسلل ، وتقوم بإعادة تعبئة نفس طلب 2K-token أربع مرات في الدقيقة. يتم إنفاق حساب GPU على تعبئة سابقة زائدة ؛ إنتاج جيد أقل بكثير من الإنتاج الخام.
إضافة المزيد من GPUs تكلفة خطيا. إضافة المزيد من HBM غير ممكن. ولكن CPU DRAM رخيص مصدر واحد لديه 512 GB + في ترتيبات تأخر من الحجم أسوأ من HBM ولكن جيد ل "دفئة مؤقتة" KV cache.
يقوم LMCache بإستخراج الاحتفاظ الكهربائي KV إلى CPU DRAM بحيث تتعافى الطلبات المسبقة بسرعة، وتشارك المشاركات المتكررة عبر المحركات الاحتفاظ الكهربائي دون إعادة ملء كل محرك.
المفهوم
مجموعة إنتاج vLLM
github.com/vllm-project/production-stackهو إشارة نشر Kubernetes:
- Router الوعي بالخزنة (مرحلة 17 · 11).
- Enginesعمال vLLM واحد لكل GPU أو لكل مجموعة TP/PP
- KV cache offload نشر LMCache أو رابط محلي.
- Observability خريش Prometheus، لوحات غرافانا، أثر OTel.
- Control plane اكتشاف الخدمات، التكوين، تحديثات التداول.
تم شحنها كعميل "الخوذة"
API خادم إفراج KV (v0.9.0+)
vLLM 0.9.0 قدمت API Connector للخلفيات القابلة للدخول في cache KV. يقوم محركك بتحميل الكتل إلى الصلة؛ يقوم الصلة بتخزينها (RAM، القرص، تخزين الأشياء، LMCache). يتطلب الطلب كتلة، ويحملها الصلة مرة أخرى.
vLLM 0.11.0 (يناير 2026) يضيف مسار إزالة التزامن يمكن أن يحدث الإزالة في الخلفية بحيث لا يحتجز المحرك في الحالة العادية. لا يزال تأخر النهاية إلى النهاية والمدخل يعتمدون على شكل عبء العمل ومعدل ضربات cache KV وضغط النظام؛ وتذكرات vLLM الخاصة أن إزالة الأساس المخصص يمكن أن يضعف المدخل بمعدلات ضربات منخفضة وأن جدولة التزامن لديها مشاكل تفاعلية مع التشفير المضاربة.
التحميل المحلي للمعالج ضد LMCache
Native vLLM CPU offloadالمحرك المحلي: تخزين كتلة KV في ذاكرة الذكاء المضيف سريعة التنفيذ، صفر قفزة الشبكة. لا تتقاطع المحركات.
LMCache connector: على نطاق الكلاستر. تخزين الكتل في خادم LMCache مشترك (CPU DRAM + Ceph / S3 tier). الكتل يمكن الوصول إليها من قبل أي محرك. نشر 16x H100 مقارنات.
اختر الأصلي عندما يكون لدى محرك واحد ضغط HBM. اختر LMCache عندما تتشارك محركات متعددة المواعيد المسبقة (RAG مع طلبات النظام المشتركة ، متعددة المستأجرين مع نماذج مشتركة).
سلوك المرجعية
اختبار 16x H100 (80 GB HBM) ينتشر على 4 a3-highgpu-4g:
- انخفاض مستوى KV (تطلبات قصيرة، تنزيل متزامن): جميع التكوينات تتطابق مع خط الأساس، LMCache يضيف ~ 3-5% من التكلفة العامة.
- التركيز المتوسط: LMCache يبدأ في المساعدة في إعادة استخدام المواضيع عبر المحركات.
- KV يتجاوز HBM: إزالة CPU الأصلية و LMCache تحسن كل منهما التوصيل بشكل كبير. LMCache الحصول على مكاسب أكبر بسبب مشاركة عبر المحرك.
عندما يكون LMCache حاسم
- خدمة متعددة المستأجرين حيث يتم مشاركة طلبات النظام بين المستأجرين.
- RAG حيث تكرر قطع الوثائق عبر الاستفسارات.
- الإصدارات المعدلة بشكل جيد (LoRA) على نفس القاعدة حيث يقلل إعادة استخدام KV النموذج الأساسي من العمل الإفاضلي.
- تحميلات عمل ثقيلة: استعادة من CPU أرخص من إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إ إ إ إ إعادة إ إعادة إعادة إ إعادة إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إعادة إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ
عندما لا يتمكن من تفعيل
- ضغط HBM صغير تدفع الرسوم العليا دون فوائد.
- السياقات القصيرة (< 1K رموز) وقت النقل > إعادة التميز.
- - مستأجر واحد - عبء عمل واحد - لا إعادة استخدام للاستكشاف
التكامل مع الخدمة المجزئة
المرحلة 17 · 17 المشاركة المفصلة + مركبات LMCache: نقل KV من حوض التعبئة المسبق إلى تشفير أرض حوض المجمعات في LMCache إذا لم يتم استخدامها ؛ استجوابات لاحقة تنسحب من LMCache. مرحلة 17 · 11 جهاز توجيه الجهاز الوعي بالخزنة يمكن توجيهه إلى المحرك الذي يطابق محلي OR LMCache-شارك الخزنة.
أرقام يجب أن تتذكر
- vLLM 0.9.0: وصل API شحن.
- vLLM 0.11.0 (كانون الثاني 2026): مسار التخفيض غير المزامن؛ تأثير التأخير من نهاية إلى نهاية يعتمد على عبء العمل، وتيرة ضرب KV، وضغط النظام (ليس ضمانا مطلقا).
- مقياس 16x H100: LMCache يساعد عندما تتجاوز آثار KV HBM.
- ضغط HBM صغير: 3-5% من التكلفة العليا دون فائدة.
استخدمها
code/main.pyيحاكي عبء عمل ثقيل من قبل مع ودون LMCache. يذكر إعادة ملء تجنب، زيادة التكامل، واستخدام HBM المكافئة.
أرسله
هذا الدرس يُنتجoutputs/skill-vllm-stack-decider.mdنظراً لشكل عبء العمل ونشر vLLM، يقرر natives vs LMCache vs neither.
التمارين
- أركض
code/main.pyفي أي استخدام من الـ HBM يبدأ LMCache في الدفع؟ - يشارك المستأجر نظام 6K-token على 200 استفسار / ساعة. حساب التوفيرات المتوقعة LMCache لكل مستأجر.
- خادم LMCache هو نقطة واحدة من الفشل. تصميم استراتيجية HA (الردود، والعودة إلى الأصلي).
- لـ LMCache تخزن إلى Ceph على القرص المتحول. لـ 4K-token KV عند 70B FP8 (500 MB) ، ما هو وقت القراءة مقابل إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إ إ إ إعادة إ إ إعادة إ إعادة إعادة إ إ إ إ إ إ إ إ إ إ إ إ إ إ إعادة إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ
- هل يمكن أن نقول إن كانت المسار غير متزامن vLLM 0.11.0 "حرة" أين تختبئ الرأس العلوي؟
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Production-stack | "the reference deployment" | vLLM's Kubernetes Helm chart + operator |
| Connector API | "KV backend interface" | vLLM 0.9.0+ pluggable KV store interface |
| Native CPU offload | "engine-local spill" | Store KV in host RAM of same engine |
| LMCache | "cluster KV cache" | Cross-engine KV cache server on CPU DRAM + disk |
| 0.11.0 async | "non-blocking offload" | Offload hidden behind engine stream |
| Preemption | "evict to make room" | KV cache shuffle when HBM full |
| Prefix reuse | "same system prompt" | Multiple queries share beginning; cache hit |
| Ceph tier | "disk tier" | Durable storage below DRAM in the cache hierarchy |
المزيد من القراءة
- vLLM Blog — KV Offloading Connector (Jan 2026)
- vLLM Production Stack GitHub مخطط القوذ + عامل
- LMCache for Enterprise-Scale LLM Inference (arXiv:2510.09665)
- LMCache GitHub تنفيذ المتصل.
- vLLM 0.11.0 release notes تفاصيل المسار غير المزمنة.
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.