中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

上海公司做網(wǎng)站的友情鏈接是什么

上海公司做網(wǎng)站的,友情鏈接是什么,做電腦圖標(biāo)的網(wǎng)站,搜索競價(jià)托管在上一期的大模型技術(shù)實(shí)踐中,我們介紹了增加式方法、選擇式方法和重新參數(shù)化式方法三種主流的參數(shù)高效微調(diào)技術(shù)(PEFT)。微調(diào)模型可以讓模型更適合于我們當(dāng)前的下游任務(wù),但當(dāng)模型過大或數(shù)據(jù)集規(guī)模很大時(shí),單個(gè)加速器&…

在上一期的大模型技術(shù)實(shí)踐中,我們介紹了增加式方法、選擇式方法和重新參數(shù)化式方法三種主流的參數(shù)高效微調(diào)技術(shù)(PEFT)。微調(diào)模型可以讓模型更適合于我們當(dāng)前的下游任務(wù),但當(dāng)模型過大或數(shù)據(jù)集規(guī)模很大時(shí),單個(gè)加速器(比如GPU)負(fù)載和不同加速器之間的通信是值得關(guān)注的問題,這就需要關(guān)注并行技術(shù)


并行化是大規(guī)模訓(xùn)練中訓(xùn)練大型模型的關(guān)鍵策略,本期內(nèi)容UCloud將為大家?guī)?strong>“加速并行框架”的技術(shù)科普和實(shí)踐。在學(xué)習(xí)Accelerate、DeepSpeed、Megatron加速并行框架之前,我們先來了解一下數(shù)據(jù)并行和模型并行。


01

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


1.1  數(shù)據(jù)并行

數(shù)據(jù)并行可分為DP(Data Parallelism,數(shù)據(jù)并行)、DDP(Distributed Data Parallelism,分布式數(shù)據(jù)并行)、ZeRO(Zero Redundancy Optimizer,零冗余優(yōu)化器)3種方式。

其中,DP的做法是在每個(gè)設(shè)備上復(fù)制1份模型參數(shù),在每個(gè)訓(xùn)練步驟中,一個(gè)小批量數(shù)據(jù)均勻地分配給所有數(shù)據(jù)并行的進(jìn)程,以便每個(gè)進(jìn)程在不同子集的數(shù)據(jù)樣本上執(zhí)行前向和反向傳播,并使用跨進(jìn)程的平均梯度來局部更新模型。
DP通常用參數(shù)服務(wù)器(Parameters Server)來實(shí)現(xiàn),其中用作計(jì)算的GPU稱為Worker,用作梯度聚合的GPU稱為Server,Server要和每個(gè)Worker傳輸梯度,那么通信的瓶頸就在Server上。受限于通信開銷大和通信負(fù)載不均的因素,DP通常用于單機(jī)多卡場(chǎng)景。
DDP為了克服Server的帶寬制約計(jì)算效率,采用Ring-AllReduce的通信方式。在Ring-AllReduce中,所有的GPU形成1個(gè)環(huán)形通信拓?fù)?#xff0c;在1輪環(huán)形傳遞后,所有GPU都獲得了數(shù)據(jù)的聚合結(jié)果,帶寬利用率高。在Ring-AllReduce的每1輪通信中,各個(gè)GPU都與相鄰GPU通信,而不依賴于單個(gè)GPU作為聚合中心,有效解決了通信負(fù)載不均的問題。DDP同時(shí)適用于單機(jī)和多機(jī)場(chǎng)景。
ZeRO采用的是數(shù)據(jù)并行結(jié)合張量并行的方式,后面將詳細(xì)展開講解。

1.2 模型并行

模型并行(MP,Model Parallelism)可分為流水線并行(PP,Pipeline Parallelism)和張量并行(TP,Tensor Parallesim),都是解決當(dāng)GPU放不下一個(gè)模型時(shí),而將模型拆分到不同的GPU上的方法。
 

流水線并行


