iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
生成式 AI

Local LLM infra & Inference 一部曲系列 第 28

Day28 - 從服務部署到維運:DevOps & 服務監控

  • 分享至 

  • xImage
  •  

前言

在硬體設備、實作部署都告一段落後,最後需要做的就是監控 📊。在部署LLM推理服務後,監控是開發後最重要的其中一部分。這不僅僅是為了服務的穩定性 ⚙️,還能幫助開發者發現性能瓶頸、資源利用率的問題,以及預測未來的需求,將系統更加優化。

🔍 章節大綱:

  • 為什麼需要監控呢? 🦉
  • 在這之前要先提的是DevOps、SRE的概念。 🧩
  • 可以用什麼工具監控? 🔭

筆者以前待過的infra team也是遵守著DevOps的概念,開發維運打雜從server到container的監控都必須了解。因此在這篇文章中,筆者將試著把這些概念融入LLM推理的系統中,解釋如何透過監控來維護LLM系統 🧠。

https://ithelp.ithome.com.tw/upload/images/20240929/20168115cPIf8yhklj.jpg
(圖源: 網路)


🦉 為什麼需要監控?

Day4 已經學習過了推理計算的評估指標,當LLM部署到production環境後,監控是維持系統穩定和可擴展性的關鍵 🔑!大型語言模型的推理階段需要大量資源 ⚡,在 Day3 提到了LLM推理會用到哪些資源,而從GPU、記憶體、記憶體頻寬,每個環節都有可能會成為性能瓶頸

因此,監控這些資源的使用情況有助於:

  • 🚨 及早發現問題:如果模型回應時間變長、記憶體不足或GPU資源過度消耗時,監控可以幫助工程師們提前發現並處理問題,避免服務中斷。
  • 性能優化:藉由收集模型推理過程中的評估指標資料,可以幫助系統的調整和優化,讓推理過程更有效率。
  • 🔮 預測需求:透過監控的歷史資料,可以根據在不同時段request的數量,進一步去預測未來的資源擴展需求,確保服務的可擴展性。

因此,監控不僅是事後的反應措施,還是預防潛在問題的主動策略! 💡


🧩 DevOps、SRE、MLOps、LLMOps

在介紹如何監控LLM推理之前,先簡單說明一些相關的維運概念。這些筆者以前都看不太懂,想說這是不是為了更便宜壓榨工程師才生出的理念(˘・_・˘),很久之後才終於懂他們的重要性,不過筆者對MLOps和LLMOps並沒有很確定,這部分是GPT-4o撰寫的介紹。 🤖

  • DevOps 🛠️

    • DevOps的核心是打破開發與維運之間的隔閡,將過去需要手動處理的過程自動化,以提高效率、減少部署風險。透過自動化持續整合、持續交付(CI/CD)等方法來實現敏捷開發。 🚀
  • SRE(Site Reliability Engineering) 🔧

    • SRE是由Google提出的,強調系統可靠性和自動化,透過監控與可靠性指標(如SLA和SLO)來確保系統的可用性。對於LLM推理來說,SRE的原則可以幫助確保模型推理服務的穩定性,並透過自動化措施來減少故障發生率。
  • MLOps 🤖

    • MLOps是針對ML模型的開發與維運,涵蓋了從模型訓練、部署和監控的整個生命週期。與傳統開發不同,ML模型需要持續更新並監控其預測效果,尤其是當數據分布發生變化時。
  • LLMOps 🧠

    • LLMOps是MLOps的延伸,專門針對LLM的維運與監控。與一般的ML模型不同,LLM需要大量資源進行推理,因此LLMOps會更加關注推理過程中的資源管理、性能調整、與多版本模型的管理。

DevOps適用於所有類型的軟體開發和部署過程,而SRE更專注於系統穩定性和可用性。其中,無論是DevOps中的自動化過程、SRE中的系統穩定性,還是MLOps與LLMOps的資料追蹤,都需要依賴即時的監控來確保系統能夠如預期運作。

https://ithelp.ithome.com.tw/upload/images/20240929/20168115MNXUjcdVNC.jpg
(圖源: 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服務去做監控吧! 💻📊

至於為什麼今天的梗圖特別多,因為剩下三天了不放太浪費了!!!

https://ithelp.ithome.com.tw/upload/images/20240929/20168115YKXptVRS1M.jpg
(圖源: 網路,很久以前存的,現在找不到來源了QQ)


上一篇
Day27 - Infra篇PART2:針對服務的分散式系統
下一篇
Day29 - vLLM實作篇PART5:監控vLLM
系列文
Local LLM infra & Inference 一部曲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言