隨著人工智慧系統日益複雜,監控和分析也變得更具挑戰性。不同於傳統系統,AI 系統的動態性需要持續監控模型效能、資料品質以及使用者回饋。概念漂移是 AI 模型常見問題,需要定期追蹤新資料並適時更新模型,更新頻率取決於漂移檢測、效能降低程度和新資料的可用性。連續佈署和測試,例如滾動升級、藍綠佈署和金絲雀測試,有助於快速佈署新版本並及早發現問題。營運監控則著重於追蹤模型效能、資料品質和使用者回饋,以作為調整系統組態和更新模型的依據。

人工智慧系統的監控和分析

人工智慧(AI)系統的監控和分析與傳統系統有所不同。雖然兩者都需要監控和分析,但 AI 系統的複雜性和動態性使得這些過程更加挑戰性。以下是 AI 系統監控和分析的一些關鍵方面。

監控和分析的重疊

監控和分析之間存在著明顯的重疊。監控是指收集和處理資料以瞭解系統的行為和效能,而分析是指使用這些資料來獲得洞察力和做出決策。AI 系統的監控和分析需要考慮 AI 決策對傳統元件的影響,以及資料品質和相容性在整個系統中的重要性。

概念漂移和模型更新

AI 模型的效能可能會隨著時間的推移而惡化,這被稱為概念漂移。為了應對這個問題,工程師需要監控模型的效能,並在必要時更新模型。這涉及跟蹤新資料的數量和品質,以確定何時需要更新模型。更新模型的頻率應根據多個因素,包括漂移檢測、效能惡化和新資料的可用性。

連續佈署和測試

連續佈署是一個自動化的過程,允許快速佈署新版本的系統。這可以透過滾動升級或藍綠佈署來實作。金絲雀測試是一種佈署系統到使用者子集的方法,以幫助在將系統推廣到所有使用者之前發現問題。實施一個單一的發布流程,具有強大的品質閘門,是實作高品質和速度同時的關鍵。

營運監控

在營運期間,活動被監控,監控結果用於瞭解系統的行為和效能。這涉及跟蹤各種指標,例如模型效能、資料品質和使用者反饋。這些資訊可用於做出決策,例如何時更新模型或調整系統組態。

內容解密

上述內容涉及 AI 系統監控和分析的一些關鍵方面,包括概念漂移、模型更新、連續佈署和測試以及營運監控。這些過程需要仔細考慮多個因素,以確保 AI 系統的高效能和可靠性。

  flowchart TD
    A[開始] --> B[監控和分析]
    B --> C[概念漂移檢測]
    C --> D[模型更新]
    D --> E[連續佈署]
    E --> F[測試]
    F --> G[營運監控]
    G --> H[決策]

圖表翻譯

此圖表展示了 AI 系統監控和分析的流程。從左到右,流程包括監控和分析、概念漂移檢測、模型更新、連續佈署、測試、營運監控和決策。每個步驟都對應於上述內容中的一個關鍵方面。透過這個圖表,可以清晰地看到 AI 系統監控和分析的各個階段之間的關係。

可靠性在人工智慧系統中的重要性

人工智慧(AI)系統的可靠性是指系統在不同條件下、長時間內保持穩定和正確的效能。它涵蓋了系統在面臨意外輸入或環境變化時,仍能產生正確和可靠的輸出的能力。可靠性是 AI 系統的一個關鍵方面,因為它直接影響到系統的實用性和使用者的信任度。

基礎概念

可靠性的定義包括幾個重要的方面,例如「指定操作條件」、「意外輸入」和「環境變化」。此外,「故障、錯誤和失敗」也是理解可靠性的重要概念。這些概念幫助我們框定討論的範圍,並更好地理解可靠性的含義。

在指定操作條件下

傳統上,可靠性被定義為系統在指定操作條件下,於給定的時間內以滿意的方式運作的機率。這個定義強調了指定條件的重要性,即系統應該在其預期的環境中運作,而不是在所有可能的情況下。

在 AI 領域中,可靠性的概念被擴充套件到包括模型在面臨新資料時的效能。這些新資料應該要麼落在訓練資料的分佈範圍內,要麼與之相似,以確保它們不超出分佈範圍(OOD)。理想情況下,訓練資料應該代表模型所要解決的真實世界場景,並假設模型能夠從其訓練中很好地泛化。這意味著模型應該避免過度適應(overfitting),而是學習訓練資料中的基本模式。

討論問題

  1. 系統是否應該在測試階段透過所有測試後才被佈署到生產環境?為什麼或為什麼不?
  2. 系統測試階段為什麼要重複對 AI 模型和非 AI 模組進行的單元測試?
  3. 請討論混沌工程(Chaos Engineering)在生產環境中的優缺點。

進一步閱讀

