本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
5. 持續整合
ML 系統會執行測試,以驗證系統是否從端對端運作,並檢查可能的故障點。測試會在遞交時自動執行,而較長的測試則會在固定排程中執行。測試會檢查傳統軟體工程區域,例如單位和系統層級。此外,測試會檢查資料、功能和模型來擷取 ML 的詳細資訊。
5.1 本機程式碼檢查 |
在將程式碼遞交至集中式程式碼儲存庫之前,開發人員會在本機執行檢查,例如基本單元測試和靜態分析。在遞交之前執行這些檢查可提高整體程式碼品質,並在進入版本控制之前攔截問題。 |
5.2 靜態程式碼分析 |
中央程式碼儲存庫具有可在遞交時快速執行的靜態程式碼分析工具。此工具應改善程式碼樣式和格式。它還應該檢查來源和基礎設施程式碼中的常見安全漏洞、常見錯誤,以及程式碼中的其他弱點。 |
5.3 資料品質測試 |
資料品質測試至少應該檢查資料是否未違反固定結構描述。更全面的方法是擷取時運算資料統計資料、設定資料限制,以及對這些資料執行測試。 您可以獨立或作為管道的一部分來設定資料品質測試。統計資料和限制條件會重複使用進行監控。 |
5.4 功能測試 |
作為完整管道的一部分,會產生功能重要性。功能測試會宣告功能的重要性或模型的特徵值屬性方式不會變更。特徵測試可以饋入監控,因為它們可以提醒和追蹤模型輸入中的違規。 |
5.5 單位測試 |
在遞交和遞交之前執行所有程式碼的單位測試,包括模型、應用程式和基礎設施。每個單元測試都會對重要的程式碼進行檢查,以確認其如預期般運作。在 ML 程式碼的情況下,測試可以執行演算法正確性。 |
5.6 整合測試 |
整合測試會驗證管道是否已成功端對端執行,包括為管道建立相關聯的基礎設施。此測試會驗證系統是否如預期般運作和記錄。如果部署是分開的,也應對此進行end-to-end測試,以確保部署正常運作。 |
5.7 煙霧測試 |
系統具有煙霧測試,可在每個功能小幅和快速迴歸中執行。煙霧測試是持續整合的一部分,可以在容器化環境中執行,以模擬雲端功能。 |
5.8 負載測試 |
已進行隨需負載測試。除了擷取 ML 系統在高負載和低負載下的行為之外,負載測試還提供全系統輸送量或延遲的統計資料。透過負載測試收集的資料提供有關資源大小和擴展政策的資訊。 |
5.9 模型功能測試 |
模型輸出和輸入會透過自動化功能測試執行。若要檢查 功能中的行為,模型的輸出和輸入都會在真實或仿造資料上測試,並提供基本範例。 |
5.10 具有極端案例的模型推論測試 |
作為最低功能測試的一部分,模型測試應在提升模型之前,根據特定輸入檢查極端行為。這會放置額外的護欄,以協助防止意外行為。 |