国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AI框架:9大主流分布式深度學(xué)習(xí)框架簡介

這篇具有很好參考價值的文章主要介紹了AI框架:9大主流分布式深度學(xué)習(xí)框架簡介。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

轉(zhuǎn)載翻譯Medium上一篇關(guān)于分布式深度學(xué)習(xí)框架的文章 https://medium.com/@mlblogging.k/9-libraries-for-parallel-distributed-training-inference-of-deep-learning-models-5faa86199c1fmedium.com/@mlblogging.k/9-libraries-for-parallel-distributed-training-inference-of-deep-learning-models-5faa86199c1f

一、訓(xùn)練大模型的基礎(chǔ)

大型深度學(xué)習(xí)模型在訓(xùn)練時需要大量內(nèi)存來存儲中間激活、權(quán)重等參數(shù),導(dǎo)致某些模型只能在單個 GPU 上使用非常小的批大小進行訓(xùn)練,甚至無法在單個 GPU上進行訓(xùn)練,使得模型訓(xùn)練在某些情況下非常低效和不可能。

在大規(guī)模深度學(xué)習(xí)模型訓(xùn)練中有個主要范式:

  • 數(shù)據(jù)并行
  • 模型并行

我們將討論大規(guī)模深度學(xué)習(xí)模型訓(xùn)練中的核心概念以及在模型訓(xùn)練領(lǐng)域的最新進展和改進方法,然后分享一些實現(xiàn)這些方法的可用庫。

1.數(shù)據(jù)并行

應(yīng)用數(shù)據(jù)并行最常見的場景是模型尺寸能夠被 GPU 內(nèi)存容納,數(shù)據(jù)批大小會增加模型訓(xùn)練的難度。解決方案是讓模型的不同實例在不同的 GPU 和不同批數(shù)據(jù)上運行,如下圖所示。

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

模型的每個實例都使用相同的參數(shù)進行初始化,但在前向傳遞期間,不同批次的數(shù)據(jù)被發(fā)送到每個模型。 收集來自每個模型實例的梯度并計算梯度更新。,然后更新模型參數(shù)并將其作為更新發(fā)送到每個模型實例。

2.模型并行

當單個 GPU無法容納模型尺寸時,模型并行性變得必要,有必要將模型拆分到多個 GPU 上進行訓(xùn)練。

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

通過把一個大模型拆分到多個 GPU 上訓(xùn)練,可以實現(xiàn)模型尺寸超過單個 GPU顯存的深度學(xué)習(xí)模型訓(xùn)練。 這種方法的問題是計算使用效率不高,因為在任何時間點只有一個 GPU 正在使用,而其他 GPU 處于空閑狀態(tài)。

二、進階演化

上述兩個并行訓(xùn)練范式已有各種優(yōu)化和增強方法,使訓(xùn)練/推理變得高效,包含如下:

  • TensorParallel
  • Pipeline Model Parallel
  • Zero Redundancy Optimizer (ZeRO)
  • Sharded DDP

三、主流框架

1. Megatron-LM

Megatron 是由 NVIDIA 深度學(xué)習(xí)應(yīng)用研究團隊開發(fā)的大型 Transformer 語言模型,該模型用于研究大規(guī)模訓(xùn)練大型語言模型。Megatron 支持transformer模型的模型并行(張量、序列和管道)和多節(jié)點預(yù)訓(xùn)練,同時還支持 BERT、GPT 和 T5 等模型。

2.DeepSpeed

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

DeepSpeed是微軟的深度學(xué)習(xí)庫,已被用于訓(xùn)練 Megatron-Turing NLG 530B 和 BLOOM等大型模型。DeepSpeed的創(chuàng)新體現(xiàn)在三個方面:訓(xùn)練 ,推理 ,壓縮

