前置條件
完成訓練數據集準備,完成存儲配置準備(ZOS/HPFS),詳見我的數據集。
如果預置模型不滿足開發要求,需要基于自有模型,需要完成模型文件準備,詳見模型管理。
如果預置鏡像不滿足開發要求,需要基于自有鏡像,需要完成鏡像文件準備,詳見我的鏡像。
創建開發機
登錄智算服務平臺。
在左側導航欄選擇開發機,選擇目標開發機類型,平臺支持JupyterLab和VSCode兩種類型的開發機。
進入開發機創建頁面,填寫開發機創建的基本參數。
| 參數類型 | 參數名 | 說明 |
|---|---|---|
| 基本信息 | 名稱 | 必填,開發機名稱。 |
| 數據集配置 | 訓練數據集 | 最多可添加5個,選擇基礎數據集或者標注數據集。 |
| 模型配置 | 模型來源 | 我的模型:最多5個,自有模型開啟開發機任務。預置模型:最多5個,使用平臺預置模型開啟開發機任務。 |
| 模型配置 | 模型文件 | 選擇我的模型具體的模型文件及版本。選擇預置模型文件及具體版本。 |
| 存儲配置 | ZOS對象存儲 | 最多選擇5個,如果沒有提前創建,可以點擊“去創建對象存儲”完成創建。 |
| 存儲配置 | HPFS并行文件系統 | 最多選擇5個,如果沒有提前創建,可以點擊“去創建HPFS”完成創建。 |
| 環境配置 | 鏡像來源 | 根據當前任務情況,選擇支持選擇系統預置鏡像、自定義鏡像、共享容器鏡像和他人分享鏡像。 |
| 環境配置 | 文件目錄 | 平臺可持久化的掛載目錄,后續可以在該目錄下讀寫文件,是用戶間隔離的。 |
| 資源配置 | 集群 | 支持公共集群和專屬集群兩種類型,其中專屬集群需要提前購買。 |
| 資源配置 | 隊列 | 選擇目標隊列,展示當前總資源及使用情況。 |
| 資源配置 | 資源規格 | 選擇當前任務所需要的資源規格。 |
點擊“提交”,完成開發機任務創建。
開發機管理
啟動開發機:創建完成后的開發機默認為“未啟動”狀態,用戶可點擊啟動,開發機進入“啟動中”-“運行中”狀態。
打開開發機:當開發機進入“運行中”狀態時,可以點擊“打開”進入vscode的terminal運行終端。
停止開發機:停止當前正在運行的開發機。停止VSCode會釋放容器和資源,在停止前將數據、代碼、模型保存在系統提供的持久化掛載路徑(/work/home)中,下次啟動還可以加載出來。開發機實例從“停止中”-“未啟動”狀態。
開始訓練:點擊之后會攜帶當前開發機相關參數,進入訓練任務創建界面。
刪除開發機實例:刪除當前不再使用的開發機實例。
查看配置:查看當前開發機實例的詳細配置。
開發機中數據目錄使用(重要)
1、cache存儲:開發機默認自帶cache持久化存儲目錄。每個用戶的每一個開發機都默認贈送50GiB的/work/cache目錄。
a) 目錄隔離:在不同開發機的目錄內容是隔離的,每啟動一個開發機都是自己的一套cache。
b) 存儲時間:cache存儲在開發機停止后保存時間為5天。
c) 存儲策略:cache存儲為持久化存儲,在不關閉開發機的情況下,可一直保存。
2、mount目錄:數據和模型掛載mount目錄,/work/mount/目錄是用于使用和掛載平臺上的數據集、模型、代碼文件的,創建界面選擇對應數據集和模型后,系統自動分配掛載路徑,打開開發機即可看到這些路徑,寫代碼直接讀取這些路徑即可讀取數據和模型。
a) 存儲時間:只在開發機運行中可使用,開發機關閉后mount目錄會和容器取消掛載,也無法讀取。
b) 目錄隔離:在不同開發機的目錄內容是隔離的,每啟動一個開發機都是自己的一套mount。
c) 存儲策略:mount目錄為掛載使用,用戶在mount對應子目錄下寫入的代碼或者拖入的文件會自動轉存回原始數據集、代碼包或者模型存儲中。
【注意】:自動轉存的前提為文件或者文件夾寫入到平臺自動掛載的目錄下,在/work/mount目錄下手動創建的目錄(比如:/work/mount/abc)不會做自動轉存,同時開發機銷毀后自動清理。啟動訓練任務
在/work/share/ 目錄下創建自己的工作空間。
vscode啟動單機訓練任務
terminal 終端目前只支持單機訓練任務,訓練腳本跟tensorflow和pytorch 裸金屬訓練模式一樣。
下方是在本機執行的單機多卡torchrun分布式參數示例:
DISTRIBUTED_ARGS="
--nproc_per_node 8 \
--nnodes 1 \
--node_rank 0 \
--master_addr localhost \
--master_port 65500
"
torchrun $DISTRIBUTED_ARGS telespeed/run/llama31/pretrain_gpt.py網頁啟動多機訓練
下方是在平臺執行多機多卡訓練任務的torchrun分布式參數示例:
GPU_NUM_PER_NODE=8
DISTRIBUTED_ARGS="
--nproc_per_node $GPU_NUM_PER_NODE \
--nnodes $PET_NNODES \
--node_rank $PET_NODE_RANK \
--master_addr $PET_MASTER_ADDR \
--master_port $PET_MASTER_PORT
"
torchrun $DISTRIBUTED_ARGS telespeed/run/llama31/pretrain_gpt.py按照下圖的步驟啟動訓練任務:
后續操作
開始訓練任務:點擊之后會攜帶當前開發機相關參數,進入訓練任務創建界面。
保存至模型管理:將當前開發機實例中的模型文件保存到模型倉庫中統一管理,模型倉庫中會新增一個來源為“VSCode”的模型。后續可以基于此模型進行開發機、訓練任務和服務部署任務。
保存至代碼包:從代碼文件夾中選擇對應的文件保存至代碼包,代碼包列表中出現了上傳來源為“VSCode”的代碼包。后續可以基于此代碼包進行訓練任務和服務部署。
制作鏡像:基于當前的開發機實例制作鏡像并存為自定義鏡像,將容器內的鏡像打包至自定義鏡像中,下次直接啟動該鏡像即可,鏡像倉庫中新增來源為“VSCode”的鏡像。后續可以基于此鏡像進行開發機、訓練任務和服務部署。平臺會打包系統內的預置安裝程序等,不會打包容器內數據和外部掛載存儲數據。