最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

使用 DeepSpeed 和 Hugging Face Transformer 微調(diào) FLAN-T5 XL/XXL

2023-03-21 11:56 作者:HuggingFace  | 我要投稿

Scaling Instruction-Finetuned Language Models 論文發(fā)布了 FLAN-T5 模型,它是 T5 模型的增強(qiáng)版。FLAN-T5 由很多各種各樣的任務(wù)微調(diào)而得,因此,簡單來講,它就是個(gè)方方面面都更優(yōu)的 T5 模型。相同參數(shù)量的條件下,F(xiàn)LAN-T5 的性能相比 T5 而言有兩位數(shù)的提高。Google 在 Hugging Face 上開源了 5 個(gè) FLAN-T5 的 checkpoints,參數(shù)量范圍從 8000 萬 ?到 110 億。

  • Scaling Instruction-Finetuned Language Models 論文地址:
    https://arxiv.org/pdf/2210.11416.pdf

  • 關(guān)于 FLAN-T5 的模型篩選結(jié)果:
    https://hf.co/models?other=arxiv:2210.11416

在之前的一篇博文中,我們已經(jīng)學(xué)習(xí)了如何 針對聊天對話數(shù)據(jù)摘要生成任務(wù)微調(diào) FLAN-T5,那時(shí)我們使用的是 Base (250M 參數(shù)) 模型。本文,我們將研究如何將訓(xùn)練從 Base 擴(kuò)展到 XL (30 億參數(shù)) 或 XXL (110 億參數(shù))。

  • 針對聊天對話數(shù)據(jù)摘要生成任務(wù)微調(diào) FLAN-T5 指南:
    https://www.philschmid.de/fine-tune-flan-t5

  • Base (250M 參數(shù)) 模型:
    https://hf.co/google/flan-t5-base

  • XL (30 億參數(shù)) 模型:
    https://hf.co/google/flan-t5-xl

  • XXL (110 億參數(shù)) 模型:
    https://hf.co/google/flan-t5-xxl

這意味著我們將學(xué)習(xí)如何利用模型并行、多 GPU 以及 DeepSpeed ZeRO 來微調(diào) FLAN-T5 XL 和 XXL。

  • DeepSpeed ZeRO 鏈接:
    https://www.deepspeed.ai/tutorials/zero/

除了作為教程的部分之外,我們還跑了一系列實(shí)驗(yàn),這些實(shí)驗(yàn)數(shù)據(jù)可以幫助你選擇正確的硬件設(shè)置。你可以在?結(jié)果和實(shí)驗(yàn)?部分找到詳細(xì)信息。

處理數(shù)據(jù)集

與 針對聊天對話的摘要生成任務(wù)微調(diào) FLAN-T5 一文中類似,我們需要先準(zhǔn)備一個(gè)用于微調(diào)的數(shù)據(jù)集。本文,我們將在 CNN Dailymail 數(shù)據(jù)集 上微調(diào) FLAN-T5-XXL。我們不會贅述如何生成數(shù)據(jù)集,如果你想了解數(shù)據(jù)集生成的詳細(xì)步驟,請參閱前文提到的 Fine Tune FLAN-T5。

  • CNN Dailymail 數(shù)據(jù)集:
    https://hf.co/datasets/cnn_dailymail

  • FLAN-T5-XXL:
    https://hf.co/google/flan-t5-xxl

我們定義了一些參數(shù),本文的示例都會基于這些參數(shù),但你可以根據(jù)實(shí)際需要進(jìn)行調(diào)整。

與 Fine Tune FLAN-T5 不同,這次我們把預(yù)處理和訓(xùn)練分開。這樣我們就可以在非 GPU 實(shí)例上運(yùn)行預(yù)處理。我們先對數(shù)據(jù)集進(jìn)行預(yù)處理 (即分詞) 并將其保存到磁盤,然后訓(xùn)練腳本再從磁盤中加載預(yù)處理后的數(shù)據(jù)集。

我們在配置文件中定義了一個(gè)?prompt_template,其可用于來構(gòu)建指令提示,以提高我們模型的性能。prompt_template?有“固定”的開始詞和結(jié)束詞,文檔放在中間。這意味著我們需要確保?“固定”模板詞 + 文檔?總長不超過模型支持的最大序列長度。因此我們需要計(jì)算模型支持的最大文檔長度,稍后我們會根據(jù)它來填充或截?cái)嗄0逯械奈臋n。

現(xiàn)在我們知道,模型支持的最大輸入文檔長度為 500。除了輸入之外,我們還需要知道最大“目標(biāo)”序列長度,我們可以通過遍歷數(shù)據(jù)集中的摘要長度來得到。(代碼需要運(yùn)行幾分鐘)

使用?deepspeed?微調(diào)模型

準(zhǔn)備完畢!我們現(xiàn)在可以開始訓(xùn)練模型了!如前所述,我們將使用集成了 DeepSpeed 的 Hugging Face Trainer。因此我們需要?jiǎng)?chuàng)建一個(gè)?deespeed_config.json。DeepSpeed 配置 定義了要使用的 ZeRO 策略以及是否要使用混合精度訓(xùn)練等配置項(xiàng)。Hugging Face Trainer 允許我們從?deepspeed_config.json?中的?TrainingArguments?繼承相關(guān)配置以避免重復(fù)設(shè)置,查看 文檔了解更多信息。

  • DeepSpeed 配置:
    https://www.deepspeed.ai/docs/config-json/

  • DeepSpeed 文檔鏈接:
    https://hf.co/docs/transformers/v4.26.1/en/main_classes/deepspeed