DeepSpeed具備以下優(yōu)勢:

  • 訓(xùn)練/推理具有數(shù)十億或數(shù)萬億個參數(shù)的密集或稀疏模型
  • 實現(xiàn)出色的系統(tǒng)吞吐量并有效擴展到數(shù)千個 GPU
  • 在資源受限的 GPU 系統(tǒng)上訓(xùn)練/推理
  • 為推理實現(xiàn)前所未有的低延遲和高吞吐量
  • 以低成本實現(xiàn)極致壓縮,實現(xiàn)無與倫比的推理延遲和模型尺寸縮減

3. FairScale

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

FairScale(由 Facebook 研究)是一個用于高性能和大規(guī)模訓(xùn)練的 PyTorch 擴展庫。 FairScale 的愿景如下:

  • 可用性:用戶應(yīng)該能夠以最小的認知代價理解和使用 FairScale API。
  • 模塊化:用戶應(yīng)該能夠?qū)⒍鄠€ FairScale API 無縫組合為訓(xùn)練循環(huán)的一部分。
  • 性能:airScale API 在擴展和效率方面提供了最佳性能。

FairScale 支持Fully Sharded Data Parallel (FSDP),這是擴展大型神經(jīng)網(wǎng)絡(luò)訓(xùn)練的推薦方式。

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

FSDP workflow from https://pytorch.org/blog/introducing-pytorch-fully-sharded-data-parallel-api/

4. ParallelFormers

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

Parallelformers 是一個基于 Megatron-LM 的庫。 它與 Huggingface 庫很好地集成在一起。 Huggingface 庫中的模型可以用一行代碼并行化。 目前它只支持推理。

from transformers import AutoModelForCausalLM, AutoTokenizer
from parallelformers import parallelize
model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-neo-2.7B")
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-2.7B")

parallelize(model, num_gpus=2, fp16=True, verbose='detail')

5. ColossalAI

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

Colossal-AI提供了一組并行組件,可以用來實現(xiàn)定制化的分布式/并行訓(xùn)練,包含以下并行化策略和增強功能:

  • Data Parallelism
  • Pipeline Parallelism
  • **1D,2D,2.5D,****3D**Tensor Parallelism
  • Sequence Parallelism
  • Zero Redundancy Optimizer (ZeRO)
  • Heterogeneous Memory Management (PatrickStar)
  • For Inference**Energon-AI**

6. Alpa

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

Alpa是一個用于訓(xùn)練和服務(wù)大規(guī)模神經(jīng)網(wǎng)絡(luò)的系統(tǒng),具備如下特點:

  • 自動并行化:Alpa基于數(shù)據(jù)、運算符和管道并行機制自動化地實現(xiàn)單設(shè)備代碼在分布式集群并行化。
  • 完美的表現(xiàn):Alpa 在分布式集群上實現(xiàn)了數(shù)十億參數(shù)的訓(xùn)練模型的線性縮放。
  • 與機器學(xué)習(xí)生態(tài)系統(tǒng)緊密集成:Alpa由開源、高性能和生產(chǎn)就緒的庫(如 Jax、XLA 和 Ray)提供支持。

7. Hivemind

ai框架,AIGC 人工智能,人工智能,深度學(xué)習(xí),框架,pytorch,TensorFlow

Hivemind是一個在互聯(lián)網(wǎng)上使用 Pytorch 進行去中心化深度學(xué)習(xí)的庫。 它主要服務(wù)場景是在來自不同大學(xué)、公司和志愿者的數(shù)百臺計算機上訓(xùn)練一個大型模型。

其主要特點是:

  • 沒有主節(jié)點的分布式訓(xùn)練:分布式哈希表允許連接分散網(wǎng)絡(luò)中的計算機。
  • 容錯反向傳播:即使某些節(jié)點沒有響應(yīng)或響應(yīng)時間過長,前向和后向傳遞也會成功。
  • 分散的參數(shù)平均:迭代地聚合來自多個工作人員的更新,而無需在整個網(wǎng)絡(luò)中同步(論文)。
  • 訓(xùn)練任意大小的神經(jīng)網(wǎng)絡(luò):它們的部分層通過分散的專家混合(論文)分布在參與者之間。

8. OneFlow

