軟體工程在建構高品質 AI 系統中扮演關鍵角色,不僅需要高效能的 AI 模型,穩固的軟體架構、合理的開發流程以及有效的測試和佈署機制同樣至關重要。系統效能不僅指執行速度,也包含從開發到佈署的整體流程效率。品質屬性如可靠性、效能、安全性、隱私性等也需納入考量,並理解它們之間的權衡取捨,例如提升某一屬性可能犧牲其他屬性。DevOps 實踐能縮短變更佈署至生產環境的時間,同時確保高品質,其核心概念在於自動化測試、品質保證和監控。AI 工程則著重於將軟體工程原則應用於 AI 系統開發,包含模型選擇、訓練、最佳化、測試和佈署,目標是建立兼具準確性和可靠性、效能、安全性的高品質 AI 系統。

資訊系統的效能與品質

在軟體開發領域中,DevOps 專家將效能視為系統透過佈署Pipeline的速度。這意味著,系統的效能不僅僅關乎其執行速度,還關乎其從開發到佈署的整體過程。

為了滿足不同讀者的需求,本文的內容將根據讀者的背景 knowledge 進行調整。有些內容可能對某些讀者來說是熟悉的,而對其他讀者來說則不熟悉。因此,我們不期望所有讀者都從頭到尾地閱讀本文。相反,我們鼓勵讀者快速瀏覽過自己已經熟悉的內容,以便更好地掌握整體結構。

每個章節的結尾都會有一個摘要,方便讀者快速瀏覽並確定是否需要補充某些知識。這樣可以幫助讀者更有效地利用時間和精力。

品質系統的建構

建構高品質的系統需要深入瞭解品質的本質。我們將在後面的章節中討論不同的品質屬性,包括可靠性、效能、安全性、隱私性、公平性、可觀察性和適應性。每個章節都會描述所討論的品質屬性,並找出實作該品質的關鍵元素,無論是透過軟體架構、資料準備還是 DevOps 流程。

然而,品質屬性之間存在著權衡取捨。設計師需要做出有利於某一品質屬性的決定,而這可能會犧牲其他品質屬性。這些取捨取決於系統的商業目標,因此在做出影響品質屬性的決策時,需要考慮到實作某一品質的成本和可能犧牲其他理想品質。

案例研究

案例研究提供了一種優秀的方式來瞭解如何建構系統以及在做出關鍵決策時需要考慮的取捨。我們在本文中包含了三個案例研究,其中兩個涉及 FM(功能性模型),一個是使用 FM 完成困難任務,另一個是將 FM 作為服務並支援希望利用 FM 技術的組織。還有一個根據傳統機器學習模型的銀行案例研究。

建構大型 AI 系統

建構大型根據 AI 的系統是一項艱鉅的任務,需要理解多種不同的技術。我們的目標是透過本文幫助您更好地理解這些技術,並在您的學習旅程中提供指導。

章節概覽

  • 第 1 章:介紹
    • “科學關乎知識;工程關乎實踐。” 這句話體現了我們對於軟體開發和 AI 系統建構的態度。透過本文,我們將引導您瞭解如何將知識轉化為實踐,建構出高效能和高品質的 AI 系統。

人工智慧系統工程:整合軟體工程與 AI 的新時代

人工智慧(AI)已成為當今科技界最熱門的話題之一,但要打造高品質的 AI 系統,僅僅依靠 AI 技術是不夠的。軟體工程(Software Engineering,SE)在這個過程中扮演著至關重要的角色。因為 AI 系統不僅需要高品質的 AI 模型,也需要一個穩固的軟體架構、合理的開發流程以及有效的測試和佈署機制。

什麼是 AI 系統?

根據定義,AI 系統是一種機器基礎的系統,它能夠根據輸入資料進行推斷,從而生成預測、內容、推薦或決策等輸出。這些輸出可以影響物理或虛擬環境。不同的 AI 系統在自主性和適應性方面存在差異。

軟體架構的重要性

軟體架構是指系統中軟體元素、它們之間的關係以及這些元素的屬性的集合。它為我們理解系統提供了必要的結構。軟體架構中的屬性,例如可靠性、效能、安全性、隱私和公平性以及可觀察性,在確保系統品質方面發揮著關鍵作用。

DevOps:加速變更到生產的過程

DevOps 是一套實踐,旨在減少提交變更到系統和變更被放入正常生產之間的時間,同時確保高品質。它關注於如何快速將變更佈署到生產環境,而不犧牲品質。典型的 DevOps 實踐包括自動化測試、品質保證、設定和組態環境、監控等。

AI 工程:整合 AI 和軟體工程

AI 工程是指將軟體工程原則和方法應用於 AI 系統的開發和佈署。它涉及到 AI 模型的選擇和訓練、模型最佳化、測試和佈署等各個方面。AI 工程的目標是建立高品質的 AI 系統,這些系統不僅能夠提供準確的預測或決策,而且還能夠滿足可靠性、效能、安全性等多方面的需求。

AI 系統品質影響因素元件圖

圖表描述 (Alt Text): 此元件圖展示了構成高品質AI系統的幾個關鍵需求,包括高品質AI模型、穩固的軟體架構、合理的開發流程以及有效的測試與部署機制,這些因素共同影響最終的系統品質。

PlantUML 圖表

隨著人工智慧應用日益普及,AI 系統工程的重要性也日益凸顯。深入剖析 AI 系統的構建流程,可以發現軟體工程的原則和實踐扮演著至關重要的角色,而非僅僅關注 AI 模型本身的效能。多維比較分析顯示,相較於傳統軟體系統,AI 系統在可靠性、可維護性、可擴充套件性等方面面臨更大的挑戰,這也凸顯了整合軟體工程方法的必要性。技術限制深析指出,目前 AI 系統開發過程中缺乏標準化的流程和最佳實務,導致開發效率低下、品質難以保證。對於重視長期穩定性的企業而言,匯入 DevOps 和 AI 工程實踐,建立自動化的測試、佈署和監控流程,將有助於提升 AI 系統的效能和品質。玄貓認為,AI 系統工程是未來軟體工程發展的重要方向,技術團隊應著重於構建完善的開發流程和工具鏈,才能充分釋放 AI 的潛力。