عن المشروع

OrbitKV هي طبقة تخزين مؤقت خارجية لمفاتيح القيم لمحركات استدلال النماذج اللغوية الكبيرة. توسّع ذاكرة KV المؤقتة في vLLM وSGLang إلى ما هو أبعد من ذاكرة GPU: تُحفظ البادئات القابلة لإعادة الاستخدام في DRAM وSSD، ثم تُستعاد عند وصول طلب مطابق. حالات الاستخدام المعلنة هي أحمال العمل ذات المستندات المتكررة، والمطالبات النظامية المشتركة، والمحادثات الطويلة التي لم تعد بادئاتها تتسع في ذاكرة GPU المؤقتة للمحرك. نموذج النشر يعمل Cache Manager مستقل لكل مضيف، وتتصل المحركات على ذلك المضيف بذاكرته المؤقتة المشتركة. تحتفظ المحركات بملكية ذاكرة GPU والجدولة؛ وتدير OrbitKV النسخ الخارجية وعمليات النقل. يُوصف مسار العقدة الواحدة بأنه مُختبر على GPU مع vLLM 0.29.0 وSGLang 0.5.20. ويُصنَّف مشاركة الذاكرة المؤقتة متعددة العقد بأنها تجريبية، وقد تتغير الواجهات قبل الإصدار 1.0. القدرات الرئيسية - التخزين المؤقت في DRAM وSSD: يمكن إعادة استخدام البادئات بعد الإخلاء من GPU أو إعادة تشغيل المحرك ما دام Cache Manager يعمل. - سياسات إعادة استخدام اختيارية: يمكن لمكوّن Rust حماية الصفحات المعاد استخدامها ضمن حد بايتات وقبول كتابات SSD بشكل انتقائي؛ وتشير الوثائق إلى مقايضة إعادة الاستخدام البارد. - نقل مباشر عبر GPU: يسجّل كلا المحركين مخازن GPU المؤقتة عبر CUDA IPC؛ وتُسيّج المحوّلات تدفق CUDA المنتِج، ويتولى Rust استعلامات الذاكرة المؤقتة والقراءات وإكمال النقل. - استعادة واعية بالنموذج: تشمل هوية الذاكرة المؤقتة مخرجات النموذج وإعدادات الحساب وتخطيط التخزين. تختار قواعد الاستعادة المُجمَّعة صفحات الانتباه والنوافذ المنزلقة ونقاط التحقق المتكررة/الالتفافية، بما في ذلك التخطيطات التي تجمع الثلاثة. - استخدام موارد محدود: تغطي ميزانيات البايتات القراءات المعلّقة والصفحات الجاهزة وعمليات نقل GPU النشطة؛ ويحتفظ الإلغاء بعمليات الإدخال/الإخراج المُرسَلة حتى اكتمالها. - قابلية المراقبة: مقاييس Prometheus وجداول زمنية اختيارية للطلبات، مع أوامر إعادة إنتاج للقياسات المنشورة. - ذاكرة مؤقتة مشتركة تجريبية: تحدد أجزاء الكتالوج المدمجة مواقع النسخ النظيرة، وينقل Mooncake Transfer Engine البايتات، ويتتبع etcd عضوية العنقود. مخطط البدء السريع يُبنى ويُثبَّت ملف wheel لكل إصدار Python وبيئة تشغيل CUDA، مع بيئات منفصلة لـ vLLM وSGLang. يتضمن ملف wheel مكتبات Cache Manager وMooncake؛ كما يتطلب Manager إصدار PyTorch متوافقًا. يُوصف أول إصدار Python بأنه قيد الإعداد، لذا ينبغي التحقق من حالة نشر الحزمة في وثائق الإصدار. يُشغَّل Cache Manager بأمر مثل `orbitkv-cache-manager --addr 127.0.0.1:50055 --http-addr 127.0.0.1:9091 --pool-size 8gb`. ثم يُشغَّل vLLM مع تمكين التخزين المؤقت للبادئات وإعداد نقل KV يسمّي وحدة موصل OrbitKV؛ ويُشغَّل SGLang بمتغير بيئة نقطة نهاية OrbitKV، وحجم صفحة، وخيارات الواجهة الخارجية وخلفية ذاكرة radix المؤقتة. يُفعَّل التخزين المؤقت في SSD بإضافة `--ssd-cache-path` و`--ssd-cache-capacity` إلى أمر Manager؛ وتُعاد إنشاء ذاكرة SSD المؤقتة عند إعادة تشغيل Manager. تحاول خلفية SSD الافتراضية استخدام cuFile الأصلي على نقاط التركيب المدعومة وتتراجع إلى io_uring. يختار تجاوز `--ssd-read-path uring|cufile` مسار الاستعادة عند الطلب بشكل مستقل عن التمثيل المخزَّن. تشمل خيارات ترميز التخزين ضغط nvCOMP ANS بلا فقدان، وFP8، وTurboQuant بـ3/4 بت، وتُختار عبر `--storage-codec`؛ الافتراضي هو التخزين الدقيق، وتتطلب الأوضاع الفاقدة تأهيل جودة النموذج. ويُعطى ارتفاع مقياس `orbitkv_load_bytes_total` كتأكيد على استعادة خارجية. البنية والحالة يحدد محوّل المحرك الحالة المفقودة ويوفر وجهات GPU؛ وتختار OrbitKV النطاقات المخزَّنة المتوافقة، وتقرأها من الطبقات المُهيَّأة، وتحتفظ بملكية الصفحة حتى انتهاء نسخ GPU. ويُنشر KV المحسوب حديثًا لإعادة استخدامه لاحقًا. تخدم واجهة المحوّل نفسها DRAM وSSD وعمليات الجلب البعيدة التجريبية، مع التموضع الفيزيائي داخل Cache Manager. توثّق الوثائق خطة تنفيذ تربط آليات LMCache وFlexKV وMooncake المثبَّتة بأعمال النشر والتحقق. تُوصف ملاحظات تكلفة Rust المحدودة وتنبؤات النسخ الظلية ومسارات قراءة SSD المستقلة بأنها منفَّذة؛ ويبقى الاختيار الديناميكي للتكلفة مخططًا له، والملاحظات معطّلة افتراضيًا. ويُدرج تحويل البايتات بين المحركات، وتوافر كتالوج الإنتاج العالي، وتوجيه الطلبات الواعي بـKV ضمن الأعمال المخطط لها. وثائق الأداء يُذكر أن الأداء يعتمد على إعادة استخدام البادئات، وسعة الذاكرة المؤقتة، والتخزين، وجدولة المحرك. تغطي التقارير مقارنات العقدة الواحدة (HBM الأصلي، وذاكرات CPU المؤقتة للمحرك، وOrbitKV، وLMCache، وFlexKV)، واستعادة SSD، والاستعادة العادية مع قراءات مضيف Qwen3-8B وعمليات نقل GPU، وتحضير الطلبات، وتأهيل الذاكرة المؤقتة المشتركة. تحضير الطلبات معطّل افتراضيًا: تحسّن عناصر التحكم الموثقة لـQwen3-8B الإنتاجية في كلا المحركين، لكن زمن الاستجابة P95 في SGLang يتراجع، ولا تُقدَّم قياسات H20 الواحدة كميزة عالمية على الذاكرات المؤقتة الأخرى. توجد شيفرة القياس والتلخيصات في دليل `benches/`. الترخيص والمساهمة OrbitKV مرخّص بموجب Apache-2.0. تغطي الوثائق التثبيت، وإعداد المحوّل، وخيارات Manager، والمقاييس، وتأهيل الأعطال، وأنماط النشر، ودليل المساهمين، وتفاصيل حزمة Python، وبوابات الاختبار والإصدارات. ويُتوقع أن تتضمن المساهمات فحوصات ذات صلة وتغييرات في الوثائق.