隨著人工智慧系統日益普及,處理模型固有的不確定性以及評估潛在風險變得至關重要。這需要仔細考量人類價值觀和安全性等因素,並將其融入系統設計中。軟體架構在構建 AI 系統時扮演著關鍵角色,它必須能滿足系統的可擴充套件性、可靠性和安全性等非功能性需求。此外,DevOps 和 MLOps 的實踐能有效提升系統的交付速度和品質,確保模型的可靠佈署和維運。在實際佈署方面,分散式計算和雲端環境為 AI 系統提供了必要的基礎設施。

處理不確定性

非符號人工智慧(AI)模型本質上是機率性的,這意味著模型輸出的正確性存在一定的不確定性。這種不確定性可能是小的,但仍需要被考慮和評估,特別是在構建系統時。因此,對於 AI 風險評估、負責任的 AI、AI 安全性、標準遵從性和監管合規性的重視程度正在增加。

由於 AI 系統內在的不確定性,組織應該進行風險評估,以評估所構建系統的使用風險。這種風險評估應該考慮人類價值觀和 AI 安全性等因素。

人類價值觀

一些 AI 系統是不可預測和自主的,它們的不可預測行為需要風險評估,以評估這些系統違反道德行為的影響和可能性。在後續章節中,我們將關注可靠性、安全性、隱私和公平等關鍵品質屬性。對於任何系統,這些品質屬性之間存在著權衡和取捨,設計決策應反映系統優先順序和取捨應該是有意識的。

安全性

安全性是 AI 系統中的一個日益重要的問題。最初,安全性主要關注個體的物理和心理安全,現在則擴充套件到 AI 系統具有危險能力的問題,例如化學、生物、放射和核(CBRN)方面的問題,還包括了網路安全、更廣泛的社會危害(例如大規模誤導/虛假資訊)、AI 可控性,甚至對人類的生存威脅。

這種變化反映了安全性的含義現在更多地關注 AI 系統風險的嚴重程度,而不是風險的型別。因此,我們沒有單獨的一章節來討論 AI 安全性,因為我們相信,架構和 DevOps 方法對於評估和實作品質屬性的方法是最終減少 AI 系統風險和降低其到可接受水平的有效途徑,考慮到組織或更廣泛社會的風險承受能力。

軟體工程與人工智慧系統的基礎

在深入探討人工智慧工程之前,瞭解分散式計算、DevOps 和 MLOps 的背景知識至關重要。本章將涵蓋這些主題,同時強調它們與人工智慧系統的關聯。首先,讓我們從軟體工程的基礎開始。

分散式計算與軟體架構

分散式計算是一種計算模式,其中多個電腦或節點共同工作以完成一個共同的任務。軟體架構是指設計和組織軟體系統的結構和行為。一個良好的軟體架構應該能夠滿足系統的品質屬性要求,例如可擴充套件性、可靠性和安全性。

在設計人工智慧系統時,軟體架構扮演著至關重要的角色。它需要考慮模型型別、訓練資料和訓練演算法的選擇,以確保模型的品質。資料準備是確保模型品質的重要步驟,包括資料清理和特徵工程。

DevOps 和 MLOps

DevOps 是一種軟體開發方法,強調開發和營運團隊之間的合作,以提高軟體系統的品質和交付速度。MLOps 則是 DevOps 在機器學習領域的應用,旨在提高機器學習模型的品質和交付速度。

在人工智慧系統中,DevOps 和 MLOps 可以幫助提高系統的品質和可靠性。透過使用 DevOps 和 MLOps,開發人員可以更快速地交付高品質的人工智慧系統,並確保系統的可靠性和安全性。

人工智慧模型和風險評估

人工智慧模型可以分為三類別:符號模型、狹義機器學習模型和基礎模型。基礎模型和狹義機器學習模型都是機器學習模型的特殊型別。由於人工智慧模型的機率性質,組織應該進行風險評估,以評估人工智慧模型和系統的錯誤輸出對組織的影響。

討論問題

  1. 評估軟體架構、DevOps、人工智慧系統和人工智慧工程的定義,是否涵蓋了所需的內容並排除了不需要的內容。
  2. 試問你的雲端服務提供商如何收費不同型別的資源和服務,以及如何影響系統設計。
  3. 問你的最愛語言模型描述它與其競爭對手之間的差異,你如何看待這些回應。

進一步閱讀

