AI創(chuàng)想秀,邂逅“華為云ModelArts”征文大賽——第一次收官
691
2025-04-04
容器使用的背景知識:
容器使用的教程非常多,這個文檔(https://yeasy.gitbook.io/docker_practice/image/build)寫的還是比較全面的,建議詳細了解紅框部分的內(nèi)容。
另外,在我們做容器調(diào)試的時候,可能會需要將宿主機的文件拷貝到容器里。具體做法可以參考博客:https://blog.csdn.net/dongdong9223/article/details/71425077
另外,調(diào)試可能會用到其他容器命令。詳細的容器命令列表,可以參考:https://yeasy.gitbook.io/docker_practice/appendix/command/docker#ke-hu-duan-ming-ling
云上鏡像倉庫的使用及ModelArts訓練任務創(chuàng)建:
可用參考ModelArts的推薦實踐:https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_0071.html
裸機與ModelArts上使用的區(qū)別和改造方案:
自定義容器在ModelArts上訓練和本地訓練的區(qū)別如下圖:
實際上帶來的工作量就是我們需要完成OBS和容器環(huán)境的數(shù)據(jù)遷移工作。增加了和OBS交互工作的整個訓練流程如下:
訓練數(shù)據(jù)、代碼、模型下載。(本地使用硬盤掛載或者docker cp,在ModelArts上使用OBSutil)
啟動腳本(用法無切換,一般就是到達執(zhí)行目錄,然后python xxx.py)
訓練結(jié)果、日志、checkpoints上傳。(本地使用硬盤掛載或者docker cp,在ModelArts上使用OBSutil)
那么,其實我們可以用一個run腳本把這個流程包起來。run.sh腳本的內(nèi)容可以參考:
#!/bin/bash ##安裝obsutil,完成AKSK配置。建議在基礎(chǔ)鏡像里做好 #mkdir -p /opt && cd /opt #wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz #tar -xzvf obsutil_linux_amd64.tar.gz && mv obsutil_linux_amd64_*/ utils #alias obsutil='/opt/utils/obsutil' #obsutil config -i=${AK} -k=${SK} -e=obs.cn-north-4.myhuaweicloud.com ##訓練輸入拷貝到容器鏡像本地 #/cache目錄的容量較大 DATA_URL=`echo ${DLS_DATA_URL} | sed /s/s3/obs/` mkdir –p /cache/data /opt/utils/obsutil cp –r –f ${DATA_URL} /cache/data ##執(zhí)行訓練任務 #涉及conda env切換時 source /xxxxx/etc/profile.d/conda.sh conda activate xxxenv conda info --envs #啟動訓練腳本 cd xxxx python xxx.py ##拷貝輸出結(jié)果到OBS目錄 TRAIN_URL=`echo ${DLS_TRAIN_URL} | sed /s/s3/obs/` /opt/utils/obsutil cp –r –f /cache/out ${TRAIN_URL}
我們把run.sh放到/opt目錄,到實際啟動任務的時候,使用以下命令啟動任務即可:
bash –x /opt/run.sh
把run.sh放到/root目錄,我們可以考慮在原鏡像里增加一層,這一層就只是COPY這個run腳本。我們可以在基礎(chǔ)鏡像里順便把obsutil安裝、配置好。參考如下dockerfile
FROM $your_docker_image_tag RUN mkdir -p /opt && cd /opt && \ wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz && \ tar -xzvf obsutil_linux_amd64.tar.gz && mv obsutil_linux_amd64_*/ utils && \ /opt/utils/obsutil config -i=${AK} -k=${SK} -e=obs.cn-north-4.myhuaweicloud.com COPY run.sh /opt/run.sh
注意,ModelArts的容器會有一個/cache目錄,這個目錄掛載的硬盤容量最大。建議下載數(shù)據(jù)和中間數(shù)據(jù)都存到這個目錄中,防止因硬盤占滿導致任務失敗。
這里我們使用了obsutil作為和OBS交互的工具,如何在本機安裝obsutil可以參考之前的博客:https://bbs.huaweicloud.com/blogs/281373
本篇博客只是簡單說了已有鏡像的改造方法,實際使用中往往不可能構(gòu)建一次就成功,所以很多工作量都是在鏡像的構(gòu)建和調(diào)試。
針對自定義鏡像的構(gòu)建和調(diào)試步驟,后續(xù)還會專門出博客介紹。
AI開發(fā)平臺ModelArts
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。