一位互聯網9年AI開發者的ModelArts開發實踐
1、???? 前言
不論AI是真風口還是大泡沫,在擁有九年互聯網AI開發從業經驗的筆者看來,AI技術一定要在我們的技術棧中占據一席之地,這已經是不可逆的歷史大勢。筆者多年來一直關注人工智能領域的前沿研究和最新實踐,久聞華為云推出的一站式AI開發平臺ModelArts在斯坦福DAWNBench的Image Classification on ImageNet中多次登頂TOP2,便想體驗體驗。
此次得到華為云布道師、ASF Member陳亮之邀,我對ModelArts進行了一番深度體驗與實踐。
2、???? ModelArts介紹
ModelArts是面向 AI 開發者的一站式開發平臺,其開發平臺如圖1-1所示;ModelArts平臺向開發者提供了全套AI開發環境:分布式計算工具(TensorFlow/PyTorch)、分布式文件系統OBS(Ceph)、AI開發工具,該環境以Docker的方式集成,方便快速部署和擴展,對于開發者只需要選擇所需要的Docker即可,避免了每個開發者進行繁瑣的開發環境準備工作;對于開發者,只需要關注模型生產部分的工作,包括數據的上傳、數據的標注、模型選擇和開發、模型訓練、模型部署等工作;對于上層應用,開發者可以基于自己的模型進行業務實現,比如:圖像識別、分類預測、個性推薦等實際業務場景。
圖1-1 ModelArts平臺
其中ModelArts為了提升開發者的效率,還提供了海量數據預處理及半自動化標注提高數據標注效率,大規模分布式訓練減少模型訓練耗時,自動化模型生成和模型部署能力幫助開發者快速創建和部署模型。對于開發者,基于ModelArts平臺的開發流程如圖1-2所示;首先進行數據上傳,將數據上傳至OBS中;其次再對數據進行樣本準備,如果是需要標注的數據,采用平臺提供的半自動化標注工具可以快速進行標注,標注完成后,則自動生成樣本文件;再次根據業務需求進行算法開發,包括模型選擇、參照模型集市已有成熟模型、模型算法開發(基于Notebook進行模型調試);然后對模型進行訓練,包括模型參數調優、效果指標分析等;最后對模型進行快速部署,包括模型管理、模型發布、在線預測、批量預測、AB分流等。
圖1-2 ModelArts 開發流程
2、環境準備
步驟1:在華為云首頁點擊右上角的【控制臺】,如圖2-1所示。
圖2-1 進入控制臺
步驟2:在控制臺首頁點擊右上角個人賬號選擇【我和憑證】,如圖2-2所示。
圖2-2 進入我的憑證
步驟3:在首頁點擊【管理訪問密鑰】,然后點擊下方【新增訪問密鑰】,如圖2-3所示。
圖2-3 新增訪問密鑰
申請完后會自動下載密鑰文件,如圖2-4所示
圖2-4 密鑰文件
其中密鑰文件主要包括以下內容:
ü Access Key:是開發者擁有的項目身份識別ID,用以身份認證,類似于用戶名。
ü Secret Key:是開發者擁有的項目身份密鑰,類似于密碼。
其中密鑰文件主要應用在OBS文件和Notebook中,首次使用上述功能需要輸入Access Key和Secret Key。
3、數據上傳
步驟1:華為云首頁在菜單欄點擊【產品】選擇【對象存儲服務 OBS】,如圖3-1所示。
圖3-1 進入OBS
步驟2:進行后點擊【管理控制臺】,如圖3-2所示,首次使用需要輸入開發者的Access Key和Secret Key。
圖3-2 進入OBS控制臺
步驟3:進入管理控制臺后點擊右上角【創建桶】,如圖3-3所示。
圖3-3 OBS創建桶
其中OBS的2個基本概念:
ü Bucket:存儲桶是S3中用于存儲數據的容器,每個對象都存儲在一個存儲桶中。
ü Object:對象是 S3中存儲的具體文件,是存儲的基本實體。
步驟4:點擊桶名稱,進入數據集,如圖3-4所示。
圖3-4 OBS數據集
步驟5:上傳數據,首先可以先【新建文件夾】,然后進入文件夾后,點擊【上傳對象】,如圖3-5所示。
圖3-5 OBS上傳數據
除了上述直接在網頁上上傳數據,開發者還可以通過OBS Browser客戶端上傳數據,這里需要開發者對應的客戶端,如圖3-6所示。
圖3-6 OBS客戶端
4、數據集管理
步驟1:進入數據標注首頁,如圖4-1所示。
圖4-1 進入數據標注
步驟2:在首頁點擊【創建數據集】,開始創建數據標注任務,如圖4-2所示。
圖4-2 創建數據標注任務
其中數據集輸入位置就是上傳至OBS中數據集的路徑,這里還需要設定數據集的輸出位置,也就是輸出路徑,需要提前在OBS中建立輸出文件目錄。
步驟3:在創建的數據集上雙擊鼠標,就可以開始標注數據,如圖4-3所示。
圖4-3 開始標注任務
其中標注任務如圖4-4所示,通過鼠標勾選圖片,然后在右邊對所勾選的圖片進行打標簽。
圖4-4 標注任務
步驟4:查看標注完成數據集,如圖4-5所示,可以對完成數據集進行版本發布,并且查看數據集的文件路徑,如圖4-6和圖4-7所示。
圖4-5 標注完成頁
圖4-6 數據集版本發布
圖4-7 數據集路徑查看
除了上述通過半自動標注數據進行數據生成外,開發者還可以直接上傳已生成好的樣本文件進行數據生成,有了數據后,需要進行數據集發布,其中數據集的發布的步驟如下所示。
步驟1:在【數據管理】菜單中點擊【數據集】,進入數據集首頁,在這里可以查看已有數據集,并且可以創建數據集。如圖4-8所示。
圖4-8 數據集
步驟2:點擊在【創建】按鈕,進入創建數據集配置頁,如圖4-9所示。
圖4-9 創建數據集
其中數據集存儲路徑就是數據集的OBS文件路徑(數據標注生成的路徑或者開發者上傳數據路徑)。
5、Notebook實踐
步驟1:進入【開發環境】,點擊【Notebook】,如圖5-1所示,首次使用需要輸入開發者的Access Key和Secret Key。
圖5-1 開發環境
步驟2:創建Notebook,如圖5-2所示,開發者需要根據自己所需要的開發環境選擇相應的Docker鏡像,并且選擇合適的計算資源,其中Notebook文件的存儲路徑也需要開發者設置OBS路徑。
圖5-2 創建Notebook
步驟3:啟動Notebook,如圖5-3所示,點擊打開,就可以啟動。
圖5-3 啟動Notebook
步驟4:Notebook編程,Notebook首頁如圖5-4所示,開發者可以新建一個Notebook。
圖5-3 Notebook首頁
步驟:Notebook編程調試,開發者可以在一個Notebook進行編程和調試,如下案例所示。
圖5-4 環境準備
圖5-5 數據準備
圖5-6 數據調試
圖5-7 模型開發
圖5-8 模型調試
6、訓練作業
步驟1:點擊【訓練作業】菜單,進入創建訓練作業首頁,如圖6-1所示。
圖6-1 訓練作業首頁
步驟2:在首頁點擊【創建】,創建訓練作業,如圖6-2所示。
圖6-2 創建訓練作業
其中【數據來源】就是選擇已發布的數據集數據,【算法來源】可以選擇預置算法、常用框架、自定義實現算法等,【運行參數】就是算法訓練所需要的參數,【訓練輸出位置】就是模型生成的OBS路徑。參數設置完成后,點擊【下一步】進行確認頁,如圖6-3所示。
圖6-3 訓練配置確認
點擊【立即創建】后,該訓練任務已經成功創建,可以查看任務的狀態,如圖6-4所示,訓練中,可以查看模型信息、日志、資源使用等,如圖6-5所示,訓練完成后還可以查看模型評估指標,如圖6-6所示。
圖6-4 訓練狀態
圖6-5 訓練信息
圖6-6 訓練評估指標
7、模型管理
步驟1:點擊【模型管理】菜單,進入模型管理首頁,如圖7-1所示。
圖7-1 模型管理首頁
步驟2:在首頁點擊【導入】,進行模型導入配置,如圖7-2所示。
圖7-2 模型導入配置
其中【模型來源】可以來自訓練任務、OBS文件中、鏡像中。
步驟3:在模型管理首頁可以進行模型管理,包括:模型部署、在市場進行模型發布,如圖7-3所示。
圖7-3 模型管理
8、模型上線
在線服務首頁:在【部署上線】菜單,點擊【在線服務】進入在線服務首頁,如圖8-1所示。
圖8-1 在線服務首頁
在線服務部署配置:在首頁點擊【部署】,進入部署配置頁,如圖8-2所示。
圖8-2 模型部署配置頁
在線服務狀態監控:部署完成后,可以進行狀態監控和預測服務等,如圖8-3所示。
圖8-3 模型服務
在線服務預測:點擊【預測】,可以進入預測頁面,如圖8-4所示。
圖8-4 預測服務
批量服務首頁:在【部署上線】菜單,點擊【批量服務】進入批量服務首頁,如圖8-5所示。
圖8-5 批量服務首頁
批量服務部署配置:在首頁點擊【部署】,進入部署配置頁,如圖8-6所示。
圖8-6 模型部署配置頁
其中批量服務部署配置需要配置模型版本,批量預測樣本的路徑,以及預測結果路徑。
批量服務狀態監控:在首頁可以監控批量預測服務的狀態,進入部署配置頁,如圖8-7所示,點擊啟動后,可以查看任務信息,如圖8-8所示,根據輸出目錄,可以查看輸出文件,如圖8-9所示,其中每一條的預測結果用json格式保存,例如:{"predicted_label":"dog","scores":[["dog",0.61349],["cat",0.38650]]}。
圖8-7批量預測服務的狀態
圖8-8預測信息
圖8-9預測結果
9、ModelArts總結
9.1 平臺優點
ü? 1、Docker化,易用性高,開發者不用關心開發環境,省去繁瑣的開發環境準備工作。
ü? 2、一站式機器學習平臺,從數據、模型生產、模型部署、模型上線一站式管理。
ü? 3、樣本準備高效,半自動幫助開發者進行樣本標注,并且自動生成模型可讀的樣本文件。
ü? 4、可視化流程管理,訓練過程、日志文件、評估結果查詢方便。
ü? 5、版本管理,支持數據、訓練、模型的版本管理。
ü? 6、快速上線,支持一鍵式上線管理,也支持快速批量預測,還支持線上AB測試。
ü? 7、模型共享,可以方便查詢集市上相關的模型,并且可以直接進行訓練。
9.2 平臺建議
平臺建議1—增加特征分析組件
ü? 1、支持CSV、libSVM等格式樣本集的特征分析和數據分析。
ü? 2、特征分析指標包括:特征覆蓋率、特征IV值、特征信息熵、特征缺失率等。
ü? 3、數據分析分析包括:樣本整體Label分布比例;
連續特征的最大、最小、平均、分位數等指標;
離散特征的:枚舉個數、枚舉TopK的分布等。
平臺建議2—模型評估指標增加特征重要性排序
ü? 1、增加特征重要性排序指標,比如輸出TopK個特征
ü? 2、可視化輸出TopK個卷積核的圖像
平臺建議3—增加模型可解釋組件
ü? 1、集成類似:LIME組件
平臺建議4—增加共享Notebook功能
ü? 1、對于開發者之間進行交流,最方便的是用Notebook,比如:開發者A,可以將他的Notebook地址發給開發者群或者開發者B,通過權限控制,開發者群或者開發者B可以擁有該Notebook的訪問、編輯、調試權限,大家可以這樣相互交流代碼和問題
ü? 2、類似功能可以參考:共享文檔思路,類似產品有:騰訊文檔
平臺建議5—技術路線梳理
ü? 1、平臺可以增加技術路線引導,幫助開發者快速找到所需的技術,或者幫助開發者提升技術實力。
ü? 2、例如NLP的簡單技術路線如圖9-1所示。
圖9-1NLP技術路線
人工智能 華為云ModelArts
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。