8fda094d94d27027d1d309b72e7b2c8e.jpeg
如上圖所示,PP將模型在Layer層面上進(jìn)行水平切分,不同切分部分在不同GPU上運(yùn)行,并使用微批處理(Micro-Batching,在1個(gè)Batch上再劃分得到Micro-Batch)和隱藏流水線泡沫(Pipeline Bubble,GPU空轉(zhuǎn)的部分)。由于水平分割和微批處理,模型功能(如權(quán)重共享和批量歸一化)的實(shí)現(xiàn)都很困難。
 

張量并行


dc8c478539773635989499eebe01f352.jpeg
如上圖所示,TP在模型的Layer內(nèi)部進(jìn)行切分,所有GPU計(jì)算所有層的不同部分在單個(gè)節(jié)點(diǎn)之外無法高效擴(kuò)展,這是由于細(xì)粒度計(jì)算和昂貴的通信所致。

02

分布式框架


2.1 Megatron


2019年英偉達(dá)發(fā)布的Megatron是一個(gè)基于PyTorch的分布式訓(xùn)練框架,實(shí)現(xiàn)了一種簡單高效的層內(nèi)模型并行方法(TP,是切分矩陣的形式實(shí)現(xiàn)的),可以訓(xùn)練具有數(shù)十億參數(shù)的Transformer模型。Megatron不需要新的編譯器或庫更改,可以通過在PyTorch中插入幾個(gè)通信操作來完全實(shí)現(xiàn)。當(dāng)然Megatron目前支持TP、PP、SP(Sequence Parallelism)和Selective Activation Recomputation,此處對(duì)TP進(jìn)行講解。
 

切分矩陣的方式


切分矩陣的方式可按行或者按列,其目的是為了當(dāng)1個(gè)模型無法完整放入1個(gè)GPU時(shí),讓這個(gè)模型能塞到多個(gè)GPU中[1]。
1.對(duì)于MLP層的切分a54a76cde12adcf0bb8f50e891c30cc4.jpeg
上圖中的f和g分別表示2個(gè)算子,每個(gè)算子都包含一組Forward + Backward操作,也就是前向傳播和后向傳播操作。具體[2]可表示為:e9a4f7fdc11423d806caba15368a3985.jpeg
左側(cè)為輸入數(shù)據(jù)X按列切開,將權(quán)重矩陣A按行切開。右側(cè)為將輸入數(shù)據(jù)X復(fù)制到2個(gè)GPU上,將權(quán)重矩陣A按列切開。當(dāng)然,這里是2個(gè)GPU的例,同理可類推到多個(gè)GPU的情況。
2.對(duì)于Multi-Head Attention層的切分Multi-Head Attention,也就是多頭注意力,其結(jié)構(gòu)如下圖所示:
5db8302c84875e60b617b083101f43f8.jpeg
其每個(gè)Head本身就是獨(dú)立計(jì)算,再將結(jié)果Concat起來,就可以把每個(gè)Head的權(quán)重放到1個(gè)GPU上。當(dāng)然,1個(gè)GPU上可以有多個(gè)Head。
d6b5a7ca310fe4732bdc6f55f65c3acd.jpeg
如上圖所示,先把輸入數(shù)據(jù)X復(fù)制到多個(gè)GPU上,此時(shí)每個(gè)Head分別在1個(gè)GPU上。對(duì)每個(gè)Head的參數(shù)矩陣Q、K、V按列切開,切分原理、算子f、算子g與MLP層切分章節(jié)中的描述一致。之后,各個(gè)GPU按照Self-Attention的計(jì)算方式得到結(jié)果,再經(jīng)過權(quán)重B按行切開的線性層計(jì)算。
 

MLP層和Multi-Head Attention層的通信量


1.MLP層的通信量由上述章節(jié)可知,MLP層進(jìn)行Forward和Backward操作都有一次All-Reduce操作。All-Reduce操作包括Reduce-Scatter操作和All-Gather操作,每個(gè)操作的通訊量都相等,假設(shè)這2個(gè)操作的通訊量都為φ,則進(jìn)行一次All-Reduce的通訊量為2φ,MLP層的總通訊量為4φ。

2.Multi-head Attention層的通信量
7b66546c24e81f04ede422ab1ebb10bf.jpeg
由上圖可知,Self-Attention層在Forward和Backward中都要做一次All-Reduce,總通訊量也是。
 

