摘要:針對有一定AI基礎的AI初學者,ModelArts基於業界的主流引擎提供了預置算法,無需關注模型開發過程,直接使用預置算法對已有數據進行訓練,並快速部署為服務。預置算法可用於物體類別和位置、圖像分類等場景。本次實驗提供了一個花卉圖像分類應用的樣例,幫助您快速熟悉使用ModelArts預置算法構建模型的過程。
此樣例針對預置的花卉圖像數據集,對已有圖像數據進行標注,然后使用預置的“ResNet_v1_50”算法對數據進行訓練,得到一個可用的模型,最后,將此模型部署為在線服務。部署完成后,用戶可通過在線服務識別輸入圖片的花卉種類。使用預置算法完成模型構建的步驟如下所示:
- 步驟1:准備數據
- 步驟2:訓練模型
- 步驟3:(可選)創建可視化作業,查看模型訓練過程
- 步驟4:導入模型
- 步驟5:部署上線
- 步驟6:測試服務
- 步驟7:清除相應資源,避免產生費用
准備工作
- 已注冊華為雲賬號,且在使用ModelArts前檢查賬號狀態,賬號不能處於欠費或凍結狀態。
- 當前賬號已完成訪問授權的配置。如未完成,請參考使用委托授權。針對之前使用訪問密鑰授權的用戶,建議清空授權,然后使用委托進行授權。
- 已在OBS服務中創建桶和文件夾,用於存放樣例數據集以及模型。如下示例中,請創建命名為“test-modelarts”的桶,並創建如表1所示的文件夾。
- 創建OBS桶和文件夾的操作指導請參見創建桶和新建文件夾。確保您使用的OBS目錄與ModelArts在同一區域。
步驟1:准備數據
ModelArts在公共OBS桶中提供了花卉的示例數據集,命名為“Flowers-Data-Set”,因此,本文的操作示例使用此數據集進行模型構建。您需要執行如下操作,將數據集上傳至您的OBS目錄下,即准備工作中您創建的OBS目錄“test-modelarts/dataset-flowers”。
說明:
- 由於“Flowers-Data-Set”數據集已完成數據標注,數據集中文件格式為“.txt”是對應圖片的標注文件,因此在此操作步驟中忽略了數據標注操作。
- 如果您想使用自己的數據集,可跳過此步驟,直接將數據上傳至OBS文件夾中,並在步驟2:訓練模型操作中直接選擇此目錄即可。如果您使用的數據集未進行標注,在創建訓練作業前請在“數據管理>數據集”頁面創建數據集並進行人工標注。
- 單擊數據集下載鏈接,將“Flowers-Data-Set”數據集下載至本地。
- 在本地,將“Flowers-Data-Set.zip”壓縮包解壓。例如,解壓至本地“Flowers-Data-Set”文件夾下。
- 參考上傳文件,使用批量上傳方式將“Flowers-Data-Set”文件夾下的所有文件上傳至“test-modelarts/dataset-flowers”OBS路徑下。
步驟2:訓練模型
數據准備完成后,您可以創建一個訓練作業,選用預置算法“ResNet_v1_50”,並最終生成一個可用的模型。
“ResNet_v1_50”算法基於“TensorFlow, TF-1.8.0-python2.7”引擎,其用途為圖像分類。如果您想獲取更多預置算法的介紹,您可以在“訓練作業”頁面中,單擊“預置算法”頁簽,了解ModelArts提供的算法信息,如用途、引擎類型、精度等。
1)在ModelArts管理控制台,在左側導航欄中選擇“訓練管理>訓練作業”,進入“訓練作業”管理頁面。
2)單擊“創建”,進入“創建訓練作業”頁面。
3)在“創建訓練作業”頁面,填寫相關信息,參數填寫指導請參見如下步驟。
- “算法來源”:單擊“選擇”,從“預置算法”列表中,選擇“ResNet_v1_50”算法。
- “數據來源”:由於導入的數據集已完成標注,因此直接從數據存儲位置導入即可。單擊“數據存儲位置”,然后單擊文本框右側的“選擇”,選擇數據集所在的OBS路徑,如“/test-modelarts/dataset-flowers/”。
- “訓練輸出位置”:從已有的OBS桶中選擇模型和預測文件存儲路徑。使用准備工作中已創建好的“model-test”文件夾。如果沒有可用文件夾,您可以單擊“選擇”,在彈出對話框中新建文件夾。
- “運行參數”:選擇“ResNet_v1_50”算法后,默認包含“max_epoches”參數,默認值為“100”。針對此示例,建議將“max_epoches”參數值修改為“10”,1個epoch代表整個數據集訓練一遍,此運行參數表示訓練10個epoch,“max_epoches”值越大訓練時間越長。
- “作業日志路徑”:從已有的OBS桶中選擇日志存儲路徑。使用准備工作中已創建好的“train-log”文件夾。如果沒有可用文件夾,您可以單擊“選擇”,在彈出對話框中新建文件夾。
- 在基本信息區域,“計費模式”和“版本”為系統自動生成,不需修改。請根據界面提示填寫“名稱”和“描述”。
圖1 填寫名稱和描述
- 在參數配置區域,選擇“算法來源”,設置“數據來源”、“訓練輸出位置”、“運行參數”和“作業日志路徑”。
圖2 參數配置
- 在資源設置區域,選擇“公共資源池”,同時設置“規格”和“計算節點個數”。
如果選擇使用免費規格,請仔細閱讀提示信息,然后勾選“我已閱讀並同意以上內容”。
圖3 設置使用的資源
- 單擊“下一步”完成信息填寫。
4)在“規格確認”頁面,確認訓練作業的參數信息,確認無誤后單擊“提交”。
5)在“訓練作業”管理頁面,可以查看新建訓練作業的狀態。訓練作業的創建和運行需要一些時間,預計十幾分鍾,當狀態變更為“運行成功”時,表示訓練作業創建完成。
您可以單擊訓練作業的名稱,可進入此作業詳情頁面,了解訓練作業的“配置信息”、“日志”和“資源占用情況”等信息。在“訓練輸出位置”所在的OBS路徑中,即“/test-modelarts/model-test/”路徑,可以獲取到生成的模型文件。
圖4 訓練作業詳情
步驟3:(可選)創建可視化作業,查看模型訓練過程
目前ModelArts提供的可視化作業默認為TensorBoard類型的作業。TensorBoard是一個可視化工具,能夠有效地展示TensorFlow或MXNet在運行過程中的計算圖、各種指標隨着時間的變化趨勢以及訓練中使用到的數據信息。可視化作業當前只支持基於TensorFlow和MXNet引擎的訓練作業。
如果訓練詳情頁的詳細信息已足夠支撐您判斷模型好壞並構建模型,您可以選擇跳過此步驟,直接執行步驟4:導入模型的操作。
1)在ModelArts管理控制台,在左側導航欄中選擇“訓練管理 > 訓練作業”,然后單擊“可視化作業”頁簽進入“可視化作業”管理頁面。
2)在“可視化作業”管理頁面,單擊“創建”。
3)在“創建可視化作業”頁面,設置相關參數,然后單擊“下一步”。
可視化作業的類型默認為“可視化作業”,且不可更改。設置可視化作業的“名稱”,以及“訓練輸出位置”。“訓練輸出位置”需要設置為訓練作業中的“訓練輸出位置”,上述步驟中“訓練輸出位置”為“/test-modelarts/model-test/”。“自動停止”啟用,並設置為“1小時后”停止,避免產生不必要的費用。
圖5 設置可視化作業參數信息
4)在“規格確認”頁面,信息確認完畢后,單擊“提交”。
5)進入“可視化作業”管理頁面,等待一段時間,當可視化作業的狀態為“運行中”時,表示已創建成功。
針對運行中的可視化作業,您可以單擊可視化作業的名稱跳轉到其可視化界面。您可以通過此界面的信息,了解到此模型的具體訓練過程。如果此模型訓練過程和參數滿足要求,您可以開始執行步驟4:導入模型操作。
圖6 可視化界面
步驟4:導入模型
訓練完成的模型還是存儲在OBS路徑中,您可以將此模型導入到ModelArts中進行管理和部署。
1)在ModelArts管理控制台中,單擊左側導航欄中的“模型管理>模型”,進入“模型”頁面。
2)在“模型”頁面,單擊“導入”。
3)在“導入模型”頁面,設置相關參數,然后單擊“立即創建”。
設置模型的“名稱”和“版本”,然后在“元模型來源”參數中,選擇“從訓練中選擇”,此時系統會自動選擇您創建的訓練作業,您可以從下拉框中可以選擇系統中可用的訓練作業。由於本示例數據較簡單,其他參數采用默認值。
圖7 導入模型
4)模型導入完成后,系統將自動跳轉至模型列表頁面。您可以在模型列表頁面查看已導入的模型及其版本。
圖8 模型列表
步驟5:部署上線
模型導入完成后,當狀態顯示為“正常”時,可以將模型部署上線,可部署為“在線服務”、“批量服務”或“邊緣服務”。如下操作步驟以部署為在線服務為例。
1)在“模型管理 > 模型”頁面,單擊模型名稱左側的小三角,打開此模型下的所有版本。在對應版本所在行,單擊操作列的“部署”,然后在下拉框中選擇“在線服務”,進入“部署”頁面。
2)在“部署”頁面中,設置相關參數,然后單擊“下一步”。
設置在線服務的“名稱”,將“是否自動停止”功能啟用。在“選擇模型及配置”區域中,系統將自動選擇步驟4:導入模型中的模型及其版本,在“計算節點規格”右側下拉框中選擇使用的資源,本示例選用“CPU:2核 8GiB”資源部署在線服務。其他參數使用默認值。
“數據采集”和“難例篩選”功能,建議使用默認值,保持關閉。
圖9 部署為在線服務
3)在“規格確認”頁面,確認信息完畢后,單擊“提交”。
4)在“部署上線 > 在線服務”頁面,您可以查看在線服務的相關信息。由於模型部署上線需要花費一些時間,請耐心等待幾分鍾。當在線服務的狀態為“運行中”時,表示在線服務已部署完成。
步驟6:測試服務
- 在線服務部署成功后,您可以進入在線服務,發起預測請求進行測試。
- 在“在線服務”管理頁面,單擊在線服務名稱,進入在線服務詳情頁面。
- 在線服務詳情頁面中,單擊“預測”頁簽,進入預測頁面。
- 在“選擇預測圖片文件”右側,單擊“上傳”按鈕,上傳一張帶花的圖片,然后單擊“預測”。
- 預測完成后,預測結果顯示區域將展示預測結果,根據預測結果得分,可識別出此圖片的花為“daisy”。
說明:由於此處是測試服務,為保證測試效果,建議選擇圖片時,不要使用示例數據集中已有的圖片。
圖10 預測結果
步驟7:清除相應資源,避免產生費用
為避免產生不必要的費用,在完成試用后,建議您刪除相關資源,如在線服務、可視化作業、訓練作業、數據及其OBS目錄。
- 刪除在線服務:在“在線服務”頁面,單擊操作列的“更多>刪除”。
- 刪除可視化作業:在“訓練作業>可視化作業”頁面,單擊操作列的“刪除”。
- 刪除訓練作業:在“訓練作業”頁面,單擊操作列的“刪除”。
- 刪除數據:前往OBS,刪除上傳的數據,然后刪除文件夾及OBS桶。
本文分享自華為雲社區《使用預置算法構建模型初體驗》,原文作者:運氣男孩 。