對於非 AI 系統的 DevOps 生命週期的討論,請參考《佈署和操作軟體工程師》by 玄貓 [Bass 19]。更多 DevOps 知識,請參考我們之前的書籍:《DevOps:軟體架構師的視角》by 玄貓 [Bass 15]。設計模式的經典來源,如策略模式,是《設計模式:可重用物件導向軟體的元素》by 玄貓、Richard Helm、Ralph Johnson 和 John Vlissides [Gamma 95]。

C. Huyen 的《設計機器學習系統:一個生產就緒應用的迭代過程》[Chip 22] 是一個好的設計 AI 系統 для 生產的來源。你可以在《軟體架構挑戰機器學習系統》by 玄貓 [Lewis 21] 中找到更多關於架構 ML 系統的見解。對於操作 AI 系統的行業見解,請參考 Shankar 等人的《操作機器學習:一個採訪研究》[Shankar 22]。

對於跨供應鏈分享軟體包資訊及其與 AI 系統的相關性的行業見解,請參考《軟體包清單的實證研究:我們的立場和未來之路》by 玄貓 [Xia 24B]。兩個 AI 事件資料函式庫可以在以下找到:

可靠性

可靠性是 AI 系統的一個關鍵方面,因為它直接影響到系統的實用性和使用者的信任度。透過瞭解可靠性的基礎概念和重要性,我們可以更好地設計和實作可靠的 AI 系統,以滿足真實世界的需求。

人工智慧系統的可靠性:概述和挑戰

人工智慧(AI)系統的可靠性是一個至關重要的議題,因為它直接影響到這些系統在各種應用中的表現和可信度。可靠性不僅僅是指系統的準確性,也包括其在不同情況下維持這種準確性的能力,這被稱為泛化能力。一個可靠的 AI 系統應該能夠在面臨新的、未曾見過的資料時仍然保持其效能,不會因為訓練資料的限制而失效。

7.1.1 泛化能力

泛化能力是指 AI 系統在面對新資料時能夠保持其準確性的能力。這是一個關鍵的方面,因為它決定了系統是否能夠在實際應用中發揮作用。一個具有良好泛化能力的 AI 系統,可以在訓練資料之外的新資料上保持其效能,這使得它在實際應用中更加可靠。

7.1.2 抗擾能力

抗擾能力是指 AI 系統在面對意外輸入時仍能夠正常運作的能力。這包括處理出於分佈範圍的資料和對抗性資料,維持一定的準確性,抵禦操縱嘗試,同時保持輸出的穩定性。這種能力被稱為強健性,是 AI 系統可靠性的另一個重要方面。

7.1.3 韌性

韌性是指 AI 系統在面對環境變化時能夠維持其功能的能力。這包括在重大幹擾下保持在可接受的退化引數內,並在可接受的時間框架內還原。一個具有良好韌性的 AI 系統,可以在面對意外事件時快速還原,維持其可靠性。

7.1.4 故障、失敗和錯誤

Avižienis 和他的合作者提供了一種語言和思考方式來理解可靠性。他們區分了失敗、故障和錯誤。失敗是指系統偏離其規範,而這種偏離是外部可見的。故障是失敗的原因,可以是系統內部或外部的。錯誤是故障和失敗之間的中間狀態。

7.2 預防故障

預防故障是確保 AI 系統可靠性的關鍵一步。這涉及模型選擇和準備、架構選擇以及過程活動。

7.2.1 模型選擇和準備

選擇一個能夠代表實際資料分佈的訓練資料集,可以使模型產生可靠的輸出。一些模型天生更能夠抵禦分佈變化,特別是如果它們被設計和訓練為能夠處理這種情況。具有良好泛化性質的模型,例如正則化線性模型、剪枝決策樹或具有適當深度和寬度的深度神經網路,可以提供可靠性。

隨著 AI 應用日益普及,對系統可靠性的要求也越來越高。本文深入探討了 AI 系統監控、分析及可靠性的關鍵導向,涵蓋概念漂移、模型更新、持續佈署、營運監控以及泛化能力、抗擾能力和韌性等核心概念。分析顯示,模型的選擇與準備、架構設計以及流程管理是確保 AI 系統可靠性的重要環節。技術限制依然存在,例如如何有效偵測和應對概念漂移,以及如何在模型更新與系統穩定性之間取得平衡。然而,混沌工程等新興技術也為提升 AI 系統韌性提供了新的途徑。玄貓認為,構建可靠的 AI 系統需要從全生命週期角度出發,整合監控、分析和可靠性工程的最佳實踐,才能真正將 AI 技術的潛力轉化為商業價值。未來,隨著模型可解釋性和可驗證性技術的發展,AI 系統的可靠性將進一步提升,推動 AI 在更多關鍵領域的應用。