張量并行與數(shù)據(jù)并行的結(jié)合


1.MP+DP混合的結(jié)構(gòu)
c7b5105b41f3c28485d79bb6bce66bf9.jpeg
由上圖可知,中間每個(gè)虛線框表示一臺(tái)機(jī)器,每臺(tái)機(jī)器有8個(gè)GPU,合計(jì)512個(gè)GPU。同一個(gè)機(jī)器內(nèi)的1個(gè)或多個(gè)GPU構(gòu)成1個(gè)模型并行組,不同機(jī)器上同一個(gè)位置的GPU構(gòu)成1個(gè)數(shù)據(jù)并行組,圖中有8路模型并行組和64路數(shù)據(jù)并行組。
2.MP與MP+DP的通信量對(duì)比
1fbeea7c096b0987a65f846a8dba1192.jpeg
左圖是MP模式,可以看到單個(gè)GPU的計(jì)算效率為100%。隨著GPU個(gè)數(shù)的增加,通信量增大,GPU的計(jì)算效率有一定的下降。右圖是MP+DP模式,64個(gè)GPU(可理解為64臺(tái)機(jī)器,1臺(tái)機(jī)器1個(gè)GPU,此時(shí)相當(dāng)于DP模式)的計(jì)算效率有96%之高,是由于DP在計(jì)算梯度時(shí),可一邊繼續(xù)往下做Backward,一邊把梯度發(fā)送出去和DP組內(nèi)其他GPU做All-Reduce。同理,當(dāng)GPU個(gè)數(shù)增多,GPU的計(jì)算效率也會(huì)下降。

2.2 DeepSpeed


2020年微軟發(fā)布了分布式訓(xùn)練框DeepSpeed和一種新型內(nèi)存優(yōu)化技術(shù)ZeRO-1,極大地推進(jìn)了大模型訓(xùn)練的進(jìn)程。后續(xù),微軟又陸續(xù)推出ZeRO-2、ZeRO-3技術(shù)等,ZeRO這3個(gè)階段稱為ZeRO-DP(ZeRO-Powered Data Parallelism)。另外,DeepSpeed還支持自定義混合精度訓(xùn)練處理,一系列基于快速CUDA擴(kuò)展的優(yōu)化器,ZeRO-Offload到CPU和磁盤/NVMe。DeepSpeed支持PP、DP、TP這3種范式,支持萬億參數(shù)模型的訓(xùn)練。
其中,ZeRO-DP用來克服數(shù)據(jù)并行性和模型并行性的限制,通過將模型狀態(tài)(參數(shù)、梯度和優(yōu)化器狀態(tài))在數(shù)據(jù)并行進(jìn)程之間進(jìn)行分片,使用動(dòng)態(tài)通信調(diào)度實(shí)現(xiàn)在分布式設(shè)備之間共享必要的狀態(tài)。ZeRO-R技術(shù)可減少剩余的顯存消耗。在模型訓(xùn)練過程中產(chǎn)生的激活值(Activations)、存儲(chǔ)中間結(jié)果的臨時(shí)緩沖區(qū)、顯存碎片,我們稱之為剩余狀態(tài)。
 

ZeRO-DP


