BigBertha 是一種架構設計,示範如何使用開源容器原生技術在任何 Kubernetes 叢集上實現自動化 LLMOps(大型語言模型操作)?
? BigBertha 利用 Prometheus 監控 LLM(大型語言模型)服務模組。出於演示目的,Streamlit 應用程式用於為 LLM 提供服務,Prometheus 從中獲取指標。設定警報是為了偵測效能下降。
當模型效能下降時,Prometheus 會觸發警報。這些警報由 AlertManager 管理,它使用 Argo Events 觸發重新訓練管道來微調模型。
?️ 再訓練管道是使用 Argo 工作流程進行編排的。此流程可以客製化以執行特定於 LLM 的再培訓、微調和指標追蹤。 MLflow 用於記錄重新訓練的 LLM。
MinIO 用於非結構化資料儲存。 Argo Events 設定為偵聽 MinIO 上的上傳事件,在上傳新資料時觸發向量攝取工作流程。
? Argo Workflows 用於運行向量攝取管道,該管道利用 LlamaIndex 來產生和攝取向量。這些向量儲存在 Milvus 中,作為檢索增強生成的知識庫。
BigBertha 依賴幾個關鍵組件:
ArgoCD:一種 Kubernetes 原生持續交付工具,用於管理 BigBertha 堆疊中的所有元件。
Argo Workflows:一個 Kubernetes 原生工作流程引擎,用於運行向量攝取和模型再訓練管道。
Argo Events:一個 Kubernetes 原生的基於事件的依賴管理器,它連接各種應用程式和元件,根據事件觸發工作流程。
Prometheus + AlertManager:用於模型效能相關的監控和警報。
LlamaIndex:連接 LLM 和資料來源的框架,用於資料攝取和索引。
Milvus: Kubernetes 原生向量資料庫,用於儲存和查詢向量。
MinIO:一種用於儲存非結構化資料的開源物件儲存系統。
MLflow:一個用於管理機器學習生命週期的開源平台,包括實驗追蹤和模型管理。
Kubernetes:容器編排平台,可自動部署、擴充和管理容器化應用程式。
Docker 容器: Docker 容器用於以一致且可重複的方式打包和運行應用程式。
作為演示,BigBertha 包括一個基於 Streamlit 的聊天機器人,該機器人為 Llama2 7B 量化聊天機器人模型提供服務。一個簡單的 Flask 應用程式用於公開指標,Redis 充當 Streamlit 和 Flask 進程之間的中介。
該專案是開源的,並受此儲存庫中包含的許可證文件中概述的條款和條件的約束。