五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

ModelArts分布式訓(xùn)練

功能介紹

ModelArts提供了如下能力:

  • 豐富的官方預(yù)置鏡像,滿足用戶的需求。
  • 支持基于預(yù)置鏡像自定義制作專屬開發(fā)環(huán)境,并保存使用。
  • 豐富的教程,幫助用戶快速適配分布式訓(xùn)練,使用分布式訓(xùn)練極大減少訓(xùn)練時(shí)間。
  • 分布式訓(xùn)練調(diào)測(cè)的能力,可在PyCharm/VSCode/JupyterLab等開發(fā)工具中調(diào)試分布式訓(xùn)練。

約束限制

  • 總覽頁面打開的CodeLab不支持此項(xiàng)功能,但是如果用戶在AI Hub中打開了可用的案例,會(huì)自動(dòng)跳轉(zhuǎn)到CodeLab中,此時(shí)是可以使用這項(xiàng)功能的。
  • 如果切換了Notebook的規(guī)格,那么只能在Notebook進(jìn)行單機(jī)調(diào)測(cè),不能進(jìn)行分布式調(diào)測(cè),也不能提交遠(yuǎn)程訓(xùn)練任務(wù)。
  • 當(dāng)前僅支持Pytorch和MindSpore AI框架,如果MindSpore要進(jìn)行多機(jī)分布式訓(xùn)練調(diào)試,則每臺(tái)機(jī)器上都必須有8張卡。
  • ModelArts提供的調(diào)測(cè)代碼中涉及到的OBS路徑,實(shí)際使用時(shí)請(qǐng)?zhí)鎿Q為自己的實(shí)際OBS路徑。
  • ModelArts提供的調(diào)測(cè)代碼是以Pytorch為例編寫的,不同的AI框架之間,整體流程是完全相同的,只需要修改個(gè)別的參數(shù)即可。

不同類型分布式訓(xùn)練介紹

  • 單機(jī)多卡數(shù)據(jù)并行-DataParallel(DP)

    介紹基于Pytorch引擎的單機(jī)多卡數(shù)據(jù)并行分布式訓(xùn)練原理和代碼改造點(diǎn)。MindSpore引擎的分布式訓(xùn)練參見MindSpore官網(wǎng)。

  • 多機(jī)多卡數(shù)據(jù)并行-DistributedDataParallel(DDP)

    介紹基于Pytorch引擎的多機(jī)多卡數(shù)據(jù)數(shù)據(jù)并行分布式訓(xùn)練原理和代碼改造點(diǎn)。

分布式訓(xùn)練代碼示例

  • 示例:創(chuàng)建DDP分布式訓(xùn)練(PyTorch+GPU)

    介紹三種使用訓(xùn)練作業(yè)來啟動(dòng)PyTorch DDP訓(xùn)練的方法及對(duì)應(yīng)代碼示例。

  • 示例:創(chuàng)建DDP分布式訓(xùn)練(PyTorch+NPU)

    介紹了使用訓(xùn)練作業(yè)的自定義鏡像+自定義啟動(dòng)命令來啟動(dòng)PyTorch DDP on Ascend加速卡訓(xùn)練。

訓(xùn)練作業(yè)常見問題

