隨著資料量和模型複雜度的提升,機器學習模型的訓練和佈署已成為關鍵挑戰。訓練階段需要大量的計算資源,而佈署階段則需考量模型大小、效能和可維護性。模型訓練方法包含監督式、非監督式和自監督式學習,各有其適用場景。現代機器學習仰賴框架和函式庫簡化開發流程,並透過模型註冊管理模型版本和生命週期。模型佈署則涉及推理引擎的整合,可透過將模型封裝成服務,提供 REST API 或 GraphQL 介面供外部呼叫,並使用 Docker 等容器技術提升佈署效率和可移植性。

模型訓練完成後,效能驗證至關重要。評估過程涵蓋模型準確度、品質屬性及潛在風險。準確度測試使用測試集和評估指標,如精確率、F1 值或領域特定指標,量化模型效能。品質評估則關注模型的健壯性、安全性、公平性和可解釋性,並探討其對社會的影響,例如偏差或歧視。風險評估則分析模型可能帶來的危害,例如對抗攻擊的脆弱性。影響評估則著眼於模型的長期社會影響,包含經濟、社會和環境層面。整合這些評估導向,才能確保模型兼具技術效能和社會責任。

機器學習模型的訓練與佈署

機器學習模型的訓練過程通常需要大量的資料和計算資源。例如,在血壓預測的例子中,可能需要數百萬個資料點來訓練模型。儲存和處理這些訓練資料,同時進行訓練過程,需要大量的資源。然而,一旦模型訓練完成,模型本身可能只需要很少的資源就可以執行。例如,一個簡單的線性迴歸模型可能只需要很少的引數就可以完成。

但是,對於更複雜的模型,如深度神經網路,執行過程仍然需要大量的資源,即使是在訓練完成後。這種資源需求的差異對於系統架構的設計有重要的影響。簡單的模型可以佈署在輕量級的裝置上,而更複雜的模型可能需要更強大的基礎設施。

機器學習模型的訓練方法

機器學習模型可以透過三種主要方法進行訓練:監督式學習、非監督式學習和自監督式學習。監督式學習涉及使用標記過的資料進行模型訓練,例如使用標記為「欺詐」或「合法」的交易資料來進行欺詐檢測。非監督式學習不使用標記,允許模型自行發現模式,並且在客戶分段等任務中很有用。自監督式學習允許模型建立自己的標記,這是一種常見於語言處理任務的技術。

工具支援

手動編寫模型訓練程式碼是可能的,但在現代機器學習中很少使用。機器學習框架提供了這些功能,意味著開發人員不需要編寫訓練演算法。他們可以選擇一個框架和所需的函式庫函式來透過一些組態和高階編碼訓練模型。

模型註冊

模型註冊是一個集中式倉函式庫,用於管理機器學習模型的生命週期。它作為一個系統,用於儲存、版本控制和跟蹤模型的相關資訊,從開發到佈署和維護。其主要目的是簡化模型管理並保持模型演化的記錄。模型註冊的核心功能包括版本控制、資訊管理、模型階段和生命週期管理、存取控制和安全。

建立模型

一旦模型訓練完成,就由最佳化引數(或模型權重)、定義其結構和行為的模型架構以及執行所需的組態設定組成。然而,訓練好的模型本身不包括推理引擎,用於對新資料進行預測或分類別。但是,它通常佈署在一個推理框架或系統中,作為推理引擎。這個推理引擎負責將訓練好的模型應用於新輸入資料,無論是實時還是批次處理,以生成輸出,如預測或分類別。例如,當收到一封新郵件時,推理引擎會使用訓練好的模型對郵件進行分類別。

內容解密

上述內容解釋了機器學習模型的訓練過程、工具支援、模型註冊和建立模型的步驟。瞭解這些概念對於開發和佈署機器學習模型至關重要。透過選擇合適的框架和工具,開發人員可以更高效地訓練和佈署模型,並利用模型註冊來管理模型的生命週期。

圖表翻譯

  graph LR
    A[資料收集] --> B[資料預處理]
    B --> C[模型訓練]
    C --> D[模型評估]
    D --> E[模型佈署]
    E --> F[推理引擎]
    F --> G[預測或分類別]