OneFlow 是一個深度學(xué)習(xí)框架,旨在實現(xiàn)用戶友好、可擴展和高效。 使用 OneFlow,很容易:

  • 使用類似 PyTorch 的 API 編寫模型
  • 使用 Global View API 將模型縮放到 n 維并行/分布式執(zhí)行
  • 使用靜態(tài)圖編譯器加速/部署模型。

9. Mesh-Tensorflow

根據(jù) github 頁面:Mesh TensorFlow (mtf) 是一種用于分布式深度學(xué)習(xí)的語言,能夠指定廣泛的分布式張量計算類別。 這里的“Mesh”是指處理器或計算設(shè)備的互連網(wǎng)絡(luò)。

其他

1.引用

  • Survey on Large Scale Neural Network Training
  • Dive into Big Model Training
  • How to Train Really Large Models on Many GPUs?
  • https://github.com/qhliu26/BM-Training
  • https://huggingface.co/docs/transformers/v4.17.0/en/parallelism
  • https://pytorch.org/tutorials/beginner/blitz/data_parallel_tutorial.html
  • https://pytorch.org/tutorials/intermediate/model_parallel_tutorial.html
  • https://pytorch.org/tutorials/i

2.參考

https://zhuanlan.zhihu.com/p/582498905文章來源地址http://www.zghlxwxcb.cn/news/detail-702838.html

