在建構 AI 系統時,確保其可靠性和容錯能力至關重要。系統架構設計需明確劃分模型與非 AI 元件的責任,例如系統層級的可靠性機制以及模型是否感知其執行環境。為有效識別潛在故障點,可運用故障模式和影響分析(FMEA)及故障樹分析(FTA)等方法。故障檢測方面,針對元件完全失效的「總失敗」,可採用 ping/echo 或 heartbeat 等健康檢查機制;而針對模型輸出異常的「可疑輸出」,則可利用冗餘和投票機制或防護欄等方法。此外,持續監控輸入資料和輸出的異常及分佈外資料,例如準確度、精確度、召回率、F1 評分等指標,也有助於及早發現錯誤。
7.2.5 責任劃分
在 AI 系統中,既有機器學習模型元件,也有非 AI 元件。這些元件最初都有其設計的功能和責任。然而,隨著模型的成長和演化,模型可能會承擔原本分配給非 AI 元件的責任。因此,架構應該清晰地劃分哪些責任應該由模型承擔,哪些應該由非 AI 元件承擔。責任劃分的一些方面包括:
- 決定可靠性、健壯性和還原力機制的位置,是在模型級別還是系統級別。
- 決定是否讓 AI 模型意識到其系統級別的執行環境,除了其主要解決問題的領域外,這是一個戰略性的選擇。通常,AI 模型被訓練為只關注它們正在解決的問題,而不考慮系統級別的因素,如計算資源的波動、潛在攻擊或其他幹擾。擴大模型的意識以包括這些執行方面的考慮,超出了它所解決的核心問題,涉及權衡各種優勢和劣勢。例如,在交通管理場景中,模型可以被開發為僅處理交通資料,也可以被調整為感知系統約束和外部幹擾的變化。
責任重疊可能是由於模型的演化和成長引起的。在無法明確區分模型和非 AI 元件責任的情況下,可以將責任分配給兩者,並實施投票機制,如下所述。
7.2.6 故障模式和影響分析(FMEA)和故障樹分析(FTA)
FMEA 和 FTA 是用於識別系統中潛在故障點和了解其對系統人類價值遵守性的影響的有用工具。一方面,FTA 提供了一種方法論的方法來追蹤故障的根源。另一方面,FMEA 幫助評估不同故障的嚴重性和可能性,使開發人員能夠優先實施有效的風險緩解策略。
7.3 故障檢測
在故障發生和失敗之間,系統處於錯誤模式。架構必須設計成能夠識別可靠性問題的元件。架構必須能夠識別出元件的總失敗或計算結果的微妙失敗。
7.3.1 總失敗
如果元件完全失敗,則必須識別出失敗。在分散式系統中,所有通訊都是透過訊息進行的。元件的總失敗意味著元件不會回應或傳送訊息。因此,識別總失敗的基本技術是使用健康檢查方法。健康檢查涉及兩個元件:一個是可能已經失敗的元件(被監控的元件),另一個是監控元件。
有兩種形式的健康檢查:ping/echo 和 heartbeat。
- ping/echo 將主動權放在監控元件上。它傳送訊息給被監控的元件,被監控的元件必須在設定的時間內回應。如果被監控的元件在時間框架內不回應,則監控元件將檢測到失敗。在大多數情況下,監控元件會嘗試多次之前才決定被監控的元件已經失敗,因為回應延遲可能是由於網路問題引起的。
- heartbeat 將主動權放在被監控的元件上。它定期(例如每 10 秒)傳送訊息給監控元件,這個訊息將指示被監控的元件仍然活躍。同樣,監控元件可能會等待幾個 heartbeat 被遺漏之前才決定被監控的元件已經失敗。
7.3.2 可疑輸出
從元件或模型中輸出的可疑輸出更為微妙,且更難以檢測。首先,必須在設計過程中認識到元件輸出的可能性是可疑的。任何具有不確定性的計算都可能是可疑的。例如,感測器是一種具有不確定性的資料來源,模型預測也是如此。冗餘和投票機制(下面描述)是提供更多保證給可疑輸出的機制。防護欄(在第 4 章中討論)是另一個檢測和管理可疑輸出的機制。
7.3.3 在執行中檢測錯誤
持續監控輸入資料和輸出的異常和分佈外資料將在執行中檢測錯誤。實作此目的一些技術包括:
- 監控準確度、精確度、召回率、F1 評分或與您的應用程式相關的自定義指標等指標。自定義指標可能包括使用者對 AI 模型回應的反饋。
系統故障檢測與還原活動圖
圖表描述 (Alt Text): 此活動圖展示了系統從正常狀態到發生故障,進入錯誤模式,再透過健康檢查(如ping/echo或heartbeat)識別總失敗,最終觸發系統還原,回到正常狀態的完整流程。
如何確保 AI 系統的可靠性和容錯能力
在 AI 系統的設計和實施中,確保其可靠性和容錯能力至關重要。這不僅涉及到系統的正常執行,也關乎到對使用者和業務的影響。以下是幾個關鍵步驟和策略,以幫助您提升 AI 系統的可靠性和容錯能力。
監控和警示
- 設立監控機制:對系統的效能、基礎設施健康狀態等進行實時監控。這包括記錄和分析系統的執行資料,如延遲、吞吐量、錯誤率等。
- 設立警示機制:當系統的執行狀態超出預設的閾值時,觸發警示。這可以幫助您及早發現潛在問題,從而進行及時的維護和修復。
Model 解釋和最佳化
- 使用 LIME 或 SHAP 等技術:這些技術可以幫助您瞭解模型的決策過程,找出導致不可靠預測的特徵。
- 跟蹤資料分佈:隨著時間的推移,資料分佈可能會發生變化。如果模型不能適應這些變化,可能會導致預測結果的可靠性降低。
混沌工程和多重應急計劃
- 混沌工程:在測試階段故意引入故障,以確保系統能夠在生產環境中穩定執行。
- 多重應急計劃:建立多個應急計劃,以應對不同的營運情景。這包括模型回復、備用策略等,以確保系統在遇到問題時能夠快速還原。
Proxy 措施和容錯機制
- 開發 Proxy 措施:當無法立即獲得真實結果時,使用代理指標進行實時驗證。
- 容錯機制:建立機制以管理故障,包括引入冗餘、錯誤處理等。
冗餘和錯誤處理
- 冗餘:維護多個元件例項,以便在一個元件失敗時能夠快速切換到備使用案例項。
- 錯誤處理:實作投票式設計,結合多個來源的輸出以增強決策的可靠性。
從系統架構的視角來看,構建可靠且具備容錯能力的 AI 系統,不僅僅是追求模型的高效能,更需關注系統整體的穩定性和韌性。本文深入探討了故障偵測、責任劃分以及如何應對模型演化帶來的挑戰,並提出了包括健康檢查、冗餘機制、FMEA 與 FTA 等一系列實務策略。分析這些方法可以發現,系統的可靠性並非單一元件的責任,而是需要從資料輸入、模型運算到輸出結果的整個生命週期進行全面考量。目前的挑戰在於,如何有效地整合這些方法,並根據特定應用場景進行調整。玄貓認為,隨著模型複雜度的提升和應用場景的多樣化,建立一套自動化的系統監控、故障診斷和還原機制將是未來 AI 系統發展的關鍵方向,這也將推動 AI 系統從實驗室走向更廣泛的實際應用。