上述 Mermaid 圖表展示了機器學習模型從資料收集到預測或分類別的整個流程。每一步驟都對應著特定的過程,從資料收集開始,到最終的預測或分類別結果。這個圖表有助於視覺化機器學習流程,並理解不同步驟之間的關係。

使用訓練模型進行垃圾郵件篩選

在使用線性迴歸演算法的情況下,模型是一組係數,用於乘以獨立變數,然後將結果加總起來。這個計算的結果是一個預測值。模型由一組係陣列成,可以由玄貓使用,進行計算,並產生預測值作為輸出。

模型可以被封裝為一個程式,直接被呼叫。在這種情況下,模型的程式語言必須與呼叫者相容。模型也可以被封裝為一個服務,佈署在容器或虛擬機器中。在這種情況下,模型的程式語言不重要,因為與模型的溝通是透過網路上的伺服器端點傳送訊息進行的。

獲得語言靈活性是佈署模型為服務時的一個考慮因素。

服務包裝器提供了必要的介面和協定,允許外部客戶端透過玄貓呼叫模型的能力。構建和發布過程因此涉及將推理引擎封裝在一個可以輕鬆存取和使用的服務中。

有三個關鍵方面需要考慮:

  1. 服務可以在 REST 介面後面。使用一個類別比,模型可以被視為一個資源表示或一個資料函式庫,客戶端提供搜尋/請求引數,資料函式庫/表示傳回相關值。REST 介面根據資料函式庫的基本操作 CRUD(建立、讀取、更新、刪除),如我們在第 2 章軟體工程背景中所討論的。

將模型視為資料函式庫提供了一個使用 REST 的良好契合度。GraphQL 是一種 REST 的適應,提供了一種查詢語言,指定了哪些輸出是由玄貓期望的。

  1. 服務應該被封裝為一個容器,其客戶端只允許透過伺服器端點訊息進行溝通。模型通常是微服務架構中的微服務的一部分。

  2. 服務應該支援查詢版本資訊和其他後設資料資訊。每個模型都依賴於其訓練和評估資料,以及實作訓練演算法和其組態(例如學習引數或超引數)的原始碼。這些資訊通常儲存在模型登記表中,可以被包裝器存取,以便傳回給客戶端。

可以有多個活躍的模型和多個活躍的程式碼元素版本,同時存在。一種管理版本問題的機制是由玄貓實作的。

測試模型

在佈署模型之前,需要對其進行徹底的測試,以確保其準確性和可靠性。測試過程涉及使用一組已知輸入和輸出來評估模型的效能,並根據需要進行調整和最佳化。

內容解密:

  • 線性迴歸演算法是一種監督式學習方法,用於預測連續輸出變數。
  • 模型可以被封裝為一個程式或服務,以便於佈署和使用。
  • 服務包裝器提供了必要的介面和協定,允許外部客戶端呼叫模型的能力。
  • REST 介面和 GraphQL 是兩種常用的服務介面風格。
  • 服務應該被封裝為一個容器,其客戶端只允許透過伺服器端點訊息進行溝通。
  • 服務應該支援查詢版本資訊和其他後設資料資訊。

圖表翻譯:

  graph LR
    A[模型] -->|封裝|> B[服務]
    B -->|REST介面|> C[客戶端]
    C -->|查詢|> D[模型]
    D -->|傳回|> E[結果]

圖表描述了模型被封裝為服務,並透過 REST 介面提供給客戶端呼叫的過程。客戶端可以向模型傳送查詢請求,模型傳回結果給客戶端。

人工智慧模型評估與測試

在開發非人工智慧模組的過程中,個別模組會被單獨進行單元測試,然後在系統建構完成後,再將這些單元測試作為系統測試的一部分。同樣地,人工智慧模型也會經歷這個過程。模型會被獨立測試,然後在整合到整個系統後,再次進行測試。在本文中,我們將討論人工智慧模型在獨立情況下的測試。

5.3.1 人工智慧評估與測試相關術語

