BigBertha ist ein Architekturentwurf, der zeigt, wie automatisierte LLMOps (Large Language Models Operations) auf jedem Kubernetes-Cluster mithilfe von Open-Source-Container-native-Technologien erreicht werden können?
? BigBertha nutzt Prometheus zur Überwachung von LLM-Bereitstellungsmodulen (Large Language Model). Zu Demozwecken wird eine Streamlit-App zur Bereitstellung des LLM verwendet, aus der Prometheus Metriken extrahiert. Es werden Warnungen eingerichtet, um Leistungseinbußen zu erkennen.
Prometheus löst Warnungen aus, wenn die Modellleistung nachlässt. Diese Warnungen werden von AlertManager verwaltet, der mithilfe von Argo Events eine Neutrainingspipeline zur Feinabstimmung des Modells auslöst.
?️ Die Umschulungspipeline wird mithilfe von Argo Workflows orchestriert. Diese Pipeline kann so angepasst werden, dass sie LLM-spezifische Umschulungen, Feinabstimmungen und Metrikverfolgungen durchführt. MLflow wird zur Protokollierung des neu trainierten LLM verwendet.
MinIO wird zur unstrukturierten Datenspeicherung verwendet. Argo Events ist so eingerichtet, dass es auf MinIO auf Upload-Ereignisse wartet und einen Vektoraufnahme-Workflow auslöst, wenn neue Daten hochgeladen werden.
? Argo Workflows wird zum Ausführen einer Vektoraufnahmepipeline verwendet, die LlamaIndex zum Generieren und Aufnehmen von Vektoren verwendet. Diese Vektoren werden in Milvus gespeichert, das als Wissensbasis für die abrufgestützte Generierung dient.
BigBertha setzt auf mehrere Schlüsselkomponenten:
ArgoCD: Ein Kubernetes-natives Continuous-Delivery-Tool, das alle Komponenten im BigBertha-Stack verwaltet.
Argo Workflows: Eine Kubernetes-native Workflow-Engine, die zum Ausführen von Pipelines zur Vektoraufnahme und Modellumschulung verwendet wird.
Argo Events: Ein Kubernetes-nativer ereignisbasierter Abhängigkeitsmanager, der verschiedene Anwendungen und Komponenten verbindet und ereignisbasierte Workflows auslöst.
Prometheus + AlertManager: Wird zur Überwachung und Warnung im Zusammenhang mit der Modellleistung verwendet.
LlamaIndex: Ein Framework zum Verbinden von LLMs und Datenquellen, das für die Datenaufnahme und -indizierung verwendet wird.
Milvus: Eine Kubernetes-native Vektordatenbank zum Speichern und Abfragen von Vektoren.
MinIO: Ein Open-Source-Objektspeichersystem zur Speicherung unstrukturierter Daten.
MLflow: Eine Open-Source-Plattform zur Verwaltung des maschinellen Lernlebenszyklus, einschließlich Experimentverfolgung und Modellverwaltung.
Kubernetes: Die Container-Orchestrierungsplattform, die die Bereitstellung, Skalierung und Verwaltung von Containeranwendungen automatisiert.
Docker-Container: Docker-Container werden zum konsistenten und reproduzierbaren Verpacken und Ausführen von Anwendungen verwendet.
Als Demonstration enthält BigBertha einen Streamlit-basierten Chatbot, der ein quantisiertes Chatbot-Modell Llama2 7B bedient. Zur Offenlegung von Metriken wird eine einfache Flask-App verwendet, und Redis fungiert als Vermittler zwischen Streamlit- und Flask-Prozessen.
Dieses Projekt ist Open Source und unterliegt den Geschäftsbedingungen, die in der in diesem Repository enthaltenen LIZENZdatei dargelegt sind.