可觀察性是確保現代軟體系統,尤其 AI 系統穩定運作的關鍵。不同於傳統監控著重於預先定義指標的追蹤,可觀察性更強調對系統內部狀態的全面理解,從而診斷和解決潛在問題。隨著系統複雜度的提升,結構化日誌和追蹤技術的整合成為實作可觀察性的必要條件,它們能提供更精細的資料分析和事件關聯,幫助工程師深入洞察系統行為,進而提升系統可靠性和效能。在 AI 領域,可觀察性不僅體現在模型效能和行為的監控上,更深入到理解 AI 系統的內部工作機制和決策過程,為模型最佳化和系統調校提供依據。
責任 AI 系統設計
設計負責任 AI 系統需要採用特定的模式和方法。玄貓的《負責任 AI 設計模式:設計負責任 AI 系統的模式集合》提供了實用的指導,幫助開發人員建立負責任的 AI 系統。此外,玄貓還討論了在生成式 AI 時代設計基礎模型的重要性。
營運負責任 AI
營運負責任 AI 需要考慮 AI 倫理和安全性等問題。玄貓的《AI 與倫理》章節提供了有關營運負責任 AI 的討論。
AI 系統安全
最後,關於 AI 系統安全,玄貓的《執行時防護欄》提供了實用的指導,幫助開發人員實作 AI 安全。
可觀察性
可觀察性是 AI 工程師的一個重要概念,它使得工程師能夠檢測異常、最佳化效能和建立信任。這一章將深入探討可觀察性的定義和相關概念,並探索實作可觀察性的方法。
基礎概念
可觀察性是指外部代理能夠理解系統行為的能力。外部代理可以是人或其他系統。理解可以根據系統輸出或系統開發、執行和模型訓練過程中的行為。
程式碼和資料倉儲可以用來支援可觀察性。系統本身可以記錄資訊,例如日誌,從而支援可觀察性。基礎設施可以監控資源利用率,這也支援可觀察性。
相關品質
可觀察性有一些相關品質,包括監控性、解釋性、稽核性和透明度。這些概念都有稍微不同的含義,但都與可觀察性相關。
- 透明度:利益相關者能夠取得軟體開發過程和執行資訊,以及系統中使用的元素資訊的能力。
- 監控性:能夠在實時監控資訊的能力。這通常透過顯示來實作,例如顯示不健康的伺服器或活躍使用者數量。
- 稽核性:稽核員能夠生成系統行為結果解釋的能力。這通常在監管或法律程式中相關。
- 解釋性:能夠生成系統行為解釋的能力。解釋式 AI(XAI)旨在使 AI 系統的決策過程對利益相關者可理解。
此外,效能警示(見第 8 章)依賴於適當資料的可用性,即可觀察性。
從監控性演變到可觀察性
下一節將探討如何從監控性演變到可觀察性,包括實作可觀察性的方法和技術。
從監控到可觀察性:軟體系統的演進
軟體系統的複雜度不斷增加,傳統的監控方法已經不能滿足我們對系統的理解和管理需求。監控(Monitorability)主要關注於追蹤和視覺化預先定義的軟體品質指標,以快速檢測系統中的問題,而可觀察性(Observability)則是指能夠理解軟體系統內部狀態的能力,透過診斷和糾正問題。
監控的早期階段
最初,監控的概念是維護系統可靠性和效能的核心。這個階段主要關注於收集指標,例如 CPU 使用率、記憶體消耗和網路利用率,以及無結構日誌(unstructured logs),用於捕捉事件而不需要預先定義的格式。目的是要找出並解決影響系統可靠性和營運效率的問題,例如平均故障間隔時間(Mean Time Between Failures, MTBF)、平均修復時間(Mean Time to Repair, MTTR)和平均檢測時間(Mean Time to Detect, MTTD)。然而,這種方法往往依賴於斷裂的工具和方法論,限制了跨不同服務對同一個請求進行事件和指標關聯的能力。缺乏結構化資料和監控工具之間的互連性,使得診斷和解決問題變得困難,常常導致長時間的停機和系統效能受損。
向結構化資料和追蹤的演進
從基本監控到更先進的可觀察性實踐的演進始於追蹤和結構化日誌的整合。追蹤涉及跨不同服務對單個請求的事件和指標進行關聯,提供了對系統行為和互動作用更深入的洞察。向結構化日誌的轉變,包括追蹤 ID 和跨度 ID,促進了分散式系統中資料的聚合和分析。這種方法允許建立標準日誌,並利用列儲存和高基數資料,大大提高了系統的可理解性。透過這種方式,工程師可以更有效地分析系統行為,從而更快地解決問題並提高系統可靠性。
結構化資料到可觀察性
可觀察性代表著我們與複雜系統互動和理解的進一步演進。它提供了系統內部狀態的整體檢視,源自輸出。可觀察性不僅僅是收集指標和日誌;它關乎從軟體開發生命週期的每個方面獲得洞察,以便更好地理解系統行為。在人工智慧(AI)的背景下,監控指的是能夠跟蹤 AI 模型效能和行為的能力,而可觀察性則是指能夠深入理解 AI 系統內部工作原理和決策過程的能力。
內容解密:
- 監控和可觀察性是軟體系統管理中的兩個重要概念。
- 監控著重於追蹤預先定義的品質指標,以快速檢測問題。
- 可觀察性則是指能夠理解系統內部狀態的能力,透過診斷和糾正問題。
- 從監控到可觀察性的演進代表著對系統理解和管理的一個轉變。
- 結構化資料和追蹤是實作可觀察性的關鍵步驟。
圖表翻譯:
graph LR A[監控] -->|演進|> B[結構化資料] B -->|整合追蹤|> C[可觀察性] C -->|提供內部狀態檢視|> D[系統理解] D -->|洞察軟體開發生命週期|> E[全面最佳化]
這個圖表展示了從監控到可觀察性的演進過程,以及結構化資料和追蹤在這個過程中的重要性。最終,實作可觀察性有助於我們更好地理解系統內部狀態,並對軟體開發生命週期有更全面的洞察。
可觀察性已成為建構高可靠性與高效能軟體系統的關鍵根本。本文深入探討了可觀察性的核心概念、相關品質指標,以及從傳統監控到可觀察性的演進歷程。多維比較分析顯示,相較於僅關注表面指標的傳統監控,可觀察性更強調對系統內部狀態的深度理解,從而能更有效地診斷和解決問題。技術限制深析指出,實作全面的可觀察性仍面臨挑戰,例如高基數資料的處理、跨系統追蹤的複雜性,以及可解釋性與效能的平衡。對於 AI 系統而言,可觀察性尤為重要,它不僅能提升模型的可靠性和效能,更能確保 AI 系統的透明度和可信度。玄貓認為,隨著雲原生技術和 AI 技術的快速發展,可觀察性將成為軟體工程的標準實踐,技術團隊應積極探索並整合相關工具和方法,才能在日益複雜的系統環境中保持競爭優勢。