BigBertha هو تصميم معماري يوضح كيف يمكن تحقيق LLMOps (عمليات نماذج اللغة الكبيرة) الآلية على أي مجموعة Kubernetes باستخدام تقنيات الحاوية مفتوحة المصدر الأصلية؟
؟ تستخدم BigBertha Prometheus لمراقبة وحدات الخدمة LLM (نموذج اللغة الكبيرة). لأغراض العرض التوضيحي، يتم استخدام تطبيق Streamlit لخدمة LLM، ويستخرج Prometheus المقاييس منه. يتم إعداد التنبيهات للكشف عن تدهور الأداء.
يطلق بروميثيوس تنبيهات عندما يتدهور أداء النموذج. تتم إدارة هذه التنبيهات بواسطة AlertManager، الذي يستخدم Argo Events لتشغيل مسار إعادة التدريب لتحسين النموذج.
️ يتم تنسيق خط أنابيب إعادة التدريب باستخدام Argo Workflows. يمكن تصميم خط الأنابيب هذا لإجراء إعادة التدريب والضبط الدقيق وتتبع المقاييس الخاصة بـ LLM. يتم استخدام MLflow لتسجيل LLM المعاد تدريبه.
يتم استخدام MinIO لتخزين البيانات غير المنظمة. تم إعداد Argo Events للاستماع إلى أحداث التحميل على MinIO، مما يؤدي إلى تشغيل سير عمل استيعاب المتجهات عند تحميل بيانات جديدة.
؟ يتم استخدام Argo Workflows لتشغيل خط أنابيب استيعاب المتجهات الذي يستخدم LlamaIndex لإنشاء المتجهات واستيعابها. يتم تخزين هذه المتجهات في Milvus، الذي يعمل كقاعدة معرفية للتوليد المعزز للاسترجاع.
تعتمد BigBertha على عدة مكونات رئيسية:
ArgoCD: أداة توصيل مستمر أصلية من Kubernetes تدير جميع المكونات في مكدس BigBertha.
سير عمل Argo: محرك سير عمل أصلي في Kubernetes يُستخدم لتشغيل استيعاب المتجهات وخطوط أنابيب إعادة تدريب النماذج.
أحداث Argo: مدير التبعية المستند إلى الأحداث الأصلي في Kubernetes والذي يربط بين التطبيقات والمكونات المختلفة، مما يؤدي إلى تشغيل سير العمل بناءً على الأحداث.
Prometheus + AlertManager: يستخدم للمراقبة والتنبيه المتعلق بأداء النموذج.
LlamaIndex: إطار عمل لربط LLMs ومصادر البيانات، ويستخدم لاستيعاب البيانات وفهرستها.
Milvus: قاعدة بيانات متجهة أصلية من Kubernetes لتخزين المتجهات والاستعلام عنها.
MinIO: نظام تخزين كائنات مفتوح المصدر يستخدم لتخزين البيانات غير المنظمة.
MLflow: منصة مفتوحة المصدر لإدارة دورة حياة التعلم الآلي، بما في ذلك تتبع التجارب وإدارة النماذج.
Kubernetes: النظام الأساسي لتنسيق الحاويات الذي يعمل على أتمتة نشر التطبيقات الموجودة في حاويات وتوسيع نطاقها وإدارتها.
حاويات Docker: تُستخدم حاويات Docker لتعبئة التطبيقات وتشغيلها بطريقة متسقة وقابلة للتكرار.
كعرض توضيحي، تتضمن BigBertha روبوت محادثة قائم على Streamlit يخدم نموذج روبوت الدردشة الكمي Llama2 7B. يتم استخدام تطبيق Flask البسيط لعرض المقاييس، ويعمل Redis كوسيط بين عمليات Streamlit وFlask.
هذا المشروع مفتوح المصدر ويخضع للشروط والأحكام الموضحة في ملف الترخيص المتضمن في هذا المستودع.