人工智能(AI) 已無處不在, AI正在為各行各業賦能,改變人們生活、生產的方式。然而,由于AI是一種新的編程范式,無論是學術界還是工業界,對于AI測試的研究還剛剛起步。
1. AI測試及挑戰
AI 作為一項變革性的技術已經滲透到了各行各業,隨著AI在各行各業的應用日益廣泛,對AI系統測試的需求也與日俱增。以自動駕駛為例,如果自動駕駛的智能系統做出錯誤的決策或響應時間慢,則將大大增加車禍的風險。類似地,金融領域AI的錯誤決策可能導致不可估量的經濟損失。
我們首先來分析為什么AI測評那么困難。經典的程序設計中,我們輸入的是規則(程序)和需要這些規則處理的數據,系統輸出的是答案。因此,經典的軟件測試,我們可以通過對比答案來驗證和確認程序的正確性。然而,數據驅動的AI系統,不是通過編寫明確的邏輯,而是通過數據來訓練程序,輸入是數據和從這些數據中預期得到的答案,AI系統輸出的是規則,這些規則可應用于新的數據,自動計算出答案??梢?,數據驅動的AI系統是一種新的編程范式,這種編程范式給測試帶來了極大的挑戰。
(1)AI系統輸出結果很難預測。比如,基于深度神經網絡的圖像分類問題,網絡的輸入是圖像(高維空間的分布),模型學到的規則是圖像中模式的統計規律,因此輸出的是圖像屬于某個類別的概率,這個概率值是無法事先預測的。
(2)AI系統測試通過的準則很難確定。比如,生成對抗網絡(GAN)中如何判定GAN生成圖像的質量與真實樣本足夠相似?這個問題,目前只能靠人眼主觀判定,定量測評方式的研究才剛剛起步。
(3)AI 系統的輸出結果隨時間變化。比如,推薦系統的準確率,在某一段時間可以滿足業務需求,但隨著用戶數據的變化,一段時間后其準確率可能會下降,而無法滿足需求,模型則需要重新訓練,重新評估與測試。
(4)AI系統需要更高效的持續測試方法。由于AI模型隨著時間的變化,數據的演化,性能會下降,這時說明該模型已經無法擬合當前的數據,因此需要高效的測試方法,盡快訓練、測評、部署更新版的模型。
(5)AI系統的性能依賴于數據。模型訓練的數據規模、數據質量、數據類別的平衡性都會影響AI系統的性能。而且,在驗證階段性能好的模型,未必在真實測試環境中也表現出好的性能。比如,一個過擬合的模型,在驗證階段可以獲得很高的準確率,但在真實的用戶數據中準確率卻大大降低。
綜上所述,數據驅動的AI系統相對于傳統軟件測試更復雜,更具有挑戰。同樣,還需要測試人員掌握更加全面的知識,比如機器學習、統計學、大數據分析等。
2. AI測試的方法論
AI測試從流程上來分大致可以分為5個步驟,分別為測試需求分析、測試環境準備、測試數據準備與驗證、AI測試執行與分析、模型上線與監控。
2.1AI測試需求分析
AI測試需求分析與傳統軟件測試的要求基本一致,需要明確測試的對象、測試的范圍、測試的方法和工具、測試通過的準則等。但是測試需求分析不再僅僅是測試團隊的任務,而需要算法開發人員、測試人員、系統運營人員共同參與討論,確定AI系統測試通過的準則。而且,由于AI系統的行為或結果無法完全確定或預測,因此還需要開發、測試和系統運營人員共同定義可允許的風險,風險可根據技術的限制和社會共識來確定。
2.2 測試環境準備
目前AI算法,比如推薦系統、搜索引擎、圖像分類、自然語言處理都依賴于大數據基礎架構,因此AI算法模型的測試環境準備,通常需要考慮數據量、計算量、測試時間等因素。此外,AI測試需要高效的持續測試,所以AI測試尤其需要測試環境快速部署的能力。
2.3測試數據準備與驗證
AI系統,不管是機器學習、推薦系統、計算機視覺,還是自然語言處理,都需要一定量的測試數據來進行模型的評估與測試。測試人員使用的測試數據集,需要盡可能的覆蓋真實環境用戶產生的數據情況。測試數據集的驗證可遵循以下原則:
(1)測試數據與訓練數據的比例要合適,這個比例應根據實際算法和應用場景確定。
(2)測試數據與訓練數據需要獨立同分布。
(3)測試數據與訓練數據正負樣本的比例也需要盡量保持一致。
(4)對于監督模型,測試數據的標簽需要保證正確。
2.4 AI系統測試與分析
比如,模型離線評估主要是評測AI模型對未知新數據的預測能力,即泛化能力。泛化能力越強,模型的預測能力越好??煽啃詼y試,包括了魯棒性、可用性、容錯性、易恢復性等指標。對于無人駕駛、人臉識別等安全攸關的AI系統,需盡可能采用異常數據來進行測試,如對抗樣本、易出錯的樣本等;對于推薦系統和搜索引擎等智能程序則需要測試反作弊能力。
2.5 AI模型上線與監控
AI模型上線后,根據實際業務每隔幾天或幾星期,對模型各類指標進行評估。指標應設置對應閥值,當低于閥值時應觸發報警。如果模型隨著數據的演化而性能下降,說明模型在新數據下性能不佳,就需要利用新數據重新訓練模型。此外,在一些場景中,我們還需要對用戶輸入數據進行監控。比如,2016年微軟在Twitter上發布的一款聊天機器人Tay開始表達法西斯思想,其原因就是用戶輸入數據的失控,人們“教壞”了聊天機器人。
3. 結語
AI是一種新的編程范式,需要測試人員具備機器學習、統計學、大數據分析等綜合知識和能力,因此AI測試人員的稀缺將成為AI企業的現實問題。AI的全流程的測試將不僅僅是測試團隊的任務,而需要算法開發人員、系統運營人員的共同參與。
此外,AI測試技術也需要不斷演進,來適應并解決AI測試帶來的挑戰。比如,蛻變測試可以緩解輸出結果很難預測的問題;對抗樣本與對抗訓練,則可大大提升AI系統的魯棒性;
眾包測試技術可以實現用戶體驗類指標的測評;DevOps技術可提供高效的持續測試。
目前,AI測試雖然實現了部分的自動化,但我們相信未來能夠實現自我評估、自我測試的自循環AI測試系統將會出現,并為AI的廣泛應用提供質量保證。我們期待這一天的到來!
原文轉自:https://blog.csdn.net/lhh08hasee/article/details/81748680