git clone開啟雲上AI開發

摘要:相比於傳統的軟體開發,AI開發存在以下4個痛點:演算法繁多;訓練時間長;算力需求大;模型需手動管理,我們可以使用雲上AI開發的方式來緩解以上4個痛點。

本文分享自華為雲社區《git clone開啟雲上AI開發》,作者:ModelArts開發者。

已發布地址://developer.huaweicloud.com/develop/aigallery/article/detail?id=17052711-f3f5-4b53-bdbc-5d5c7cdc64fa

一、為什麼需要雲上AI開發?

相比於傳統的軟體開發,AI開發存在以下4個痛點:

1)演算法繁多;

2)訓練時間長;

3)算力需求大;

4)模型需手動管理

我們可以使用雲上AI開發的方式來緩解以上4個痛點,雲上AI開發的優勢:

  1. 任意地點接入,在線開發;
  2. 雲上環境預置多種主流深度學習框架,開「箱「即用;
  3. 雲端充足算力、TB級數據存儲,支援重型訓練任務;
  4. 雲端平台具備訓練任務版本化管理,AI開發更可靠、可高效;

二、雲上AI開發主要步驟

三、具體操作步驟

步驟一 Notebook調試

1.準備Python環境

進入ModelArts控制管理台,點擊【開發環境】–> 【Notebook】,進入notebook列表頁面,點擊頁面左上角「創建」按鈕,新建一個notebook,填寫參數,下圖所示:

點擊「立即創建」,確認產品規格後,點擊提交,完成Notebook的創建。

返回Notebook列表頁面,等待新創建Notebook狀態變為「運行中」後,點擊名稱進入Notebook。

進入Notebook頁面後,打開terminal,如下圖所示:

輸入如下命令,查看已安裝Python環境資訊

conda info -e

點此鏈接GitHub – IDEA-Research/DINO,下面將以此開源演算法為例,演示如何在華為雲Notebook上快速運行,演算法詳細介紹請參考 README.md 。

1)在terminal里繼續輸入如下命令,克隆倉庫

git clone https://github.com/IDEACVR/DINO
cd DINO

如上圖所示,表示已完成程式碼克隆,點擊左側任務欄頂部刷新按鈕,即可查看程式碼。

2)查看Pytorch版本

pip list | grep torch

3)安裝其他需要的包

pip install -r requirements.txt

4)編譯CUDA運算元

cd models/dino/ops
python setup.py build install
# unit test (should see all checking is True)
python test.py
cd ../../..  # 回到程式碼主目錄

2.準備數據和預訓練參數文件

1)進入控制台,將游標移動至左邊欄,彈出菜單中選擇「服務列表」->「存儲」->「對象存儲服務OBS」,如下圖所示:

點擊「創建桶」按鈕進入創建介面。

開始創建。配置參數如下:

① 複製桶配置:不選
② 區域:華北-北京四
③ 桶名稱:自定義,將在後續步驟使用
④ 數據冗餘存儲策略:單AZ存儲
⑤ 默認存儲類別:標準存儲
⑥ 桶策略:私有
⑦ 默認加密:關閉
⑧ 歸檔數據直讀:關閉

單擊「立即創建」>「確定」,完成桶創建。

點擊創建的「桶名稱」->「對象」->「新建文件夾」,創建一個文件夾,用於存放後續數據集。

2)下載COCO 2017數據集子集。該數據集包括train(5000張),val(5000張)及標註文件。進入下載詳情頁面,下載方式選擇對象存儲服務(OBS),目標區域選擇華北-北京四,目標路徑選擇1中在OBS中創建的路徑,用於數據集存儲,如下圖所示:

點擊「確認」,跳轉至我的下載頁面,可以查看數據集下載詳情,等待數據集下載完成,如下圖所示:

返回Notebook頁面,新建一個ipynb文件,編寫導入數據集腳本,運行程式碼,運行完畢後,點擊任務欄上方「刷新」按鈕,即可查看導入dataset,如下圖所示:

import moxing as mox
mox.file.copy_parallel({obs_path},{notebook_path})

說明:

{obs_path}為OBS存儲數據集的位置
{notebook_path}為數據集在notebook中的存儲路徑

3)下載DINO 模型 checkpoint 「checkpoint0011_4scale.pth」,下載完成後,返回Notebook頁面,在DINO頁面,創建文件夾ckpts,用於存放下載的checkpoint。

進入文件夾,點擊任務欄上方」上傳「按鈕,選擇下載完成的checkpoint 路徑,文件大小超過100MB,需選擇OBS中轉,等待數據上傳完畢,如下圖所示:

