BigBertha คือการออกแบบสถาปัตยกรรมที่แสดงให้เห็นว่า LLMOps (การดำเนินการแบบจำลองภาษาขนาดใหญ่) อัตโนมัติสามารถทำได้บนคลัสเตอร์ Kubernetes ใด ๆ โดยใช้เทคโนโลยีโอเพ่นซอร์สคอนเทนเนอร์เนทีฟ
- BigBertha ใช้ Prometheus เพื่อตรวจสอบโมดูลการให้บริการ LLM (Large Language Model) เพื่อวัตถุประสงค์ในการสาธิต แอป Streamlit ใช้เพื่อให้บริการ LLM และ Prometheus จะดึงตัววัดจากแอปดังกล่าว การแจ้งเตือนได้รับการตั้งค่าเพื่อตรวจจับการเสื่อมประสิทธิภาพ
Prometheus ทริกเกอร์การแจ้งเตือนเมื่อประสิทธิภาพของโมเดลลดลง การแจ้งเตือนเหล่านี้ได้รับการจัดการโดย AlertManager ซึ่งใช้ Argo Events เพื่อทริกเกอร์ไปป์ไลน์การฝึกอบรมใหม่เพื่อปรับแต่งโมเดลอย่างละเอียด
️ ไปป์ไลน์การฝึกอบรมใหม่ได้รับการจัดการโดยใช้ Argo Workflows ไปป์ไลน์นี้สามารถปรับแต่งให้ดำเนินการฝึกอบรมซ้ำ การปรับแต่ง และการติดตามตัววัดเฉพาะ LLM ได้ MLflow ใช้สำหรับการบันทึก LLM ที่ได้รับการอบรมใหม่
MiniIO ใช้สำหรับการจัดเก็บข้อมูลที่ไม่มีโครงสร้าง Argo Events ได้รับการตั้งค่าให้รับฟังเหตุการณ์การอัปโหลดบน MinIO ซึ่งจะทริกเกอร์เวิร์กโฟลว์การนำเข้าเวกเตอร์เมื่อมีการอัปโหลดข้อมูลใหม่
- เวิร์กโฟลว์ Argo ใช้เพื่อเรียกใช้ไปป์ไลน์การนำเข้าเวกเตอร์ที่ใช้ LlamaIndex ในการสร้างและการนำเข้าเวกเตอร์ เวกเตอร์เหล่านี้ถูกจัดเก็บไว้ใน Milvus ซึ่งทำหน้าที่เป็นฐานความรู้สำหรับการสร้างแบบดึงข้อมูลแบบเสริม
BigBertha อาศัยองค์ประกอบสำคัญหลายประการ:
ArgoCD: เครื่องมือส่งมอบอย่างต่อเนื่องแบบเนทีฟของ Kubernetes ที่จัดการส่วนประกอบทั้งหมดในสแต็ก BigBertha
เวิร์กโฟลว์ Argo: กลไกเวิร์กโฟลว์ดั้งเดิมของ Kubernetes ที่ใช้สำหรับรันการนำเข้าเวกเตอร์และไปป์ไลน์การฝึกอบรมโมเดลใหม่
Argo Events: ตัวจัดการการพึ่งพาตามเหตุการณ์ของ Kubernetes ที่เชื่อมต่อแอปพลิเคชันและส่วนประกอบต่างๆ เรียกใช้เวิร์กโฟลว์ตามเหตุการณ์
Prometheus + AlertManager: ใช้สำหรับตรวจสอบและแจ้งเตือนที่เกี่ยวข้องกับประสิทธิภาพของโมเดล
LlamaIndex: เฟรมเวิร์กสำหรับการเชื่อมต่อ LLM และแหล่งข้อมูล ซึ่งใช้สำหรับการนำเข้าและจัดทำดัชนีข้อมูล
Milvus: ฐานข้อมูลเวกเตอร์ดั้งเดิมของ Kubernetes สำหรับจัดเก็บและสืบค้นเวกเตอร์
MiniIO: ระบบจัดเก็บข้อมูลออบเจ็กต์โอเพ่นซอร์สที่ใช้สำหรับจัดเก็บข้อมูลที่ไม่มีโครงสร้าง
MLflow: แพลตฟอร์มโอเพ่นซอร์สสำหรับจัดการวงจรการเรียนรู้ของเครื่อง รวมถึงการติดตามการทดลองและการจัดการโมเดล
Kubernetes: แพลตฟอร์มการจัดการคอนเทนเนอร์ที่ทำให้การใช้งาน การปรับขนาด และการจัดการแอปพลิเคชันในคอนเทนเนอร์เป็นแบบอัตโนมัติ
คอนเทนเนอร์นักเทียบท่า: คอนเทนเนอร์นักเทียบท่าใช้สำหรับบรรจุภัณฑ์และเรียกใช้แอปพลิเคชันในลักษณะที่สอดคล้องกันและทำซ้ำได้
ในการสาธิต BigBertha ได้รวมแชทบอตที่ใช้ Streamlit ไว้ซึ่งให้บริการโมเดลแชทบอตเชิงปริมาณ Llama2 7B แอป Flask ธรรมดาใช้เพื่อแสดงการวัด และ Redis ทำหน้าที่เป็นตัวกลางระหว่างกระบวนการ Streamlit และ Flask
โครงการนี้เป็นโอเพ่นซอร์สและอยู่ภายใต้ข้อกำหนดและเงื่อนไขที่ระบุไว้ในไฟล์ใบอนุญาตที่รวมอยู่ในพื้นที่เก็บข้อมูลนี้