到了這里,關(guān)于AI框架:9大主流分布式深度學(xué)習(xí)框架簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 分布式深度學(xué)習(xí)庫BigDL簡述

    ????????BigDL是一個在Apache Spark上構(gòu)建的分布式深度學(xué)習(xí)庫,由英特爾開發(fā)并開源。它允許用戶使用Scala或Python語言在大規(guī)模數(shù)據(jù)集上進行深度學(xué)習(xí)模型的訓(xùn)練和推理。BigDL提供了許多常見的深度學(xué)習(xí)模型和算法的實現(xiàn),包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等。由

    2024年04月10日
    瀏覽(16)
  • 機器學(xué)習(xí)分布式框架ray tune筆記

    Ray Tune作為Ray項目的一部分,它的設(shè)計目標是簡化和自動化機器學(xué)習(xí)模型的超參數(shù)調(diào)優(yōu)和分布式訓(xùn)練過程。Ray Tune簡化了實驗過程,使研究人員和數(shù)據(jù)科學(xué)家能夠高效地搜索最佳超參數(shù),以優(yōu)化模型性能。 Ray Tune的主要特點包括: 超參數(shù)搜索空間規(guī)范 : Ray Tune允許您使用多種方

    2024年02月15日
    瀏覽(36)
  • 在Kubernetes上部署分布式深度學(xué)習(xí)訓(xùn)練平臺

    作者:禪與計算機程序設(shè)計藝術(shù) 1.1 什么是深度學(xué)習(xí)? 1.2 為什么需要深度學(xué)習(xí)? 1.3 深度學(xué)習(xí)平臺架構(gòu)圖 # 2.基本概念術(shù)語說明 2.1 Kubernetes 2.2 GPU 2.3 MPI # 3.核心算法原理和具體操作步驟以及數(shù)學(xué)公式講解 3.1 數(shù)據(jù)加載流程 3.2 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計 3.3 激活函數(shù)設(shè)計 3.4 損失函數(shù)設(shè)計 3

    2024年02月07日
    瀏覽(25)
  • 機器學(xué)習(xí)分布式框架ray運行xgboost實例

    ????????Ray是一個開源的分布式計算框架,專門用于構(gòu)建高性能的機器學(xué)習(xí)和深度學(xué)習(xí)應(yīng)用程序。它的目標是簡化分布式計算的復(fù)雜性,使得用戶能夠輕松地將任務(wù)并行化并在多臺機器上運行,以加速訓(xùn)練和推理的速度。Ray的主要特點包括支持分布式任務(wù)執(zhí)行、Actor模型、

    2024年02月15日
    瀏覽(28)
  • 機器學(xué)習(xí)分布式框架ray運行TensorFlow實例

    使用Ray來實現(xiàn)TensorFlow的訓(xùn)練是一種并行化和分布式的方法,它可以有效地加速大規(guī)模數(shù)據(jù)集上的深度學(xué)習(xí)模型的訓(xùn)練過程。Ray是一個高性能、分布式計算框架,可以在集群上進行任務(wù)并行化和數(shù)據(jù)并行化,從而提高訓(xùn)練速度和可擴展性。 以下是實現(xiàn)TensorFlow訓(xùn)練的概括性描述

    2024年02月15日
    瀏覽(45)
  • 分布式深度學(xué)習(xí)中的數(shù)據(jù)并行和模型并行

    分布式深度學(xué)習(xí)中的數(shù)據(jù)并行和模型并行

    ??個人主頁: https://zhangxiaoshu.blog.csdn.net ??歡迎大家:關(guān)注??+點贊??+評論??+收藏??,如有錯誤敬請指正! ??未來很長,值得我們?nèi)Ρ几案篮玫纳睿?對于深度學(xué)習(xí)模型的預(yù)訓(xùn)練階段,海量的訓(xùn)練數(shù)據(jù)、超大規(guī)模的模型給深度學(xué)習(xí)帶來了日益嚴峻的挑戰(zhàn),因此,經(jīng)

    2024年01月24日
    瀏覽(26)
  • 【深度學(xué)習(xí)】【分布式訓(xùn)練】Collective通信操作及Pytorch示例

    【深度學(xué)習(xí)】【分布式訓(xùn)練】Collective通信操作及Pytorch示例

    相關(guān)博客 【Megatron-DeepSpeed】張量并行工具代碼mpu詳解(一):并行環(huán)境初始化 【Megatron-DeepSpeed】張量并行工具代碼mpu詳解(二):Collective通信操作的封裝mappings 【深度學(xué)習(xí)】【分布式訓(xùn)練】DeepSpeed:AllReduce與ZeRO-DP 【深度學(xué)習(xí)】混合精度訓(xùn)練與顯存分析 【深度學(xué)習(xí)】【分布式訓(xùn)練

    2023年04月13日
    瀏覽(20)
  • PyTorch Lightning:通過分布式訓(xùn)練擴展深度學(xué)習(xí)工作流

    PyTorch Lightning:通過分布式訓(xùn)練擴展深度學(xué)習(xí)工作流

    ? ????????歡迎來到我們關(guān)于 PyTorch Lightning 系列的第二篇文章!在上一篇文章中,我們向您介紹了 PyTorch Lightning,并探討了它在簡化深度學(xué)習(xí)模型開發(fā)方面的主要功能和優(yōu)勢。我們了解了 PyTorch Lightning 如何為組織和構(gòu)建 PyTorch 代碼提供高級抽象,使研究人員和從業(yè)者能夠

    2024年02月11日
    瀏覽(20)
  • 39學(xué)習(xí)分布式計算框架 Hadoop 的高可用方案,如 NameNode 集群、ZooKeeper

    39學(xué)習(xí)分布式計算框架 Hadoop 的高可用方案,如 NameNode 集群、ZooKeeper

    Hadoop 是一個分布式計算框架,用于存儲和處理大數(shù)據(jù)。在 Hadoop 集群中,NameNode 是一個關(guān)鍵組件,它負責(zé)管理 Hadoop 分布式文件系統(tǒng)(HDFS)中的文件和目錄。為了確保高可用性,需要使用多個 NameNode 節(jié)點進行冗余備份,并使用 ZooKeeper 進行故障檢測和自動故障切換。 以下是學(xué)

    2023年04月26日
    瀏覽(27)
  • 分布式鎖簡介

    分布式鎖簡介

    Redis因為單進程、性能高常被用于分布式鎖;鎖在程序中作用是同步工具,保證共享資源在同一時刻只能被一個線程訪問。 ? ? Java中經(jīng)常用的鎖synchronized、Lock,但是Java的鎖智能保證單機的時候有效,分布式集群環(huán)境就無能為力了,這時候需要用到分布式鎖。 ? 分布式鎖,就

    2023年04月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包