人工智慧系統的品質並非單純取決於模型的準確度,而是涵蓋整個系統的生命週期,從設計到佈署,以及後續的維護和更新。系統的軟體架構設計至關重要,它決定了系統的可擴充套件性、可維護性和效能,並直接影響系統能否滿足預期的品質屬性。此外,資料品質也是影響模型品質的關鍵因素,高品質的資料才能訓練出可靠且穩定的模型。後續章節將深入探討如何有效結合生命週期過程、軟體架構和人工智慧模型,以確保系統的整體品質。
人工智慧工程的系統品質實作
人工智慧工程是將軟體工程的原則和技術應用於設計、開發和操作人工智慧系統的過程。這個定義強調了將既定的軟體工程實踐整合到人工智慧系統的開發生命週期中的重要性。它認識到,儘管人工智慧系統具有其獨特的特徵,但仍然可以從傳統軟體工程中演變出的嚴格方法論和最佳實踐中受益。
實作系統品質
一個系統是為了滿足某些組織目標而構建的。該系統可能是外部導向的,也可能是為了內部目的而設計的。不論哪種情況,操作目標都可以以一組品質目標或要求的形式體現出來。這些要求可能是明確的,也可能是隱含的,但它們始終存在。例如,效能要求將有助於確定使用者可以多快地完成其所需的任務。
在人工智慧系統中實作品質主要取決於三個方面:生命週期過程、軟體架構和人工智慧模型。人工智慧模型的品質反過來又取決於資料品質。圖 1.1 顯示了這三個方面,我們將資料品質的討論推遲到第 1.5.1 節。程式碼、組態和使用者介面設計等所有檔案的品質當然很重要,並且與所有這些方面都有互動作用,但它們超出了本文的範圍。
圖 1.1 展示了實作系統品質的影響因素。
我們將在後面的章節中詳細討論這些影響因素。
品質屬性和要求
系統上的品質要求被正式化為品質屬性。“品質屬性(QA)是一個可衡量或可測試的系統屬性,用於指示系統如何滿足其利益相關者的需求,超出了系統的基本功能。”因此,品質屬性要求是一個對系統品質的要求,它具有可衡量或可測試的條件。單純地說“一個系統應該具有高用性”是不夠的。該要求應該給出可用性的條件、可用性的威脅來源以及期望的系統回應具有一些可衡量的特徵。
《軟體架構實踐》,第 4 版,第 39 頁。
系統可能對人工智慧和非人工智慧部分都有品質要求。人工智慧部分可能包括輸出品質期望,例如準確性、穩健性、公平性和其他對所使用的人工智慧模型或其輸出的強制限制。非人工智慧部分具有效能、安全性、可用性和可修改性的屬性要求。第 7-11 章列舉了一系列人工智慧系統中常見的品質屬性和要求。
人工智慧系統的品質屬性與生命週期
在人工智慧(AI)系統的開發過程中,品質屬性和生命週期是兩個非常重要的方面。品質屬性包括了系統的可靠性、安全性、效能等多個方面,而生命週期則涵蓋了系統從設計到佈署和營運的整個過程。
品質屬性
人工智慧系統的品質屬性包括了多個方面,例如可靠性、安全性、效能等。其中,安全性是人工智慧系統中的一個非常重要的品質屬性,因為人工智慧系統可能會面臨各種攻擊和威脅。例如,攻擊者可能會嘗試使用惡意的訓練資料來改變系統的行為。
為了增強人工智慧系統的安全性和可靠性,開發人員可以採用多種策略,例如使用更好的訓練資料、改進模型的訓練演算法、以及使用更好的系統級方法。另外,開發人員還需要考慮到系統的可擴充套件性和維護性,以確保系統可以在長期內保持穩定和高效的營運。
生命週期
人工智慧系統的生命週期包括了設計、開發、測試、佈署和營運等多個階段。在設計階段,開發人員需要決定哪些功能由人工智慧模型實作,哪些功能由傳統軟體實作。同時,開發人員還需要設計系統的軟體架構,以確保系統可以滿足要求和目標。
在開發階段,開發人員需要選擇合適的人工智慧模型,然後進行模型的訓練和調優。同時,開發人員還需要開發其他功能和模組,以確保系統可以正常營運。
在測試階段,開發人員需要對系統進行全面測試,以確保系統可以正常營運和滿足要求。在佈署階段,開發人員需要將系統佈署到生產環境中,並確保系統可以正常營運。
在營運階段,開發人員需要監控系統的營運情況,然後進行維護和更新,以確保系統可以在長期內保持穩定和高效的營運。
內容解密:
- 人工智慧系統的品質屬性包括了可靠性、安全性、效能等多個方面。
- 安全性是人工智慧系統中的一個非常重要的品質屬性。
- 開發人員可以採用多種策略來增強人工智慧系統的安全性和可靠性。
- 人工智慧系統的生命週期包括了設計、開發、測試、佈署和營運等多個階段。
- 開發人員需要考慮到系統的可擴充套件性和維護性,以確保系統可以在長期內保持穩定和高效的營運。
圖表翻譯:
graph LR A[設計] --> B[開發] B --> C[測試] C --> D[佈署] D --> E[營運]
圖表描述了人工智慧系統的生命週期,包括了設計、開發、測試、佈署和營運等多個階段。每個階段都有其特定的任務和目標,以確保系統可以正常營運和滿足要求。
圖表解說:
- 設計階段:決定哪些功能由人工智慧模型實作,哪些功能由傳統軟體實作。
- 開發階段:選擇合適的人工智慧模型,然後進行模型的訓練和調優。
- 測試階段:對系統進行全面測試,以確保系統可以正常營運和滿足要求。
- 佈署階段:將系統佈署到生產環境中,並確保系統可以正常營運。
- 營運階段:監控系統的營運情況,然後進行維護和更新,以確保系統可以在長期內保持穩定和高效的營運。
軟體生命週期與設計
軟體生命週期是指軟體從概念到交付的整個過程,包括需求收集、設計、實作、測試、佈署、營運和維護等階段。在這個過程中,軟體架構扮演著至關重要的角色,決定了軟體的可擴充套件性、可維護性和效能。
測試系統
在軟體建構完成後,需要進行全面性的測試,以確保軟體的功能、效能和可靠性。測試階段包括多種型別的測試,如迴歸測試、冒煙測試、相容性測試、整合測試、功能測試、可用性測試和安裝/解除安裝測試等。這些測試有助於確保軟體符合需求和標準。
佈署系統
佈署階段涉及將軟體系統移到生產環境中,並確保其準備好投入營運。這包括最終的品質閘門,可能是自動化或手動活動。同時,也需要考慮到人工智慧(AI)部分和非 AI 部分的更新策略,例如如何進行關機更新或線上更新。
營運和監控系統
一旦軟體系統佈署完成,就會進入營運和監控階段。在這個階段,系統會被執行,並收集其營運資料。監控目的是多方面的,包括評估系統是否達到效能和可用性目標,確保 AI 部分達到其特定品質目標,以及確保系統各部分有足夠的資源等。監控可以透過儀表化和外部系統週期性收集資料來實作,也可以透過系統內部的專用元件來完成。
分析系統
最終階段是分析系統的效能,透過顯示營運和監控階段收集的資料,並分析資料以深入瞭解系統的行為和效能。這有助於找出需要改進的領域,並指導未來的開發工作。
軟體架構設計
設計軟體系統意味著建立架構,即建立系統元素和關係的結構。軟體架構決定了軟體的結構和各個元件之間的關係,直接影響到軟體的可擴充套件性、可維護性和效能。因此,軟體架構設計是一個至關重要的階段,需要仔細考慮各個因素,以確保軟體系統能夠滿足需求和標準。
內容解密:
在軟體生命週期中,各個階段都需要仔細考慮和設計,以確保軟體系統能夠滿足需求和標準。從需求收集到佈署,從營運到維護,每個階段都需要精心設計和實施。同時,軟體架構設計是整個過程中的關鍵環節,決定了軟體的結構和各個元件之間的關係。透過對軟體生命週期和架構設計的深入理解,可以建立出高品質的軟體系統,滿足使用者需求並推動業務發展。
圖表翻譯:
下面是一個簡單的 Mermaid 圖表,示範了軟體生命週期的各個階段:
flowchart TD A[需求收集] --> B[設計] B --> C[實作] C --> D[測試] D --> E[佈署] E --> F[營運和監控] F --> G[分析]
這個圖表展示了軟體生命週期的主要階段,從需求收集到分析,每個階段都緊密相連,共同組成了軟體生命週期的整個過程。
從技術架構視角來看,構建高品質的人工智慧系統需要軟體工程與 AI 技術的深度融合。本文深入探討了實作系統品質的三個關鍵要素:生命週期過程、軟體架構和 AI 模型,並強調了資料品質的重要性。透過分析軟體生命週期各階段(設計、開發、測試、佈署、營運及監控),可以發現有效管理 AI 模型的品質屬性(例如準確性、穩健性、公平性等)是確保系統整體品質的關鍵。然而,目前 AI 模型的可解釋性和可控性仍存在挑戰,這也限制了 AI 系統在某些關鍵領域的應用。未來發展趨勢將聚焦於可解釋 AI、模型驗證和自動化測試等技術,以提升 AI 系統的可靠性和安全性。玄貓認為,系統性地整合軟體工程方法和 AI 技術,並重視資料品質管理,是構建高品質 AI 系統的必由之路。對於企業而言,應優先建立完善的 AI 工程流程,並將品質屬性融入到系統設計的每個環節,才能最大化 AI 技術的商業價值。