5. 持續整合 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

5. 持續整合

ML 系統會執行測試,以驗證系統是否從端到端運作,檢查可能的故障點。測試在提交時自動運行,並且更長的測試是按固定的時間表運行。測試檢查傳統的軟件工程領域,如在單元和系統級別。此外,測試通過檢查數據,功能和模型來捕獲 ML 的詳細信息。

5.1 本機程式碼檢查

在將程式碼提交到集中式程式碼儲存庫之前,開發人員會在本機執行基本單元測試和靜態分析等檢查。在提交之前運行這些檢查可以提高整體代碼質量,並在進入版本控制之前捕獲問題。

5.2 靜態程式碼分析

中央代碼存儲庫具有靜態代碼分析工具,可在提交時快速運行。這個工具應該改善代碼樣式和格式。它還應該檢查源代碼和基礎架構代碼中是否存在常見的安全漏洞,常見錯誤以及代碼中的其他弱點。

5.3 數據質量測試

數據質量測試應該,在最低限度,檢查數據沒有違反固定模式。更全面的方法是在擷取時計算資料統計資料、設定資料限制,以及針對這些資料執行測試。

可以獨立設置數據質量測試或作為管道的一部分。統計資料和限制條件會重複用於監督。

5.4 功能測試

作為完整管線的一部分,會產生特徵重要性。特徵測試聲明特徵的重要性或模型歸因特徵值的方式不會改變。功能測試可以進入監控,因為它們可以警示和追蹤模型輸入中的違規情況。

5.5 單元測試

所有程式碼 (模型、應用程式和基礎結構) 的單元測試會在提交之前和提交時執行。每個單元測試提供了一個重要的代碼片段的檢查,以確認它的功能如預期。在 ML 代碼的情況下,測試可以運行算法的正確性。

5.6 整合測試

整合測試可驗證管線是否成功執行端對端,包括為管道設定關聯的基礎架構。此測試會驗證系統是否正常運作,並如預期進行記錄。如果部署是單獨的,也應該有一個端到端的測試,以確保部署工作。

5.7 煙霧測試

該系統具有煙霧測試,每個功能的迷你和快速回歸運行。煙霧測試是持續集成的一部分,可以在容器化環境中運行以模擬雲功能。

5.8 負載測試

按需負載測試已到位。除了擷取 ML 系統在高負載和低負載下的行為外,負載測試還提供全系統輸送量或延遲的統計資料。透過負載測試收集的資料提供有關資源大小和擴展政策的資訊。

5.9 模型功能測試

模型輸出和輸入通過自動化功能測試運行。若要檢查功能內的行為,模型的輸出和輸入都會以基本範例在真實或假資料上進行測試。

5.10 極端情況下的模型推斷測試

作為最低功能測試的一部分,模型測試應該檢查模型推廣之前給定某些輸入的極端行為。這會放置額外的護欄,以協助防止非預期的行為。