【自有技術大講堂】數據驅動的AI(系列3):AI模型部署中的數據管理
一、AI技術債務的定義與分析
目前機器學習中已引入了技術債務(Technical debt)的概念. 技術債務的概念最初來自軟件工程領域,人們經常發現推動快速開發軟件會產生必須在以后償還的長期維護成本,而且如果不加以解決,隨著時間的推移,債務會積累的越來越多。為了快速開發軟件,忍受債務的積累是一種有用的策略,但我們應該謹慎選擇何時何地這樣做——并為以后如何償還債務制定一個可靠的計劃。造成技術債務的原因包括但不限于功能超預定義范圍、糟糕的文檔、缺乏單元測試和系統測試??梢詢斶€技術債務的動作包括重構、改進文檔以及創建單元測試和集成測試等。
機器學習和人工智能系統同樣具有產生大量技術債務的特殊能力,原因是機器學習系統具有傳統軟件系統的所有品質,因為它們當然是建立在代碼之上的。但它們還存在第二層問題,因為這些系統的行為無法提前準確指定。相反,它們的行為由模型算法的特定選擇、超參數設置,當然還有所使用的訓練數據隱含地定義。因此,舉個例子,這與為排序算法編寫單元測試不同,該排序算法的前置條件和后置條件已為任何可能的輸入預先定義好,面對實踐中可能呈現的大量輸入數據,要指定 AI系統的“正確”行為應該是什么是非常困難的。這使得重構、文檔和嚴格測試等事情變得具有挑戰性。
二、數據是AI系統中最大的潛在技術債務來源
從以數據為中心的人工智能的角度來看,我們甚至可以證明數據本身是AI系統中最大的潛在技術債務來源。有兩種方法可以看出這是真的。首先讓我們典型生產級 AI 系統的整體組件:
需要注意的是 AI算法 代碼——我們傾向于認為很酷的部分– 實際上是整個系統的一小部分,就整體代碼而言,可能是 5% 或更少。數據收集、數據驗證和特征提取等構成了整個系統更大的部分,并且顯然都是以數據為中心的方法的核心。但是,即使是有助于部署模型以在實時系統的上下文中進行預測的典型服務基礎設施,也需要廣泛的數據管道(pipeline),以確保在預測時向模型提供所有相關的準確的信息。任何稱職的AI 數據工程師都會把數據分布管控看做是重中之重??偟膩碚f,這意味著我們整個系統復雜性的 70% 與數據相關——數據處理、數據維護、和分布管控——這些任務可以連接多個系統或子系統。所以它是技術債務的主要來源。
還有另一種可能更重要的方法可以看出數據可能是意外巨額技術債務的來源。這是因為數據定義了我們模型的行為,并以這種方式扮演了代碼的角色。如果我們想要一個視覺模型在識別昆蟲方面做得很好,或者一個音頻模型來識別一個口頭命令,或者一個電影推薦模型來幫助用戶選擇周五晚上的娛樂,我們模型的能力和行為將是主要由我們收集和用于訓練的數據來定義。
隨著時間的推移,從業者發現收集和訓練更大的數據集用于模型訓練是有益的。近年來,許多模型的數據集大小的增長速度呈指數級增長。值得考慮為什么這是有必要的,因為在很多情況下,獲取越來越多的數據實際上在統計上沒有用。例如,如果我們想估計給定硬幣正面朝上的概率,經典統計告訴我們額外隨機軌跡的價值會迅速減少。即使對于像民意調查這樣的高風險信息收集,從統計的角度來看,收集超過幾千個回復也很少有用。那么,為什么 AI 人員要花費如此多的時間、精力和計算來收集可能包含億萬個訓練示例的數據集呢?
答案是我們希望我們的模型在各種情況下表現良好,并且更大的數據集很有用,因為它們具有更大的多樣性。這使我們的模型能夠更多地了解罕見或異常情況(尤其是長尾化制造業缺陷形態),以及它們在其中應該如何表現。事實上,當我們談論大型數據集整體上提高模型準確性時,這通常是一種最為方便的方法,可以說我們正在提高模型對困難、罕見或不尋常樣例的良好預測能力。簡單的情況幾乎總是已經得到很好的處理。
這意味著,當我們增加數據集的大小時——在許多情況下,這再次以指數速度發生——我們這樣做是因為我們希望增加AI系統的適用范圍。這意味著我們現在有更廣泛的系統行為來測試、監控和驗證,但是,如果不注意這些行為,就會變成無償的,并且會加重技術債務。
三、如何緩解與償還技術債務-數據
上文提到的技術債務的來源似乎聽起來很難避免,但我們可以做一些事情來償還我們的機器學習和人工智能系統以數據為中心的技術債務??梢詮娜齻€地方開始:
-
審計和監控數據質量。 在許多情況下,手動檢查數據仍然是關鍵步驟,因此我們可以了解數據中原本不明顯的問題和問題。自動監控數據質量,甚至是基本的分布統計,也有助于盡快發現任何問題。
-
為數據集創建數據表。為訓練數據創建標準化文檔。我們將在下一篇文章中詳細描述次方法。這個做法類似于為傳統的基于代碼的系統編寫開發和交付文檔,同樣具有減少基于 AI 的技術債務的顯著能力。
-
使用數據創建和應用壓力測試。 部署在現實世界中的 AI 系統最終會遇到數據分布和輸入與歷史訓練數據顯著不同的情況。這意味著我們不能僅僅通過純粹基于隨機保留的訓練數據來評估模型的傳統做法來可靠地估計我們系統的性能。相反,我們應該創建各種特定的“壓力測試”數據集,以幫助探索我們模型的局限性及其穩健性。包括一些罕見的CASE或基于專家知識創建基于特定用例的特定評估集也很有用。
公平地說,以上這些步驟需要大量工作,而且從組織的角度來看可能代價高昂。但從以數據為中心的角度來看,很明顯,這些領域將對我們的 AI 系統的長期健康和可靠性產生最大影響。
四、高視科技AI平臺數據管理相關介紹
高視科技的GoMind平臺,提供針對不同工業機器視覺場景的數據集樣本管理。提供基礎的新增,更新,刪除數據等功能,同時對同一數據集提供版本管理,方便記錄數據集更新與數據對比。另外可視化提供數據查看界面,方便審計和監控各數據集分布。