1.ZeRO-DP的3個(gè)階段
ZeRO-DP[3]的3個(gè)階段,可在參數(shù)zero_optimization中設(shè)置。比如:{
    "zero_optimization": {        
        "stage": stage_number,    
    }
}
其中,stage_number可寫1、2、3,當(dāng)然也可以寫0。ZeRO-1只對(duì)優(yōu)化器狀態(tài)進(jìn)行分片,ZeRO-2在ZeRO-1的基礎(chǔ)上還對(duì)梯度分片,ZeRO-3在ZeRO-2的基礎(chǔ)上還對(duì)模型參數(shù)分片。當(dāng)stage_number為0時(shí),不做任何分片處理,此時(shí)相當(dāng)于DDP。
在ZeRO-DP優(yōu)化的3個(gè)階段下,1個(gè)模型狀態(tài)在各個(gè)GPU上內(nèi)存消耗情況,如下圖所示:d8ea6add111986ea9e3bc1f89dfe7144.jpeg
其中Ψ表示模型大小(參數(shù)數(shù)量),K表示優(yōu)化器狀態(tài)的內(nèi)存倍增器。Nd表示數(shù)據(jù)并行度,也就是GPU的個(gè)數(shù)。1. Pos對(duì)應(yīng)優(yōu)化器狀態(tài)分片,也就是ZeRO-1,內(nèi)存減少4倍。2. Pos+g對(duì)應(yīng)添加梯度分片,也就是ZeRO-2, 內(nèi)存減少8倍。3. Pos+g+p對(duì)應(yīng)模型參數(shù)分片,內(nèi)存減少與數(shù)據(jù)并行性程度Nd線性相關(guān)。
論文中提到,使用64個(gè)GPU(Nd = 64)將導(dǎo)致內(nèi)存減少64倍、通信量略有增加約50%。
2.ZeRO-DP的通信量
9323f6ce9bfd0b27abf4a759e4501ff8.jpeg
由上圖可知,ZeRO-DP在使用Pos和Pg時(shí)不會(huì)增加額外的通信,同時(shí)可以實(shí)現(xiàn)高達(dá)8倍的內(nèi)存減少。使用PP,除了Pos和Pg之外,ZeRO-DP最多會(huì)引入1.5倍的通信開銷,同時(shí)進(jìn)一步降低內(nèi)存占用Nd倍。
 

ZeRO-R


1.ZeRO-R的思路將Activations Checkpoints分片到各個(gè)GPU上,并使用All-Gather操作按需重構(gòu)它們,消除了模型并行中的內(nèi)存冗余。對(duì)于非常大的模型,甚至可以選擇將激活分區(qū)移動(dòng)到CPU內(nèi)存。
2.ZeRO-R的通信量分片Activations Checkpoints(記為Pa)的通信量權(quán)衡取決于模型大小、Checkpoints策略和模型并行策略。對(duì)于模型并行來說,Pa的總通信開銷不到原始通信量的10%。

當(dāng)模型并行與數(shù)據(jù)并行結(jié)合使用時(shí),Pa可以用來將數(shù)據(jù)并行的通信量降低一個(gè)數(shù)量級(jí),代價(jià)是模型并行的通信量增加了10%,并在數(shù)據(jù)并行通信成為性能瓶頸時(shí)顯著提高效率。

2.3 Accelerate


Accelerate[4]由Huggingface于2021年發(fā)布,是一個(gè)適用于Pytorch用戶的簡單封裝的庫,其簡化了分布式訓(xùn)練和混合精度訓(xùn)練的過程。Accelerate基于torch_xla和torch.distributed,只需要添加幾行代碼,使得相同的PyTorch代碼可以在任何分布式配置下運(yùn)行!簡而言之,它使得大規(guī)模訓(xùn)練和推理變得簡單、高效和適應(yīng)性強(qiáng)。Accelerate 可與DeepSpeed、Megatron-LM 和FSDP(PyTorch Fully Sharded Data Parallel)等擴(kuò)展一起使用。

2.4 小結(jié)


Accelerate更加穩(wěn)定和易于使用,適合中小規(guī)模的訓(xùn)練任務(wù)。DeepSpeed和Megatron支持更大規(guī)模的模型。通過Accelerate庫,可輕松在單個(gè)設(shè)備或多個(gè)設(shè)備上結(jié)合Megatron、DeepSpeed進(jìn)行分布式訓(xùn)練。當(dāng)然,Megatron、Deepspeed 也可以結(jié)合使用,比如Megatron-DeepSpeed,這是NVIDIA的Megatron-LM的DeepSpeed版本。

03

在UCloud云平臺(tái)選擇A800

進(jìn)行Baichuan2大模型的微調(diào)實(shí)驗(yàn)


