按實驗需求合理選用實例規格,一般:模型開發階段:使用最低算力2U8GB CPU。訓練或推理階段:切換至GPU規格,用完及時關閉算力環境,且切回最低算力規格。
每次實驗結束手動關閉實例。使用ModelArts公有云資源。
AI允開發平臺產品:百度的EasyDL、騰訊云AI開發平臺、阿里天池實驗室、華為云ModelArts、RunPod。免費云端AI開發平臺:Anaconda、Kaggle。
華為云ModelArts人工智能AI開發平臺+PyCharm。本地+云端混合開發環境。
PyCharm版本:2023.1
ModelArts實例創建
ModelArts控制臺地址:
https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dev-container
創建Notebook實例
名稱:Notebook實例命名,自定義,非中文
描述:當前實例添加描述性文本
自動停止:開啟、1小時
鏡像:公共鏡像、pytorch1.8-cuda10.2-cudnn7-ubuntu18.04。Notebook實例需要指定使用的鏡像。ModelArts官方提供公共鏡像和自定義鏡像,可按需選擇。自定義鏡像是用戶自行基于公共鏡像之上創建出來的自定義鏡像,包含除公共鏡像之外的自定安裝的依賴項。鏡像的選擇依據所需開發的模型場景及建模所需的依賴項。
資源類型:公共資源池
類型(計算類型):CPU。機器學習模型:建議CPU計算。深度學習模型:建議GPU計算。
實例規格:2核 8GB
存儲配置:云硬盤EVS。默認5GB存儲。
SSH遠程開發:密鑰對、遠程訪問白名單(填寫允許遠程接入的公網IP地址,多個IP用逗號分隔,留空則無接入IP限制)
完成配置后點擊立即配置,總覽所有配置選項,確認無誤后點擊提交,系統將開始執行Notebook實例創建過程,約2min。創建完畢后,在控制臺-開發環境-Notebook界面查看對應所創實例。
存儲模式-使用場景-優缺點
EVS-單機使用,面向大文件-單開發環境中使用
PFS-對象存儲,面向大文件-小文件頻繁讀寫較弱
SFS-專屬資源池中使用,可多個環境使用-生命周期綁定
本地存儲-重型訓練任務首選-生命周期綁定
EVS存儲:
使用場景:適合只在開發環境中探索數據、算法,性能較好。
優點:塊存儲SSD,可以理解為一個磁盤,整體IO性能比NFS要好,可以動態擴充,最大可以到4096GB。云硬盤EVS作為持久化存儲掛載在/home/ma-user/work目錄下,該目錄下的內容在實例停止后會被保留,存儲支持在線按需擴容。
缺點:只能在單個開發環境中使用。
PFS并行文件系統:
使用場景:數據集的存儲。將承載數據集的OBS并行文件系統掛載至Notebook中,在訓練時直接使用。代碼的存儲。在Notebook調測完成,可以直接指定對應的對象存儲路徑作為啟動訓練的代碼路徑,方便臨時修改。訓練觀測。可以將訓練日志等輸出路徑進行掛載,在Notebook中實時查看和觀測,特別是利用TensorBoard,Notebook功能完成對訓練輸出的分析。
優點:PFS是一種經過優化的高性能對象存儲文件系統,存儲成本低,吞吐量達,能夠快速處理高性能計算(HPC)工作負載。在需要使用對象存儲服務場景下,推薦使用PFS掛載。
缺點:小文件頻繁讀寫相對PFS較弱,對象存儲語義,和Posix語義有區別,需要進一步理解。
SFS彈性文件服務器:
使用場景:目前只支持在專屬資源池中使用,針對探索、實驗等非正式生產場景,建議使用這種。開發環境和訓練環境可以同時掛載一塊SFS存儲,省去了每次訓練作業下載數據的要求,一般來說中IO讀寫模型,超過32卡的大規模訓練不適合。
優點:實現為NFS,可以在多個開發環境、開發環境和訓練之間共享,如果不需要重型分布式訓練作業,特別是啟動訓練作業時,不需要額外再對數據進行下載,這種存儲遍歷性可以作為首選。
缺點:存儲生命周期和容器生命周期綁定,每次訓練都要下載數據。
本地存儲:
使用場景:重型訓練任務首選。
優點:運行所在虛擬機或者裸金屬機器上自帶的SSD高性能存儲,文件讀寫的吞吐量大,建議對于重型訓練任務先將數據準備到對應目錄再啟動訓練。默認在容器/cache目錄下進行掛載,包含500GB的可用空間。
缺點:存儲生命周期和容器生命周期綁定,每次訓練都要下載數據。
ModelArts實例使用
操作:啟動
操作:打開
+:可點擊選擇新建Notebook文件、終端
文件夾:新建目錄
上傳:可從本地PC上傳指定文件至Notebook實例
文件區:右鍵選擇操作:新建Notebook、新建目錄、文件/目錄重命名、文件/目錄刪除。。。
Notebook:新建Notebook文件
Other:Terminal:打開終端,執行命令行操作
ModelArts的Notebook與Jupyter本地環境的Notebook使用方法一致。
創建自定義鏡像
在本地PyCharm IDE中遠程連接ModelArts實例搭建本地-云端遠程混合開發環境
使用PyCharm ToolKit。
確保創建的Notebook實例以開啟SSH遠程開發功能。創建時可配,創建后亦可單獨配置。
準備密鑰對。
必要的勾選全部勾選
密鑰對名稱自定義
密鑰對類型保持默認
KMS加密保持默認
全部配置完畢后點擊確定,密鑰對即可創建成功,同時會下載至本地目錄保存。
SSH遠程開發功能配置頁面,配置密鑰對。
設置遠程訪問的白名單。白名單是指允許訪問當前實例的客戶端IP地址。需要設置的是個人本機當前IP地址。ipconfig getifaddr en0
至此,Notebook的SSH遠程開發功能配置完成。
PyCharm安裝插件。
文件-設置-插件 Settings-Plugins,搜索ModelArts。安裝重啟應用
工具欄增加ModelArts。
ModelArts-》Edit_Credential 打開配置編輯頁面
Region:資源所在區域,默認識別
Project:默認識別
Access Key Id:AK證書密鑰
Secret Access Key:SK證書密鑰
我的憑證-》訪問密鑰 -〉創建密鑰
插件自動化配置。
PyCharm -》ModelArts-〉Notebook-》Remote Config。。。
KeyPair:選擇保存本地的Notebook對應的keypair認證。創建Notebook時創建的密鑰對文件.pem文件后綴。
Apply。重啟IDE生效。重啟后初次更新要點時間。
后續本地遠程連接Notebook時,ModelArts-》Notebook-〉your notebook name。
同步上傳本地文件至Notebook。Project目錄下,右擊-》Deployment-〉Upload to 。。。。將本地工程文件上傳至指定的Notebook。
后續同步:修改代碼后保存ctrl s,即可自動同步。也可Deployment -》update 。。
插件成功登錄,SSH遠程開發環境成功連接之后,本地PyCharm自動識別出遠程環境所具備的解釋器。
遠程開發模式的使用原理
將本地代碼同步到遠程環境指定目錄下,創建出本地文件與遠程文件的映射
在本地完成代碼開發,開發完畢將本地代碼同步更新至遠程環境
在本地代碼正常開啟運行,運行的其實是遠程環境下完成同步的代碼,調度的解釋器環境也是遠程環境下的解釋器
程序在遠程環境運行,終端輸出結果在本地環境展示
RunPodGPU云資源租賃服務
相對優勢:計算資源效率較快(高)、網絡傳輸速度快、GPU資源安裝部署快。RunPod服務部署國外,網絡傳輸速度快,基本可以達到150MB/s的下載速度。RunPod提供了較豐富的GPU算力資源:RTX4090 顯存24GB、A40 顯存48GB、A100 顯存80GB,可滿足不同層面的算力需求
缺點:不支持Pycharm插件,無法支持本地-云端混合開發。較貴,最低的RTX4090顯卡的GPU算力資源1小時1美刀。
RunPod無需作為主力使用的AI開發平臺,當需要跑些較大的神經網絡模型的訓練或推理時,ModelArts無法滿足,可以考慮將項目遷移到RunPod完成訓練或推理。
https://www.runpod.io/console/deploy
————————————
僅用于本人學習
來源:網絡