3.運行程式碼

1)執行下面的命令,評估預訓練模型,你可以期待得到最終的AP大約49.0。

bash scripts/DINO_eval.sh /path/to/your/COCODIR /path/to/your/checkpoint

說明:

/path/to/your/COCODIR 為Notebook數據集的存儲路徑
/path/to/your/checkpoint 為Notebookcheckpoint存儲路徑

如下圖所示:

整個過程約等待13分鐘左右,運行結果如下:

2)推理及可視化

打開DINO目錄下的inference_and_visualization.ipynb,選擇Kernel Pytorch-1.8,如下圖所示:

修改程式碼:

...
model_checkpoint_path = "ckpts/checkpoint0011_4scale.pth"  # 修改checkpoint路徑
...
args.coco_path = "../dataset"  # 修改coco數據集路徑

運行程式碼查看推理結果。

步驟二 運行訓練作業

1.保存鏡像

1)返回ModelArts管理控制台,在左側菜單欄中選擇**「開發環境 > Notebook」**,進入新版Notebook管理頁面。在Notebook列表中,點擊名稱進入創建的Notebook詳情頁

2)點擊右側「更多」,選擇「保存鏡像」

3)在保存鏡像對話框中,設置組織、鏡像名稱、鏡像版本和描述資訊。單擊「確認」保存鏡像。

在「組織」下拉框中選擇一個組織。如果沒有組織,可以單擊右側的「立即創建」,創建一個組織。創建組織的詳細操作請參見創建組織。

同一個組織內的用戶可以共享使用該組織內的所有鏡像。

4)鏡像會以快照的形式保存,保存過程約5分鐘,請耐心等待。此時不可再操作實例(對於打開的JupyterLab介面和本地IDE 仍可操作)。

5)鏡像保存成功後,實例狀態變為**「運行中」**,用戶可在「鏡像管理」頁面查看到該鏡像詳情。

6)單擊鏡像的名稱,進入鏡像詳情頁,可以查看鏡像版本/ID,狀態,資源類型,鏡像大小,SWR地址等。

7)還可在左側菜單欄中選擇**「鏡像管理」**,查看鏡像列表及詳情,如下圖所示:

2.上傳訓練程式碼

返回Notebook頁面,在新建的ipynb中輸入以下程式碼,完成程式碼上傳至OBS桶中

mox.file.copy_parallel("./DINO/","obs://dino-coco/DINO")

如下圖所示:

3.創建訓練作業

1)在左側菜單欄中選擇**「訓練管理 > 訓練作業」**,點擊右上角「創建訓練作業」,如下圖所示:

2)參數配置

創建方式:自定義演算法

啟動方式:自定義,選擇已保存鏡像

啟動命令:

cd ${MA_JOB_DIR}/DINO && python main.py -c config/DINO/DINO_4scale.py --options dn_scalar=100 embed_init_tgt=TRUE dn_label_coef=1.0 dn_bbox_coef=1.0 use_ema=False dn_box_noise_scale=1.0

訓練輸入:選擇OBS桶內上傳程式碼路徑

訓練輸出:選擇創建的OBS桶,點擊新建文件夾,創建一個文件夾,用於存放訓練輸出,如下圖所示:

資源池:公幹資源池

資源類型:GPU

規格: GPU: 1*NVIDIA-V100(32GB) | CPU: 8 核 64GB 3200GB

永久保存日誌:開啟,選擇OBS桶,新建文件夾,用於存放訓練日誌,如下圖所示:

事件通知:開啟,可監控訓練作業的事件的狀態,可簡訊通知。

主題名:如不存在點擊右側「創建主題」。主題是消息發布或客戶端訂閱通知的特定事件類型。它作為發送消息和訂閱通知的信道,為發布者和訂閱者提供一個可以相互交流的通道。

事件:全部勾選

自動停止:可開啟(訓練時長大於1小時)

如下圖所示:

3)參數設置完成之後,點擊提交,確認訓練資訊,點擊「確認」

跳轉至訓練作業列表,等待創建的訓練作業,可點擊訓練作業名稱,查看詳細資訊,系統日誌,及資源佔用情況,如下圖所示:

4)在訓練任務跑完之後,可在「程式碼目錄」處在線編輯程式碼,保存之後,可再次進行訓練模型,如下圖所示:

4.訓練輸出

訓練完成之後,可在配置的OBS訓練輸出路徑查看訓練結果

10月27日19:00-20:30直播講解《git clone開啟雲上AI開發》,預約報名://bbs.huaweicloud.com/live/cloud_live/202210271900.html

 

點擊關注,第一時間了解華為雲新鮮技術~