Lakehouse使計算機視覺應用程序與數據
2021年12月17日, 在工程的博客
Lakehouse讀取的數據探索為什麼lakehouses未來的數據架構和數據倉庫的父親,Bill Inmon。
計算機視覺應用的潛在改變零售和製造業務,探索在博客解決看不見的質量、操作和安全挑戰Lakehouse使計算機視覺,不能被誇大。說,許多技術挑戰阻止組織實現這一潛力。在我們多方技術係列的第一個介紹性的部分在計算機視覺的應用程序的開發和實現,我們深入挖掘這些挑戰和探索攝入的基本模式用於數據,模型訓練和部署。
圖像數據的獨特性質意味著我們需要仔細考慮我們如何管理這些信息資產,和前線訓練模型的集成應用程序意味著我們需要考慮一些非傳統的部署路徑。不存在放之四海而皆準的解決方案,每一個計算機視覺挑戰,但許多技術和技術開發的企業已經率先使用計算機視覺係統來解決實際業務問題。通過利用這些,作為探索在這篇文章中,我們可以更迅速地從示範操作化。
數據攝取
第一步發展的大多數計算機視覺應用程序(在設計和規劃)是圖像數據的積累。圖像文件被camera-enabled設備和傳輸到中央存儲庫中,在他們準備用於訓練模型。
重要的是要注意,許多流行的格式,比如PNG和JPEG,支持嵌入式元數據。基本元數據,如圖像的高度和寬度,支持像素值轉化為二維表示。額外的元數據,例如文件格式交換信息(Exif)元數據,可以嵌入提供額外的細節鏡頭,它的配置,可能它的位置(假設該設備配備GPS傳感器)。
當建立一個圖像庫、元數據以及圖像統計,有用數據科學家,因為他們篩選數以千計甚至數以百萬計的圖像通常積累在計算機視覺的應用程序,處理他們的土地Lakehouse存儲。如利用常見的開源庫枕頭元數據和統計數據可以提取和保存在一個可查詢的表Lakehouse環境更容易訪問。組成圖像的二進製數據也可以保存到這些表連同原始文件的路徑信息存儲環境。
模型訓練
單獨的圖像文件的大小結合大量的火車需要一個健壯的模型意味著我們需要仔細考慮如何處理他們在模型訓練。技術常用於數據收集模型等科學練習輸入一個熊貓dataframe不會經常工作在企業範圍內由於對個人電腦的內存限製。火花™dataframes,分發數據量在多個計算機集群配置為一個計算節點,不是由大多數計算機視覺庫訪問另一個解決這個問題是必要的。
為了克服第一個模型訓練的挑戰,Petastorm數據緩存技術建立專門為大型培訓先進的深度學習模型類型,可以使用。Petastorm允許檢索大量數據從Lakehouse和它在一個臨時的地方,基於存儲緩存。模型利用Tensorflow和PyTorch,深層神經網絡發展的兩個最流行的庫和普遍采用在計算機視覺應用,可以閱讀一小部分批次的數據從緩存中遍曆Petastorm大數據集。
數據量可控的,下一個挑戰是加速度模型的訓練。機器學習模型通過迭代學習。這意味著通過培訓將包括一係列重複輸入數據集。互相傳遞,模型學習優化權重帶來更好的預測精度的各種特性。
模型的學習算法是由一組稱為hyperparameters參數。這些hyperparameters往往難以設定的值僅基於領域知識,所以典型的模式,發現最優hyperparameter配置訓練多個模型,以確定哪些表現最好。這一過程,稱為hyperparameter調優,意味著迭代的迭代。
通過很多迭代技巧的工作及時分發hyperparameter調優運行在集群的計算節點,這樣他們可能以類似的方式執行。利用Hyperopt,之間的電波,可以委托這些運行的Hyperopt軟件可以評估hyperparameter值導致這結果,然後明智地設置為下一波hyperparameter值。多次波,軟件收斂於最優的一組hyperparameter值遠遠超過如果一個詳盡的評估值執行了。
一次最優hyperparameter值已經確定,Horovod可用於跨集群分發最終模型的訓練。Horovod坐標的獨立訓練模型在每個集群的計算節點使用重疊輸入訓練數據的子集。重量從這些並行運行每個經過完整的輸入設置合並,重新平衡和模型是基於他們的集體學習。最終的結果是一個優化模型,使用集體集群的計算能力訓練。
模型部署
與計算機視覺模型,目標通常是將模型預測到一個空間,一個操作員通常執行目視檢查。雖然集中式得分後台的圖片可能有意義在某些場景中,更常見的情況是,當地(邊緣)設備將負責捕捉圖像和調用訓練模型實時生成了輸出。根據模型的複雜性,本地設備的容量和容忍延遲和/或網絡中斷、邊緣部署通常采取兩種形式。
microservices部署,作為網絡服務模型。這個服務可能駐留在一個集中的位置或跨多個位置更緊密地與一些邊緣設備的數量。然後在設備上運行的應用程序配置為發送圖片到服務接收所需的成績作為回報。這種方法的優點是為應用程序開發人員提供更大的靈活性為模型托管和訪問資源的服務遠遠超過通常可以在設備的優勢。它的缺點是需要額外的基礎設施,有網絡延遲和/或中斷的風險影響的應用程序。
邊緣部署,先前訓練模型直接發送到本地設備。這就消除了擔憂網絡模型已經交付,但有限的硬件資源在設備上可以施加約束。此外,許多邊緣設備利用顯著不同的處理器的係統模型是訓練有素的。這可以創建軟件的兼容性問題,可能需要仔細研究之前的資源部署。
在這兩種場景中,我們可以利用MLflow模型管理存儲庫,幫助我們的包裝和交付模型。
把它一起磚
演示如何將這些不同的挑戰可能會解決,我們已經開發出一係列筆記本利用數據捕獲從PiCamera裝備覆盆子π設備。由這個設備已經拍攝的圖像傳輸到雲存儲環境中,這些圖像攝取、模型訓練和部署模式可以證明使用磚毫升的運行時,它已預設與上麵描述的所有功能。看到這個演示背後的細節,請參閱以下筆記本: