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

歡迎光臨散文網 會員登陸 & 注冊

PEFT: 在低資源硬件上對十億規(guī)模模型進行參數(shù)高效微調

2023-03-02 16:28 作者:HuggingFace  | 我要投稿

動機

基于 Transformers 架構的大型語言模型 (LLM),如 GPT、T5 和 BERT,已經在各種自然語言處理 (NLP) 任務中取得了最先進的結果。此外,還開始涉足其他領域,例如計算機視覺 (CV) (VIT、Stable Diffusion、LayoutLM) 和音頻 (Whisper、XLS-R)。傳統(tǒng)的范式是對通用網絡規(guī)模數(shù)據(jù)進行大規(guī)模預訓練,然后對下游任務進行微調。與使用開箱即用的預訓練 LLM (例如,零樣本推理) 相比,在下游數(shù)據(jù)集上微調這些預訓練 LLM 會帶來巨大的性能提升。

然而,隨著模型變得越來越大,在消費級硬件上對模型進行全部參數(shù)的微調變得不可行。此外,為每個下游任務獨立存儲和部署微調模型變得非常昂貴,因為微調模型與原始預訓練模型的大小相同。參數(shù)高效微調(PEFT) 方法旨在解決這兩個問題!

PEFT 方法僅微調少量 (額外) 模型參數(shù),同時凍結預訓練 LLM 的大部分參數(shù),從而大大降低了計算和存儲成本。這也克服了災難性遺忘的問題,這是在 LLM 的全參數(shù)微調期間觀察到的一種現(xiàn)象。PEFT 方法也顯示出在低數(shù)據(jù)狀態(tài)下比微調更好,可以更好地泛化到域外場景。它可以應用于各種模態(tài),例如圖像分類以及 Stable diffusion dreambooth。

災難性遺忘論文地址:
https://arxiv.org/abs/1312.6211圖像分類案例:
https://github.com/huggingface/peft/tree/main/examples/image_classificationStable Diffusion Dreambooth 案例:
https://github.com/huggingface/peft/tree/main/examples/lora_dreambooth

PEFT 方法還有助于提高輕便性,其中用戶可以使用 PEFT 方法調整模型,以獲得與完全微調的大型檢查點相比,大小僅幾 MB 的微小檢查點。例如,?bigscience/mt0-xxl?占用 40GB 的存儲空間,全參數(shù)微調將導致每個下游數(shù)據(jù)集有對應 40GB 檢查點。而使用 PEFT 方法,每個下游數(shù)據(jù)集只占用幾 MB 的存儲空間,同時實現(xiàn)與全參數(shù)微調相當?shù)男阅?。來?PEFT 方法的少量訓練權重被添加到預訓練 LLM 頂層。因此,同一個 LLM 可以通過添加小的權重來用于多個任務,而無需替換整個模型。

簡而言之,PEFT 方法使您能夠獲得與全參數(shù)微調相當?shù)男阅埽瑫r只有少量可訓練參數(shù)。

今天,我們很高興地介紹 ?? PEFT 庫。它提供了最新的參數(shù)高效微調技術,與 ?? Transformers 和 ?? Accelerate 無縫集成。這使得能夠使用來自 Transformers 的最流行和高性能的模型,以及 Accelerate 的簡單性和可擴展性。以下是目前支持的 PEFT 方法,即將推出更多:

LoRA: LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
https://arxiv.org/pdf/2106.09685.pdfPrefix Tuning: P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
https://arxiv.org/pdf/2110.07602.pdf
Prompt Tuning: The Power of Scale for Parameter-Efficient Prompt Tuning
https://arxiv.org/pdf/2104.08691.pdfP-Tuning: GPT Understands, Too
https://arxiv.org/pdf/2103.10385.pdf

PEFT 庫地址:
https://github.com/huggingface/peft

用例

