Coder Social home page Coder Social logo

aishwaryaprabhat / bigbertha Goto Github PK

View Code? Open in Web Editor NEW
20.0 1.0 3.0 7.34 MB

BigBertha is an architecture design that demonstrates how automated LLMOps (Large Language Models Operations) can be achieved on any Kubernetes cluster using open source container-native technologies ๐ŸŒŸ

License: Apache License 2.0

Dockerfile 5.17% Python 59.66% Shell 35.17%
argocd argoevents argoworkflow containers genai kubernetes llamaindex llmops milvus minio

bigbertha's Introduction

BigBertha: A Kubernetes native LLMOps Architecture Design

BigBertha

BigBertha is an architecture design that demonstrates how automated LLMOps (Large Language Models Operations) can be achieved on any Kubernetes cluster using open source container-native technologies ๐ŸŒŸ

Architecture

Architecture

LLMOps Capabilities ๐Ÿš€

1. LLM Monitoring

๐Ÿ‘€ BigBertha utilizes Prometheus to monitor LLM (Large Language Model) serving modules. For demo purposes, a Streamlit app is used to serve the LLM, and Prometheus scrapes metrics from it. Alerts are set up to detect performance degradation.

2. Auto-triggering LLM Retraining/Fine-tuning

โš™๏ธ Prometheus triggers alerts when the model performance degrades. These alerts are managed by AlertManager, which uses Argo Events to trigger a retraining pipeline to fine-tune the model.

3. Training, Evaluating, and Logging the Retrained LLM

๐Ÿ‹๏ธ The retraining pipeline is orchestrated using Argo Workflows. This pipeline can be tailored to perform LLM-specific retraining, fine-tuning, and metrics tracking. MLflow is used for logging the retrained LLM.

4. Triggering the Generation of New Vectors for Fresh Data

๐Ÿ”„ MinIO is used for unstructured data storage. Argo Events is set up to listen for upload events on MinIO, triggering a vector ingestion workflow when new data is uploaded.

5. Ingesting New Vectors into the Knowledge Base

๐Ÿ” Argo Workflows is used to run a vector ingestion pipeline that utilizes LlamaIndex for generating and ingesting vectors. These vectors are stored in Milvus, which serves as the knowledge base for retrieval-augmented generation.

Stack Overview

BigBertha relies on several key components:

  • ArgoCD: A Kubernetes-native continuous delivery tool that manages all components in the BigBertha stack.

  • Argo Workflows: A Kubernetes-native workflow engine used for running vector ingestion and model retraining pipelines.

  • Argo Events: A Kubernetes-native event-based dependency manager that connects various applications and components, triggering workflows based on events.

  • Prometheus + AlertManager: Used for monitoring and alerting related to model performance.

  • LlamaIndex: A framework for connecting LLMs and data sources, used for data ingestion and indexing.

  • Milvus: A Kubernetes-native vector database for storing and querying vectors.

  • MinIO: An open-source object storage system used for storing unstructured data.

  • MLflow: An open-source platform for managing the machine learning lifecycle, including experiment tracking and model management.

  • Kubernetes: The container orchestration platform that automates the deployment, scaling, and management of containerized applications.

  • Docker Containers: Docker containers are used for packaging and running applications in a consistent and reproducible manner.

Demo Chatbot

As a demonstration, BigBertha includes a Streamlit-based chatbot that serves a Llama2 7B quantized chatbot model. A simple Flask app is used to expose metrics, and Redis acts as an intermediary between Streamlit and Flask processes.

License ๐Ÿ“„

This project is open-source and is governed by the terms and conditions outlined in the LICENSE file included in this repository. ๐Ÿ“œ

bigbertha's People

Contributors

aishwaryaprabhat avatar aryaais avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bigbertha's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.