首先參照UCloud文檔中心(https://docs.ucloud.cn),登錄UCloud控制臺(tái)(https://console.ucloud.cn/uhost/uhost/create)。

在UCloud云平臺(tái)上創(chuàng)建云主機(jī),選擇顯卡為A800,配置如下:ebfd4b8e6d3e0902ffb4f4e19994d2f6.jpeg
實(shí)驗(yàn)項(xiàng)目代碼獲取:https://github.com/hiyouga/LLaMA-Efficient-Tuning
模型下載方式:Git Clone https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat
數(shù)據(jù)集來源于:1.https://huggingface.co/datasets/neuclir/csl/viewer/default/csl 包含多篇論文摘要、標(biāo)題、關(guān)鍵詞、學(xué)科, 可用來做標(biāo)題總結(jié),關(guān)鍵詞提取,學(xué)科分類。2.https://huggingface.co/datasets/hugcyp/LCSTS/viewer/default/train?p=24002微博新聞縮寫成標(biāo)題。3.https://huggingface.co/datasets/csebuetnlp/xlsum 中文/英文 BBC新聞、摘要和標(biāo)題。
本實(shí)驗(yàn)的微調(diào)任務(wù)是從一段文字中提取出概括性的標(biāo)題。選8萬條數(shù)據(jù)去訓(xùn)練,1000條數(shù)據(jù)作為測(cè)試集,數(shù)據(jù)樣例為:[
    {
        "instruction": "為以下內(nèi)容生成一個(gè)概括性的標(biāo)題:\n",
        "input": "隨著IT巨頭們將觸角逐漸伸向移動(dòng)中的汽車產(chǎn)品,鯰魚效應(yīng)推動(dòng)了“車聯(lián)網(wǎng)”的迅速發(fā)展,領(lǐng)軍人物蘋果與谷歌率先在這場(chǎng)跨界之爭中形成了針鋒相對(duì)的格局,繼手機(jī)屏幕、電視屏幕等領(lǐng)域之后,又展開了新一輪的“入口”搶灘戰(zhàn)。",
        "output": "汽車聯(lián)網(wǎng)蘋果已獲進(jìn)展谷歌緊隨其后開發(fā)",
        "source": "LCSTS"
    },
    {
        "instruction": "為以下內(nèi)容生成一個(gè)概括性的標(biāo)題:\n",
        "input": "調(diào)查顯示,近半數(shù)俄羅斯人一年內(nèi)未讀過一本書。曾在蘇聯(lián)時(shí)期受到極度喜愛的書籍為何在今天遭遇幾乎無人問津的尷尬境地,實(shí)體書店又將如何應(yīng)對(duì)危機(jī)?《透視俄羅斯》記者帶您一探究竟。",
        "output": "閱讀形式多元化俄羅斯或?qū)⒏鎰e紙質(zhì)圖書時(shí)代",
        "source": "LCSTS"
    }
]
根據(jù)以下配置去執(zhí)行訓(xùn)練(此處并未做參數(shù)調(diào)優(yōu)):deepspeed --num_gpus 8 --master_port=9901 src/train_bash.py \--deepspeed ds_config.json \--stage sft \--model_name_or_path /data/text-generation-webui/models/Baichuan2-13B-Chat \--do_train True \--overwrite_cache False \--finetuning_type lora \--template baichuan2 \--dataset_dir data \--dataset summary_instruction_train \--cutoff_len 1024 \--learning_rate 1e-05 \--num_train_epochs 5.0 \--max_samples 100000 \--per_device_train_batch_size 8 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--max_grad_norm 1.0 \--logging_steps 5 \--save_steps 800 \--warmup_steps 0 \--flash_attn False \--lora_rank 8 \--lora_dropout 0.1 \--lora_target W_pack \--resume_lora_training True \--output_dir saves/Baichuan2-13B-Chat/lora/2023-10-08-18-20-07 \--fp16 True \--plot_loss True
再進(jìn)行測(cè)試,測(cè)試結(jié)果為:{ "predict_bleu-4": 15.863159399999999,
"predict_rouge-1": 29.348522,"predict_rouge-2": 10.655794799999999,"predict_rouge-l": 26.600239000000002,"predict_runtime": 120.571,"predict_samples_per_second": 8.294,"predict_steps_per_second": 1.037 }
上述結(jié)果中:BLEU-4是一種用于評(píng)估機(jī)器翻譯結(jié)果的指標(biāo);ROUGE-1、ROUGE-2和ROUGE-L是ROUGE系統(tǒng)中的三個(gè)常用變體,一組用于評(píng)估文本摘要和生成任務(wù)的自動(dòng)評(píng)估指標(biāo);predict_runtime是模型進(jìn)行預(yù)測(cè)所花費(fèi)的總運(yùn)行時(shí)間,單位為秒;predict_samples_per_second是模型每秒鐘處理的樣本數(shù)量;predict_steps_per_second是模型每秒鐘執(zhí)行的步驟數(shù)量。
【參考文獻(xiàn)】[1]《Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism》
[2] Megatron-LM:https://developer.download.nvidia.com/video/gputechconf/gtc/2020/presentations/s21496-megatron-lm-training-multi-billion-parameter-language-models-using-model-parallelism.pdf[3]《ZeRO: Memory Optimizations Toward Training Trillion Parameter Models》[4] accelerate Hugging Face:https://huggingface.co/docs/accelerate/index

http://www.risenshineclean.com/news/1859.html

相關(guān)文章:

  • 網(wǎng)站定制微安電力案例臨沂色度廣告有限公司
  • 中國住建部網(wǎng)站查詢網(wǎng)寧波企業(yè)seo服務(wù)
  • win7 iis默認(rèn)網(wǎng)站設(shè)置張北網(wǎng)站seo
  • 烏魯木齊網(wǎng)站制作百度廣告聯(lián)盟賺廣告費(fèi)
  • 做五金的有哪些外貿(mào)網(wǎng)站媒體軟文推廣平臺(tái)
  • 網(wǎng)站開發(fā)聯(lián)系方式百度公司有哪些部門
  • 用前端做的比較酷的網(wǎng)站2022適合小學(xué)生的簡短新聞?wù)?/a>
  • 凡科可以做返利網(wǎng)站嗎移動(dòng)廣告平臺(tái)
  • 手機(jī)網(wǎng)站小程序華為手機(jī)業(yè)務(wù)最新消息
  • 中港建設(shè)集團(tuán)網(wǎng)站百度seo關(guān)鍵詞優(yōu)化電話
  • wordpress前臺(tái)注冊(cè)登陸網(wǎng)站優(yōu)化推廣排名
  • 網(wǎng)站制作公司哪兒濟(jì)南興田德潤有活動(dòng)嗎微信軟文模板
  • 在哪些網(wǎng)站做推廣比較好百度搜索名字排名優(yōu)化
  • 做公益的網(wǎng)站有哪些淘寶店鋪運(yùn)營
  • axure怎么做響應(yīng)式網(wǎng)站優(yōu)化大師win10能用嗎
  • 用dreamwever做網(wǎng)站小程序
  • 昆明網(wǎng)站制作計(jì)劃威海網(wǎng)站制作
  • wordpress調(diào)用列表頁seo查詢官方網(wǎng)站
  • 建設(shè)網(wǎng)站安全性seo短視頻入口引流
  • 360做網(wǎng)站和推廣怎么樣seo點(diǎn)擊排名軟件營銷工具
  • wordpress是用什么開發(fā)的網(wǎng)站搜索優(yōu)化排名
  • 電商網(wǎng)站多少錢重慶seo
  • 青島外貿(mào)建設(shè)網(wǎng)站制作搜索排名提升
  • 吉安市城鄉(xiāng)規(guī)劃建設(shè)局網(wǎng)站網(wǎng)絡(luò)營銷與策劃
  • 即將上市的手機(jī)優(yōu)優(yōu)群排名優(yōu)化軟件
  • 萍鄉(xiāng)做網(wǎng)站的公司廣州新聞熱點(diǎn)事件
  • 多媒體展廳公司seo學(xué)習(xí)論壇
  • j建設(shè)銀行信用卡網(wǎng)站開發(fā)一個(gè)平臺(tái)需要多少錢
  • 做蔬果批發(fā)有專門的網(wǎng)站么seo是什么意思怎么解決
  • 宜昌市建設(shè)工程質(zhì)量監(jiān)督站網(wǎng)站百度提交網(wǎng)址