創(chuàng)建訓(xùn)練作業(yè)常見問題

  • 兩個(gè)訓(xùn)練作業(yè)的模型都保存在容器相同的目錄下是否有沖突?

    ModelArts訓(xùn)練作業(yè)之間的存儲(chǔ)目錄相互不影響,每個(gè)環(huán)境之間彼此隔離,看不到其他作業(yè)的數(shù)據(jù)。

  • 訓(xùn)練好的模型是否可以下載或遷移到其他帳號(hào)?如何獲取下載路徑?

    通過訓(xùn)練作業(yè)訓(xùn)練好的模型可以下載,然后將下載的模型上傳存儲(chǔ)至其他帳號(hào)對(duì)應(yīng)區(qū)域的OBS中。

    獲取模型下載路徑

    1、登錄ModelArts管理控制臺(tái),在左側(cè)導(dǎo)航欄中選擇“訓(xùn)練管理 > 訓(xùn)練作業(yè)”,進(jìn)入“訓(xùn)練作業(yè)”列表。

    2、在訓(xùn)練作業(yè)列表中,單擊目標(biāo)訓(xùn)練作業(yè)名稱,查看該作業(yè)的詳情。

    3、在“配置信息”頁簽,獲取“訓(xùn)練輸出位置”下的路徑,即為訓(xùn)練模型的下載路徑。

    模型遷移到其他帳號(hào)

    您可以通過如下兩種方式將訓(xùn)練的模型遷移到其他帳號(hào)。

    1、將訓(xùn)練好的模型下載至本地后,上傳至目標(biāo)帳號(hào)對(duì)應(yīng)區(qū)域的OBS桶中。

    2、通過對(duì)模型存儲(chǔ)的目標(biāo)文件夾或者目標(biāo)桶配置策略,授權(quán)其他帳號(hào)進(jìn)行讀寫操作。詳請(qǐng)參見配置高級(jí)桶策略

  • 日志提示“RuntimeError: connect() timed out”

    問題現(xiàn)象

    使用pytorch進(jìn)行分布式訓(xùn)練時(shí),報(bào)錯(cuò)“RuntimeError: connect() timed out”。

    原因分析

    如果在此之前是有進(jìn)行數(shù)據(jù)拷貝的,每個(gè)節(jié)點(diǎn)拷貝的速度不是同一個(gè)時(shí)間完成的,然后有的節(jié)點(diǎn)沒有拷貝完,其他節(jié)點(diǎn)進(jìn)行torch.distributed.init_process_group()導(dǎo)致超時(shí)。

    處理方法

    如果是多個(gè)節(jié)點(diǎn)拷貝不同步,并且沒有barrier的話導(dǎo)致的超時(shí),可以在拷貝數(shù)據(jù)之前,先進(jìn)行torch.distributed.init_process_group(),然后再根據(jù)local_rank()==0去拷貝數(shù)據(jù),之后再調(diào)用torch.distributed.barrier()等待所有rank完成拷貝。具體可參考如下代碼:

    import moxing as mox

    import torch

    torch.distributed.init_process_group()

    if local_rank == 0:

    mox.file.copy_parallel(src,dst)

    torch.distributed.barrier()

    建議與總結(jié)

    在創(chuàng)建訓(xùn)練作業(yè)前,推薦您先使用ModelArts開發(fā)環(huán)境調(diào)試訓(xùn)練代碼,避免代碼遷移過程中的錯(cuò)誤。

    直接使用線上notebook環(huán)境調(diào)試請(qǐng)參考使用JupyterLab開發(fā)模型。

    配置本地IDE(Pycharm或者VSCode)聯(lián)接云上環(huán)境調(diào)試請(qǐng)參考使用本地IDE開發(fā)模型

  • 如何在ModelArts上獲得RANK_TABLE_FILE進(jìn)行分布式訓(xùn)練?

    ModelArts會(huì)幫用戶生成RANK_TABLE_FILE文件,可通過環(huán)境變量查看文件位置。

    在Notebook中打開terminal,可以運(yùn)行如下命令查看RANK_TABLE_FILE:

    env | grep RANK

    在訓(xùn)練作業(yè)中,您可以在訓(xùn)練啟動(dòng)腳本的首行加入如下代碼,把RANK_TABLE_FILE的值打印出來:

    os.system('env | grep RANK')


  • 多節(jié)點(diǎn)訓(xùn)練TensorFlow框架ps節(jié)點(diǎn)作為server會(huì)一直掛著,ModelArts是怎么判定訓(xùn)練任務(wù)結(jié)束?如何知道是哪個(gè)節(jié)點(diǎn)是worker呢?

    TensorFlow框架分布式訓(xùn)練的情況下,會(huì)啟動(dòng)ps與worker任務(wù)組,worker任務(wù)組為關(guān)鍵任務(wù)組,會(huì)以worker任務(wù)組的進(jìn)程退出碼,判斷訓(xùn)練作業(yè)是否結(jié)束。

    通過task name判斷的哪個(gè)節(jié)點(diǎn)是worker。下發(fā)的訓(xùn)練作業(yè)是一個(gè)volcano job,里邊會(huì)有兩個(gè)task:一個(gè)是ps、一個(gè)是worker。兩個(gè)task的啟動(dòng)命令不同,會(huì)自動(dòng)生成超參--task_name,ps的--task_name=ps,worker的 --task_name=worker。