在硬體設備、實作部署都告一段落後,最後需要做的就是監控 📊。在部署LLM推理服務後,監控是開發後最重要的其中一部分。這不僅僅是為了服務的穩定性 ⚙️,還能幫助開發者發現性能瓶頸、資源利用率的問題,以及預測未來的需求,將系統更加優化。
🔍 章節大綱:
- 為什麼需要監控呢? 🦉
- 在這之前要先提的是DevOps、SRE的概念。 🧩
- 可以用什麼工具監控? 🔭
筆者以前待過的infra team也是遵守著DevOps的概念,開發維運打雜從server到container的監控都必須了解。因此在這篇文章中,筆者將試著把這些概念融入LLM推理的系統中,解釋如何透過監控來維護LLM系統 🧠。
(圖源: 網路)
在 Day4 已經學習過了推理計算的評估指標,當LLM部署到production環境後,監控是維持系統穩定和可擴展性的關鍵 🔑!大型語言模型的推理階段需要大量資源 ⚡,在 Day3 提到了LLM推理會用到哪些資源,而從GPU、記憶體、記憶體頻寬,每個環節都有可能會成為性能瓶頸。
因此,監控這些資源的使用情況有助於:
因此,監控不僅是事後的反應措施,還是預防潛在問題的主動策略! 💡
在介紹如何監控LLM推理之前,先簡單說明一些相關的維運概念。這些筆者以前都看不太懂,想說這是不是為了更便宜壓榨工程師才生出的理念(˘・_・˘),很久之後才終於懂他們的重要性,不過筆者對MLOps和LLMOps並沒有很確定,這部分是GPT-4o撰寫的介紹。 🤖
DevOps 🛠️
SRE(Site Reliability Engineering) 🔧
MLOps 🤖
LLMOps 🧠
DevOps適用於所有類型的軟體開發和部署過程,而SRE更專注於系統穩定性和可用性。其中,無論是DevOps中的自動化過程、SRE中的系統穩定性,還是MLOps與LLMOps的資料追蹤,都需要依賴即時的監控來確保系統能夠如預期運作。
(圖源: reddit,這些梗圖會存在就是真的會有這事情在XD)
希望這個系列可以不只有提到LLM推理,能加上學生時期可能會不太清楚的infra、DevOps部分,對整個IT管理有更全面的認識 🌐,從IThome這幾年DevOps相關的主題增加,可以看出這些觀念在現在的IT維運當中非常重要。
🖥️ Prometheus:這是一個開源的系統監控和警報工具,專門用來收集和儲存時間序列資料。Prometheus主要用來監控分散式系統,它可以從服務中抓取資料,內建強大的查詢語言PromQL,可以幫助工程師們分析和篩選資料。
📊 Grafana:可以與Prometheus結合,Grafana可以將收集到的監控資料視覺化,並製作成dashboard,讓工程師們可以快速地看到LLM推理服務的運作情況。
📜 ELK Stack(Elasticsearch, Logstash, Kibana):ELK主要用於log的收集與分析。對於LLM推理服務,ELK可以幫助分析模型運行中的錯誤日誌,特別是在模型出現錯誤或異常行為時。
這幾個名字如果有翻IThome的DevOps組,應該非常熟悉了,這幾個是最有名的監控工具組合,至於為什麼會選擇這些,是因為vLLM支援這些方法監控XDD,明天就要來深入實作啦!
在這一章中學到了,監控在LLM推理服務中是十分重要的 📈,透過整合DevOps、SRE、MLOps、LLMOps的理念,可以在不同的層面上確保LLM推理服務的穩定性 🔒,還能讓系統更加靈活、有效地應對各種挑戰。而Prometheus、Grafana等監控和視覺化工具的運用,則能進一步讓監控變得更加簡單與直觀 🎯。
因此,明天就來學習用Prometheus + Grafana對vLLM服務去做監控吧! 💻📊
至於為什麼今天的梗圖特別多,因為剩下三天了不放太浪費了!!!
(圖源: 網路,很久以前存的,現在找不到來源了QQ)