我們創(chuàng)建了 4 組 deepspeed 配置文件用于實(shí)驗(yàn),包括?CPU 卸載?和?混合精度:

以下文件來自:
https://github.com/philschmid/deep-learning-pytorch-huggingface/blob/main/training/configs/

  • ds_flan_t5_z3_config.json

  • ds_flan_t5_z3_config_bf16.json

  • ds_flan_t5_z3_offload.json

  • ds_flan_t5_z3_offload_bf16.json

你可以根據(jù)你的運(yùn)行環(huán)境選擇,例如如果在 NVIDIA V100s 上運(yùn)行,你就不能使用帶?bf16?的配置,因?yàn)?V100 不支持?bfloat16?數(shù)據(jù)類型。

在微調(diào)?T5?模型時(shí),不能使用?fp16,因?yàn)樗鼤?dǎo)致精度溢出問題,參見問題 ?#4586,#10830,和拉取請求 #10956

倉庫地址:
https://github.com/huggingface/transformers/

如開頭所述,我們使用的是 p4dn.24xlarge AWS EC2 實(shí)例,該實(shí)例包含 8 張顯存為 40GB 的 NVIDIA A100。這意味著我們可以使用?bf16,它將減少近一半的模型顯存占用,使我們能夠在不卸載的情況下高效訓(xùn)練。

我們將使用 ds_flan_t5_z3_config_bf16.json。如果你不想用?auto?值,可以查看 文檔。

文檔地址:
https://hf.co/docs/transformers/v4.26.1/en/main_classes/deepspeed

現(xiàn)在,該訓(xùn)練腳本上場了。我們根據(jù) Fine Tune FLAN-T5 準(zhǔn)備了一個(gè) run_seq2seq_deepspeed.py 訓(xùn)練腳本,它支持我們配置 deepspeed 和其他超參數(shù),包括?google/flan-t5-xxl?的模型 ID。

run_seq2seq_deepspeed.py 鏈接:
https://github.com/philschmid/deep-learning-pytorch-huggingface/blob/main/training/scripts/run_seq2seq_deepspeed.py

我們使用?deepspeed?啟動器觸發(fā)訓(xùn)練,輸入給啟動器的參數(shù)包括 GPU 數(shù)量、deepspeed 配置及其它超參數(shù) (如?google/flan-t5-xxl?的模型 ID)。

DeepSpeed 先將模型加載到 CPU 上,然后將其拆分到 8 張 A100 上然后開始訓(xùn)練。使用 CNN Dailymail 數(shù)據(jù)集 進(jìn)行訓(xùn)練大約需要 10 個(gè)小時(shí),費(fèi)用約為?322 美元。

CNN Dailymail 數(shù)據(jù)集:
https://hf.co/datasets/cnn_dailymail

結(jié)果與實(shí)驗(yàn)

為了更好地了解硬件要求,我們對 FLAN-T5 XL 和 XXL 進(jìn)行了一系列實(shí)驗(yàn),以幫助我們評估和了解硬件需求以及訓(xùn)練這些模型的成本。

下表列出了實(shí)驗(yàn)和相關(guān)設(shè)置的詳細(xì)信息。

數(shù)據(jù)集:?"cnn_dailymail"

  • 訓(xùn)練樣本數(shù):?287113

  • 驗(yàn)證樣本數(shù):?13368

超參:

  • epochs:?3

  • 學(xué)習(xí)率:?1e-4

運(yùn)行環(huán)境設(shè)置:

  • 4x V100 16GB: p3.8xlarge

  • 4x A10G 24GB: g5.24xlarge

  • 8x V100 16GB: p3.16xlarge

  • 8x A100 40GB: p4dn.24xlarge

模型DeepSpeed 卸載硬件GPU每卡batch size精度時(shí)長費(fèi)用

我們可以看到?bf16?與 ?fp32?相比具有顯著優(yōu)勢。FLAN-T5-XXL 能放進(jìn) 4 張 A10G (24GB),但放不進(jìn) 8 張 V100 16GB。

我們的實(shí)驗(yàn)還表明,如果模型可以無需卸載同時(shí)以 batch size 大于 4 的配置跑在 GPU 上,其速度將比卸載模型和減小 batch size 的配置快約 2 倍且更具成本效益。

英文原文:?https://www.philschmid.de/fine-tune-flan-t5-deepspeed

原文作者: Philipp Schmid

譯者: Matrix Yao (姚偉峰),英特爾深度學(xué)習(xí)工程師,工作方向?yàn)?transformer-family 模型在各模態(tài)數(shù)據(jù)上的應(yīng)用及大規(guī)模模型的訓(xùn)練推理。

審校、排版: zhongdongy (阿東)

使用 DeepSpeed 和 Hugging Face Transformer 微調(diào) FLAN-T5 XL/XXL的評論 (共 條)

分享到微博請遵守國家法律
清河县| 塔城市| 二手房| 淮北市| 大竹县| 鞍山市| 新营市| 永新县| 石楼县| 石景山区| 肃北| 恩施市| 华安县| 密山市| 深水埗区| 名山县| 济源市| 金寨县| 固原市| 石渠县| 视频| 专栏| 买车| 晋城| 兴山县| 滨州市| 鄂尔多斯市| 岗巴县| 突泉县| 抚远县| 诸城市| 塔城市| 蒲城县| 民勤县| 藁城市| 伊宁市| 丹巴县| 肇源县| 塔城市| 新郑市| 施秉县|