摘要:相比于傳統的軟體開發,AI開發存在以下4個痛點:演算法繁多;訓練時間長;算力需求大;模型需手動管理,我們可以使用云上AI開發的方式來緩解以上4個痛點,
本文分享自華為云社區《git clone開啟云上AI開發》,作者:ModelArts開發者,
已發布地址:https://developer.huaweicloud.com/develop/aigallery/article/detail?id=17052711-f3f5-4b53-bdbc-5d5c7cdc64fa
一、為什么需要云上AI開發?
相比于傳統的軟體開發,AI開發存在以下4個痛點:
1)演算法繁多;
2)訓練時間長;
3)算力需求大;
4)模型需手動管理
我們可以使用云上AI開發的方式來緩解以上4個痛點,云上AI開發的優勢:
- 任意地點接入,在線開發;
- 云上環境預置多種主流深度學習框架,開“箱“即用;
- 云端充足算力、TB級資料存盤,支持重型訓練任務;
- 云端平臺具備訓練任務版本化管理,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開發》,預約報名:https://bbs.huaweicloud.com/live/cloud_live/202210271900.html
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/518754.html
標籤:其他