在機器學習(ML)中,模型評估通常指的是在訓練後評估模型的準確度,通常透過交叉驗證和自助法(bootstrapping)來實作。模型測試是指使用一個單獨的測試資料集來評估模型的準確度,以便在佈署前進行驗證。在系統層面上,這些術語具有更廣泛的含義。評估成為了一個綜合的過程,涵蓋了不同的評估策略,如模型/系統評估、測試和基準測試(benchmarking)。此外,對於人工智慧模型/系統的評估還延伸到準確度之外,涵蓋了其他品質屬性和風險、正確性以及超越單純功能任務的更廣泛能力。 品質屬性是描述人工智慧系統整體品質和效能的非功能性方面,強調即時結果。相反,風險評估關注的是潛在的即時危害,而影響評估則強調更長期和更廣泛的影響。準確度被視為任務完成的忠實度,涵蓋了不僅僅是統計精確度還有人工智慧模型或系統如何完成其任務的程度。正確性強調系統層面的操作完整性,關乎系統是否滿足其指定的功能和使用者期望。能力評估延伸到既定的功能和潛在的功能,包括可能危險的功能,透過玄貓的適應性和演化超越初始訓練。風險評估是一個系統性的過程,用於識別和評估事件或行動在人工智慧系統中可能導致危害的可能性和潛在後果。影響評估是一個系統性的過程,用於識別和評估人工智慧系統可能對個體、社群和社會產生的更廣泛和更長期的影響,跨越經濟、社會和環境維度。 基準測試作為一種評估方式,不僅僅涉及準確度還包括了對多個品質和風險考慮的綜合分析,對於根據功能性測試(FM)的系統尤其有用。

5.3.2 評估機器學習模型

機器學習模型既被評估其準確度也被評估其品質和風險因素。

  • 模型準確度測試:使用選定的測試案例來測試模型的準確度,這些案例構成了一個測試套件。一個測試套件可以包括反映真實世界複雜性的測試資料集,以及用於量化準確度的評估指標或基準。指標可能是通用的,如精確度和 F1 得分,或是特定於某個領域的,如語言翻譯中的 BLEU。
  • 品質和風險評估:品質評估分析了特定的品質屬性,如健壯性、安全性、公平性和可解釋性。這些屬性是必要的,以確保模型按照預期運作並滿足倫理考慮。此外,品質評估還探討了這些屬性如何影響更廣泛的風險和社會影響,如對抗攻擊和對社會不平等的偏見。 整合風險和影響評估提供了品質屬性和風險之間相互作用的整體視角,旨在使模型既符合技術卓越又符合社會期望。

自動化測試可以用來確保人工智慧模型可以…(待續)

隨著機器學習應用日益普及,模型訓練與佈署已成為企業數位轉型關鍵環節。深入剖析模型生命週期,從資料收集、預處理、訓練、評估到佈署,每個階段都環環相扣,影響最終成效。本文探討了不同訓練方法(監督式、非監督式、自監督式學習),以及模型註冊、構建、服務化與測試等重要環節。分析顯示,模型複雜度與資源需求密切相關,輕量級模型可佈署於邊緣裝置,而複雜模型則需仰賴強大基礎設施。服務化封裝、版本控制與 RESTful API 設計則有助於提升模型佈署的彈性與可擴充套件性。

然而,模型的準確度評估僅是冰山一角,更全面的評估應涵蓋品質屬性(如穩健性、安全性、公平性與可解釋性)、潛在風險與更廣泛的社會影響。技術限制深析顯示,模型訓練的資料偏差、過擬合問題以及可解釋性不足仍是當前挑戰。此外,模型佈署後的持續監控、版本更新與效能最佳化亦不容忽視。對於資源有限的企業,建議優先關注模型的可解釋性與穩健性,並採用漸進式佈署策略,逐步驗證模型效能。

模型輕量化、自動化機器學習 (AutoML) 與聯邦學習等技術將持續發展,進一步降低模型開發與佈署門檻。隨著模型評估標準趨於多元化,涵蓋倫理、社會責任等導向,我們預見模型治理與可信 AI 將成為未來技術發展的核心。玄貓認為,企業應積極探索新興技術,並建立完善的模型生命週期管理機制,才能在日益激烈的市場競爭中脫穎而出。