我們在GitHub PEFT 庫中探索了許多有趣的用例。以下羅列的是其中最有趣的:

  1. 使用 ?? PEFT LoRA 在具有 11GB RAM 的消費級硬件上調整?bigscience/T0_3B?模型 (30 億個參數(shù)),例如 Nvidia GeForce RTX 2080 Ti、Nvidia GeForce RTX 3080 等,并且使用 ?? Accelerate 的 DeepSpeed 集成: peft_lora_seq2seq_accelerate_ds_zero3_offload.py。這意味著您可以在 Google Colab 中調整如此大的 LLM。
    https://github.com/huggingface/peft/blob/main/examples/conditional_generation/

  2. 通過使用 ?? PEFT LoRA 和 bitsandbytes 在 Google Colab 中啟用?OPT-6.7b?模型 (67 億個參數(shù)) 的 INT8 調整,將前面的示例提升一個檔次: Colab 地址
    https://github.com/TimDettmers/bitsandbytes

  3. 在具有 11GB RAM 的消費級硬件上使用 ?? PEFT 進行穩(wěn)定的 Diffusion Dreambooth 訓練,例如 Nvidia GeForce RTX 2080 Ti、Nvidia GeForce RTX 3080 等。試用 Space 演示,它應該可以在 T4 實例 (16GB GPU) 上無縫運行: smangrul/peft-lora-sd-dreambooth。
    https://hf.co/spaces/smangrul/peft-lora-sd-dreambooth

使用 ?? PEFT 訓練您的模型

讓我們考慮使用 LoRA 微調?bigscience/mt0-large?的情況。

1. 引進必要的庫

2. 創(chuàng)建PEFT方法對應的配置

3. 通過調用?get_peft_model?包裝基礎 ?? Transformer 模型

就是這樣!訓練循環(huán)的其余部分保持不變。有關端到端示例,請參閱示例 peft_lora_seq2seq.ipynb。

https://github.com/huggingface/peft/blob/main/examples/conditional_generation/

4. 當您準備好保存模型以供推理時,只需執(zhí)行以下操作。

這只會保存經過訓練的增量 PEFT 權重。例如,您可以在此處的?twitter_complaints?raft 數(shù)據(jù)集上找到使用 LoRA 調整的?bigscience/T0_3B?: smangrul/twitter_complaints_bigscience_T0_3B_LORA_SEQ_2_SEQ_LM。請注意,它只包含 2 個文件: adapter_config.json 和 adapter_model.bin,后者只有 19MB。

模型地址:
https://hf.co/smangrul/twitter_complaints_bigscience_T0_3B_LORA_SEQ_2_SEQ_LM

5. 要加載它進行推理,請遵循以下代碼片段:


下一步

我們發(fā)布了 PEFT 方法,作為在下游任務和域上調整大型 LLM 的有效方式,節(jié)省了大量計算和存儲,同時實現(xiàn)與全參數(shù)微調相當?shù)男阅堋T诮酉聛淼膸讉€月中,我們將探索更多 PEFT 方法,例如 (IA)3 和瓶頸適配器。此外,我們將關注新的用例,例如 Google Colab 中?whisper-large?模型的 INT8 訓練以及使用 PEFT 方法調整 RLHF 組件 (例如策略和排序器)。

Whisper Large 模型鏈接:
https://huggingface.co/openai/whisper-large

與此同時,我們很高興看到行業(yè)從業(yè)者如何將 PEFT 應用于他們的用例 - 如果您有任何問題或反饋,請在我們的 GitHub 倉庫 上提出問題 ??。

PEFT GitHub 倉庫地址:
https://github.com/huggingface/peft

祝你有一趟快樂的參數(shù)高效微調之旅!

英文原文: https://hf.co/blog/peft

作者: Sourab Mangrulkar、Sayak Paul

譯者: Ada Cheng,研究方向為預訓練語言模型

審校、排版: zhongdongy (阿東)


PEFT: 在低資源硬件上對十億規(guī)模模型進行參數(shù)高效微調的評論 (共 條)

分享到微博請遵守國家法律
沧州市| 井陉县| 合肥市| 永昌县| 明光市| 三门县| 谷城县| 逊克县| 霍州市| 白沙| 白朗县| 红桥区| 海门市| 盘锦市| 成武县| 宝应县| 重庆市| 墨脱县| 宜君县| 贺兰县| 东兰县| 临泉县| 香港 | 新野县| 梁平县| 马边| 阿城市| 始兴县| 塔河县| 莱州市| 房山区| 汽车| 和田市| 广饶县| 布尔津县| 新丰县| 万源市| 蓬莱市| 长丰县| 巢湖市| 揭东县|