更多關於軟體架構的內容可以在《軟體架構實踐》中找到。DevOps 的定義可以在《DevOps:建築師視角》中找到。有關佈署和營運的詳細內容可以在《佈署和營運為軟體工程師》中找到。《 Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow》提供了一般性的機器學習概念介紹。《負責任的人工智慧:建立可信任的人工智慧系統最佳實踐》提供了有關負責任的人工智慧的最佳實踐。

分散式計算與雲端環境

在人工智慧(AI)系統的開發中,分散式計算是一個不可或缺的部分。由於 AI 系統需要大量的計算資源和高效的資料處理,分散式計算提供了一種動態組態資源的方式,以滿足系統的需求。因此,我們假設您的 AI 系統將佈署在雲端環境中,無論是公有雲還是私有雲。

虛擬機器和容器

雲端計算根據虛擬化的概念,虛擬資源(如虛擬機器)提供給雲端客戶,抽象化物理資源,增加了靈活性。虛擬機器(VM)是一種軟體建構,它向載入的軟體暴露 CPU、記憶體、磁碟和網路連線等資源,使其看起來像是在物理電腦上執行。每個 VM 執行自己的作業系統(OS),並由稱為 hypervisor 的專用作業系統控制。一個物理電腦可以主機多個 VM,每個 VM 都有自己的內部作業系統。

另一方面,容器是一種機制,可以維持虛擬化的優點(如隔離),同時減少映像傳輸時間和啟動時間。容器是封包服務和其依賴函式庫的可執行映像,執行在容器引擎的控制下。容器引擎使用 Linux 功能提供隔離,例如 Linux 控制群組設定資源利用限制,Linux 名稱空間防止容器看到其他容器。

訊息傳遞

在分散式系統中,訊息傳遞是一個重要的概念。訊息是一個從一個服務中的函式傳遞給另一個服務中的函式的資訊集合,通常透過網路傳遞。接收者通常由 IP 地址和埠號識別,每個服務在佈署時都會被指派一個 IP 地址。每個函式在服務中通常會傾聽一個埠。

訊息層可以分為多個層,每一層都有其自己的目的和格式。資料連結層負責在物理網路上傳輸訊息,網際網路層負責將其交付給正確的 VM 或容器,傳輸層則負責將其交付給服務中的函式。應用層提供了允許特定應用型別(如電子郵件或網頁內容)相互作用的協定。

RESTful API

RESTful API 是一種常用的應用層協定,允許不同服務之間相互互動。RESTful API 使用 HTTP 協定,包括 GET、POST、PUT 和 DELETE 等動詞,來操作資源。例如,GET 請求可以用於檢索資源,POST 請求可以用於建立新資源,PUT 請求可以用於更新現有資源,而 DELETE 請求可以用於刪除資源。

在 AI 系統中,RESTful API 可以用於提供模型訓練、預測和評估等功能。例如,客戶端可以向服務傳送 GET 請求,以檢索模型的預測結果,或傳送 POST 請求,以提交新的訓練資料。

隨著 AI 應用日益普及,處理模型固有的不確定性成為 AI 工程的核心挑戰。深入剖析 AI 模型的機率性本質,可以發現風險評估、安全性和人類價值觀考量的重要性與日俱增。技術堆疊的各層級協同運作中體現,從底層的分散式計算、雲端基礎設施到上層的應用程式介面,都必須以安全性、可靠性和可控性為核心設計原則。

多維比較分析顯示,軟體工程的傳統方法論需要針對 AI 系統的獨特性進行調整。例如,DevOps 和 MLOps 的整合,旨在加速模型開發和佈署的同時,更需強化模型的可解釋性和可追溯性,以降低潛在風險。技術限制深析指出,AI 模型的「黑盒子」特性,增加了風險評估的難度。目前,針對模型偏差、公平性和透明度的研究方興未艾,預計將成為未來技術突破的關鍵。

展望未來 3-5 年,模型可解釋性、AI 安全性和倫理規範將成為技術演進的主導方向。跨領域技術融合的趨勢判斷顯示,區塊鏈技術、聯邦學習等新興技術,有望為提升 AI 系統的信任度和安全性提供新的解決方案。隨著生態系統日趨完善,我們預見 AI 風險管理將從被動應對轉為主動預防,進而推動 AI 應用更廣泛地落地。玄貓認為,技術團隊應著重於解決模型可解釋性和安全性這兩項核心挑戰,才能釋放 AI 技術的完整潛力,並構建真正可信賴的 AI 系統。