簡單來說就是分成兩部分

1.訓練

①需要累積數(shù)據(jù),并預期數(shù)據(jù)越多越好,所以存儲必須可擴展。

②數(shù)據(jù)科學家處理數(shù)據(jù),初步建立算法模型,讀取數(shù)據(jù)。

③需要GPU執(zhí)行framework(如TensorFlow),forward前向傳播跑出結果,計算誤差損失,backward反向傳播更新參數(shù)修改模型,不斷重復, 最終得到準確度較高的訓練好的模型。


2. 推斷

①需要全新的數(shù)據(jù)來驗證。

②使用訓練好的模型,驗證準確度是否真的夠高。

③部署該模型到實際環(huán)境正式使用。

這其實是一個永無止盡不斷循環(huán)的過程,沒有最好的模型,只有更好的模型??傊?,目的就是要找出可以幫助公司業(yè)務,達到最佳ROI的“那個模型”。但重點是,要怎么找到“那個模型”,夠好還有夠快?這才是AI時代,各公司真正的核心競爭力所在。

所以現(xiàn)在就要來好好分析一下這個過程的三大要素:

1. 大數(shù)據(jù)

有人說過,若你有趨近無限的數(shù)據(jù),你就可以訓練出趨近完美的模型。所以要模型好,準確度高,最重要的就是先要有數(shù)據(jù),越多越好。不過這首先就會帶來一個問題,這些不斷成長數(shù)據(jù)要放在哪里?本地磁盤容量不夠,RAID存儲擴充不行,只有真正分布式的橫向擴展存儲才是最適合大數(shù)據(jù)的,從而讓模型更好。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型


2. 算力

比如GPU,計算力越強,AI流程越快,也是基礎設施成本最貴的部分。可是并非花了大價錢買了GPU,就能高枕無憂了,如果GPU的使用率只有不到50%呢,這樣還快得起來嗎?

事實上這是目前非常普遍的現(xiàn)象,GPU使用率不高的原因通常都是在于I/O瓶頸。而只有可以分散處理大量并發(fā)I/O的分布式存儲才是最能提高GPU利用率的,讓模型更快。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

3. 算法

算法需要數(shù)據(jù)科學家一方面了解公司業(yè)務,另一方面了解數(shù)據(jù),建立正確的模型。

說的簡單,其中過程也是非常復雜的,比如IoT需要使用Kafka,機器學習需要使用SparkML,深度學習需要使用TensorFlow,大數(shù)據(jù)分析需要使用Hadoop,處理數(shù)據(jù)需要使用ETL工具,最后還要做可視化/BI等……若都是分開的孤島,不但流程復雜,數(shù)據(jù)需要復制許多份,并且數(shù)據(jù)遷移來遷移去非常耗時。

這時候不如使用數(shù)據(jù)湖,不再有孤島,整合流程,數(shù)據(jù)保持同一份節(jié)省TCO整體成本,省下數(shù)據(jù)遷移的心力,提升數(shù)據(jù)科學家的工作效率,讓他們專注在最有價值的算法上。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

接下來,就用實際的貓狗辨識簡單實踐來體驗一下TensorFlow深度學習吧!

這里我使用的存儲是戴爾易安信Isilon,為什么用它呢?通過上面的講解你應該能知道,AI所需要存儲不僅要強大擴展能力,同時還不能有I/O瓶頸。而Isilon正是一款真正分布式的橫向擴展NAS存儲,不僅能輕松擴展到數(shù)十個PB,還能助攻GPU,讓使用率高達90%+,更能提供原生數(shù)據(jù)湖整合流程提升工作效率

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

*Isilon由英特爾? 至強?處理器提供支持,該處理器采用軟件定義的基礎設施和敏捷云架構,為Isilon提供了卓越的性能和效率,可加速要求嚴苛的文件工作負載,使企業(yè)發(fā)揮數(shù)據(jù)資本的價值,加速業(yè)務的數(shù)字轉型。

廣告不多說了,下面正式開始實踐。

這里我使用VMware Workstation跑兩個VM:

一個VM是Ubuntu 16.04作為AI服務器,安裝軟件如下:

? Anaconda with Python 3.7

? Jupyter Notebook

? TensorFlow

? Keras

? Opencv

另一個VM是Isilon simulater OneFS 8.2.0作為AI存儲,設定準備如下:

? 啟動trial license

? 建立/ifs/ai路徑

? 在網絡上下載了三千張貓跟狗的圖片數(shù)據(jù),都放在/ifs/ai/datasets/images目錄下

? 在網絡上下載了深度學習貓狗辨識模型的python code,路徑為/ifs/ai/dl_isilon.ipynb

? 建立/ifs/ai/trained_模型s目錄給訓練好的模型存檔

01 步驟一

建立聯(lián)機,正式環(huán)境可能會使用Kubernetes,可以把Isilon直接用NFS或是透過CSI作為persistent volume提供給GPU docker。但因為我這里只使用單一VM,所以我用最簡單的NFS mount方式,把Isilon mount給Ubuntu的/home/ai/isilon目錄。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

02 步驟二

接著在Ubuntu上開啟Jupyter Notebook,這時候可以看到名為isilon的目錄出現(xiàn),進入/Isilon/ai就可以看到之前準備好的數(shù)據(jù)和python code。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

03 步驟三

打開dl_isilon.ipynb,一開始就是要設定讀取數(shù)據(jù)的地方,這里的路徑“./datasets/images/”其實就是指向Isilon的/ifs/ai/datasets/images。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

04 步驟四

接下來把三千張圖片重設大小,做卷標分類,其中兩千張來做訓練,一千張做驗證,于是會產生四個目錄,其中“./datasets/catsvsdogs/train/dogs”其實就是指向Isilon的/ifs/ai/datasets/catsvsdogs/train/dogs,依此類推。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型
專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

05 步驟五

然后經過一些轉格式的預處理動作,就是建立CNNmodel的部分了,其中有些超參數(shù)可以調整如batch_size,epochs。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型
專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型
專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

現(xiàn)在就開始訓練了,訓練好的模型會存檔為./trained_models/cats_vs_dogs.h5,其實就是指向Isilon的/ifs/ai/trained_models/cats_vs_dogs.h5。

可以看到,訓練十次,每次兩千張,損失越來越低,準確度越來越高,訓練第一次的準確度只有50%,訓練第十次的準確度有71.5%,當然這遠遠不夠高, 是因為只有兩千張圖片,想象一下若有兩萬張圖片,準確度就可能到達95%以上了,這就是大數(shù)據(jù)的威力與價值!

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型
專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

接下來用另外一千張圖片來驗證這個已經訓練好,存在Isilon上的模型。

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

以上就是一個簡單的使用Isilon實現(xiàn)AI解決方案的貓狗辨識實踐。其實AI并沒有那么神秘,動手起來也不難,最重要的,是不是覺得Isilon真的很適合AI了呢?

如果這個訓練好的模型準確度高于人類,那么就可以實際部署在生產環(huán)境上了,以后就可以讓AI幫助公司業(yè)務來判斷圖片,比人類準確度高,比人類速度快,還不會有人為錯誤,一片美好的未來~

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型

但是!工欲善其事,必先利其器,必須要先有適合的AI存儲如Isilon才能往美好的未來邁進,準確并快速地找出可以高效幫助公司業(yè)務的模型,達到最佳ROI!

專家授課︱如何親自動手搭建一個大數(shù)據(jù)分析模型
分享到

崔歡歡

相關推薦