在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用單卡高效微調(diào)bloom-7b1,效果驚艷

深度學(xué)習(xí)自然語言處理 ? 來源:YeungNLP ? 2023-06-08 15:19 ? 次閱讀

在文章Firefly(流螢): 中文對話式大語言模型、中文對話式大語言模型Firefly-2b6開源,使用210萬訓(xùn)練數(shù)據(jù)中,我們介紹了關(guān)于Firefly(流螢)模型的工作。對大模型進行全量參數(shù)微調(diào)需要大量GPU資源,所以我們通過對Bloom進行詞表裁剪,在4*32G的顯卡上,勉強訓(xùn)練起了2.6B的firefly模型。

在本文中,我們將介紹QLoRA,由華盛頓大學(xué)提出的一種高效微調(diào)大模型的方法,可在單張A100上對LLaMA-65B進行微調(diào)。在論文中,作者的實驗表明使用QLoRA微調(diào)的LLaMA-65B,可達到ChatGPT性能水平的99.3%(由GPT-4進行評價),并且QLoRA的性能可以逼近全量參數(shù)微調(diào)。作者做了豐富的實驗證明這一結(jié)論

6605d310-0575-11ee-8a94-dac502259ad0.png

在本文中我們將對QLoRA的基本原理進行介紹,并且在Firefly項目中進行實踐。我們在bloom-7b1的基礎(chǔ)上,使用QLoRA進行中文指令微調(diào),獲得firefly-7b1-qlora-v0.1模型,具有不錯的效果,生成效果見第三章。QLoRA確實是一種高效訓(xùn)練、效果優(yōu)秀、值得嘗試和深入研究的方法

論文地址:

https://arxiv.org/pdf/2305.14314.pdf

項目代碼:

https://github.com/yangjianxin1/Firefly

模型權(quán)重:

https://huggingface.co/YeungNLP/firefly-7b1-qlora-v0.1

01

QLoRA簡介

本章節(jié)主要對LoRA與QLoRA進行介紹,如讀者已了解本章節(jié)的內(nèi)容,可直接跳過,閱讀項目實踐部分。

LoRA簡介

在介紹QLoRA之前,簡單回顧一下LoRA。LoRA的本質(zhì)是在原模型的基礎(chǔ)上插入若干新的參數(shù),稱之為adapter。在訓(xùn)練時,凍結(jié)原始模型的參數(shù),只更新adapter的參數(shù)。對于不同的基座模型,adapter的參數(shù)量一般為幾百萬~幾千萬。

6611c670-0575-11ee-8a94-dac502259ad0.png

LoRA的優(yōu)勢在于能夠使用較少的GPU資源,在下游任務(wù)中對大模型進行微調(diào)。在開源社區(qū)中,開發(fā)者們使用LoRA對Stable Diffusion進行微調(diào),取得了非常不錯的效果。隨著ChatGPT的火爆,也涌現(xiàn)出了許多使用LoRA對LLM進行指令微調(diào)的工作。

此前,我們也實踐過使用LoRA對LLM進行指令微調(diào),雖然未進行定量分析,但主觀感受LoRA比全量微調(diào)還是有一定的差距。實踐下來,我們發(fā)現(xiàn)LoRA微調(diào)中存在以下三個痛點:

  1. 參數(shù)空間小:LoRA中參與訓(xùn)練的參數(shù)量較少,解空間較小,效果相比全量微調(diào)有一定的差距。

  2. 微調(diào)大模型成本高:對于上百億參數(shù)量的模型,LoRA微調(diào)的成本還是很高。

  3. 精度損失:針對第二點,可以采用int8或int4量化,進一步對模型基座的參數(shù)進行壓縮。但是又會引發(fā)精度損失的問題,降低模型性能。

QLoRA簡介

接下來便引入今天的主角QLoRA。整篇論文讀下來,我們認為QLoRA中比較重要的幾個做法如下:

  1. 4-bit NormalFloat:提出一種理論最優(yōu)的4-bit的量化數(shù)據(jù)類型,優(yōu)于當(dāng)前普遍使用的FP4與Int4。

  2. Double Quantization:相比于當(dāng)前的模型量化方法,更加節(jié)省顯存空間。每個參數(shù)平均節(jié)省0.37bit,對于65B的LLaMA模型,大約能節(jié)省3GB顯存空間。

  3. Paged Optimizers:使用NVIDIA統(tǒng)一內(nèi)存來避免在處理小批量的長序列時出現(xiàn)的梯度檢查點內(nèi)存峰值。

  4. 增加Adapter4-bit的NormalFloat與Double Quantization,節(jié)省了很多空間,但帶來了性能損失,作者通過插入更多adapter來彌補這種性能損失。在LoRA中,一般會選擇在query和value的全連接層處插入adapter。而QLoRA則在所有全連接層處都插入了adapter,增加了訓(xùn)練參數(shù),彌補精度帶來的性能損失

通過上述優(yōu)化,只需要41G顯存即可微調(diào)LLaMA-65B模型。甚至可以直接使用一張1080Ti來微調(diào)LLaMA-13B,手中的舊卡又可以繼續(xù)發(fā)揮余熱了

66194030-0575-11ee-8a94-dac502259ad0.png

作者使用GPT4對各個模型進行評價,結(jié)果顯示,使用QLoRA在OASST1數(shù)據(jù)集上微調(diào)得到的Guanaco-65B模型達到了ChatGPT的99.3%的性能。

66251cd4-0575-11ee-8a94-dac502259ad0.png

作者進一步采用了Elo等級分制度對各個模型進行評價,裁判為人類或者GPT-4。結(jié)果顯示Guanaco-65B和Guanaco-33B均優(yōu)于ChatGPT-3.5。

66320e80-0575-11ee-8a94-dac502259ad0.png

實驗分析

QLoRA方法是否有用,其與全量參數(shù)微調(diào)的差距有多大?作者使用LLaMA-7B和Alpaca數(shù)據(jù)集進行了實驗。下圖結(jié)果表明,通過插入更多的adapter,能夠彌補QLoRA量化帶來的性能損失,復(fù)現(xiàn)全量參數(shù)微調(diào)的效果。

6645828a-0575-11ee-8a94-dac502259ad0.jpg

除此之外,作者還將QLoRA應(yīng)用于RoBERTA和T5,評測其在GLUE和Super-NaturalInstructions數(shù)據(jù)集上的表現(xiàn)。從下表中可以看到,QLoRA+NF4+DQ基本上復(fù)現(xiàn)了BF16全量微調(diào)的實驗指標(biāo)。

下表中LoRA+BF16基本上也復(fù)現(xiàn)了BF16全量微調(diào)的實驗指標(biāo),如果作者能加上LoRA+FP4或者LoRA+int4的實驗結(jié)果,則可以更清晰地展現(xiàn)LoRA與QLoRA的性能差異。

664f34c4-0575-11ee-8a94-dac502259ad0.png

在指令微調(diào)階段,數(shù)據(jù)質(zhì)量和數(shù)據(jù)數(shù)量,哪一個更重要?作者使用三種不同的訓(xùn)練集,每個數(shù)據(jù)集分別使用5萬、10萬、15萬的數(shù)據(jù)量進行訓(xùn)練。對于下表,縱向來看,隨著數(shù)據(jù)量的增加,指標(biāo)并沒有明顯的提升,說明數(shù)據(jù)量不是關(guān)鍵因素。橫向來看,對于不同的數(shù)據(jù)集,指標(biāo)差距甚大,說明數(shù)據(jù)質(zhì)量更關(guān)鍵。

665dfd60-0575-11ee-8a94-dac502259ad0.png

值得一提的是,在論文中,作者僅使用了9千多條OASST1的數(shù)據(jù)訓(xùn)練得到Guanaco-65B,這進一步驗證了,數(shù)據(jù)質(zhì)量遠比數(shù)量重要,模型的知識來源于預(yù)訓(xùn)練階段。

模型的知識來源于預(yù)訓(xùn)練階段,指令微調(diào)目的是和人類指令進行對齊在指令微調(diào)階段,數(shù)據(jù)的質(zhì)量與豐富度,遠比數(shù)量更重要。這是最近一段時間,開源社區(qū)以及各個論文強調(diào)的一個結(jié)論,在我們的實踐中也深有體會。

02

項目實踐

在本項目中,我們使用bloom-7b1作為基座模型。數(shù)據(jù)集為moss-003-sft-no-tools,這是由MOSS項目開源的中文指令微調(diào)數(shù)據(jù)集,我們隨機抽取了29萬條作為訓(xùn)練數(shù)據(jù),訓(xùn)練得到firefly-7b1-qlora-v0.1。

訓(xùn)練時,我們將多輪對話拼接成如下格式,然后進行tokenize。

<s>input1s>target1s>input2s>target2s>...

我們在一張32G顯卡上使用QLoRA進行訓(xùn)練,在所有全連接層處都插入adapter,最終參與訓(xùn)練的參數(shù)量超過1億,相當(dāng)于一個bert-base的參數(shù)量。訓(xùn)練時只計算target部分的損失函數(shù)

訓(xùn)練超參數(shù)如下所示:

max length 1024
lr_scheduler_type cosine
batch size 16
lr 2e-4
warmup step 3000
optimizer paged_adamw_32bit
training step 18萬

模型的訓(xùn)練損失的變化趨勢如下圖所示:

66719d02-0575-11ee-8a94-dac502259ad0.png

firefly-7b1-qlora-v0.1的使用方式如下:

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, LlamaTokenizer, BitsAndBytesConfig
import torch


model_name = 'bigscience/bloom-7b1'
adapter_name = 'YeungNLP/firefly-7b1-qlora-v0.1'
device = 'cuda'
input_pattern = '{}'


model = AutoModelForCausalLM.from_pretrained(
    model_name,
    low_cpu_mem_usage=True,
    torch_dtype=torch.float16,
    device_map='auto'
)
model = PeftModel.from_pretrained(model, adapter_name)
model.eval()
model = model.to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name)


text = input('User:')
while True:
    text = input_pattern.format(text)
    input_ids = tokenizer(text, return_tensors="pt").input_ids
    input_ids = input_ids.to(device)
    outputs = model.generate(input_ids=input_ids, max_new_tokens=250, do_sample=True, top_p=0.75, temperature=0.35,
                             repetition_penalty=1.2, eos_token_id=tokenizer.eos_token_id)
    rets = tokenizer.batch_decode(outputs)
    output = rets[0].strip().replace(text, "").replace('', "")
    print("Firefly:{}".format(output))
    text = input('User:')

03

生成效果

下面的樣例均firefly-7b1-qlora-v0.1模型所生成,未經(jīng)修改,僅供參考。

多輪對話

對話示例1:

667e0056-0575-11ee-8a94-dac502259ad0.png

對話示例2:

6685fe96-0575-11ee-8a94-dac502259ad0.png

郵件生成

6692f588-0575-11ee-8a94-dac502259ad0.png

669e3b14-0575-11ee-8a94-dac502259ad0.png

66ad37c2-0575-11ee-8a94-dac502259ad0.png

商品文案生成

66ba38be-0575-11ee-8a94-dac502259ad0.png

66c1ebf4-0575-11ee-8a94-dac502259ad0.png

醫(yī)療問答

66c9ee30-0575-11ee-8a94-dac502259ad0.png

66d44b82-0575-11ee-8a94-dac502259ad0.png

創(chuàng)意性寫作

66e73832-0575-11ee-8a94-dac502259ad0.png

66fbeb9c-0575-11ee-8a94-dac502259ad0.png

670acae0-0575-11ee-8a94-dac502259ad0.png

67168ce0-0575-11ee-8a94-dac502259ad0.png

672414f0-0575-11ee-8a94-dac502259ad0.png

其他例子

672ec27e-0575-11ee-8a94-dac502259ad0.png

6738be0a-0575-11ee-8a94-dac502259ad0.png

67452e10-0575-11ee-8a94-dac502259ad0.png

67578ea2-0575-11ee-8a94-dac502259ad0.png

04

結(jié)語

在本文中,我們介紹了QLoRA的基本原理,以及論文中一些比較重要的實驗結(jié)論。并且使用QLoRA對bloom-7b1模型進行中文指令微調(diào),獲得了非常不錯的效果。

firefly-7b1-qlora-v0.1的生成效果來看,雖然沒有做定量的評測(對LLM做評測確實比較困難),但就生成效果來看,絲毫不遜色于全量微調(diào)的firefly-2b6-v2。

一些碎碎念:

  1. 論文中表明QLoRA能夠媲美全量參數(shù)微調(diào)的效果,雖然可能需要更豐富、多角度的實驗進行驗證,但如果【增大基座模型的參數(shù)量+QLoRA】能夠優(yōu)于【全量微調(diào)較小的模型】,也是非常有意義的。

  2. 對基座模型進行量化壓縮,通過增加adapter來彌補量化導(dǎo)致性能損失,是一個非常不錯的idea,論文中的實驗也證實了這一點。并且從我們的實踐效果看來,確實驚艷,效果遠勝LoRA。

  3. 最后,如果你手邊的訓(xùn)練資源不足,QLoRA非常值得一試。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4788

    瀏覽量

    129423
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3412

    瀏覽量

    42742
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    542

    瀏覽量

    10344

原文標(biāo)題:QLoRA實戰(zhàn) | 使用單卡高效微調(diào)bloom-7b1,效果驚艷

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗】+大模型微調(diào)技術(shù)解讀

    Tuning)和Prompt-Tuning:通過在輸入序列中添加特定提示來引導(dǎo)模型生成期望的輸出,簡單有效,適用于多種任務(wù)。P-Tuning v1和P-Tuning v2:基于多任務(wù)學(xué)習(xí)的微調(diào)方法,通過
    發(fā)表于 01-14 16:51

    TPS7B4253-Q1引腳FMEA

    電子發(fā)燒友網(wǎng)站提供《TPS7B4253-Q1引腳FMEA.pdf》資料免費下載
    發(fā)表于 10-08 11:23 ?0次下載
    TPS<b class='flag-5'>7B4253-Q1</b>引腳FMEA

    TPS7B4250-Q1引腳FMEA

    電子發(fā)燒友網(wǎng)站提供《TPS7B4250-Q1引腳FMEA.pdf》資料免費下載
    發(fā)表于 10-08 11:22 ?0次下載
    TPS<b class='flag-5'>7B4250-Q1</b>引腳FMEA

    TPS7B4250-Q1短路可靠性測試

    電子發(fā)燒友網(wǎng)站提供《TPS7B4250-Q1短路可靠性測試.pdf》資料免費下載
    發(fā)表于 09-30 10:39 ?0次下載
    TPS<b class='flag-5'>7B4250-Q1</b>短路可靠性測試

    TONELUCK B7-1系列水位壓力傳感器原理圖

    電子發(fā)燒友網(wǎng)站提供《TONELUCK B7-1系列水位壓力傳感器原理圖.pdf》資料免費下載
    發(fā)表于 09-29 11:20 ?0次下載

    TPS7B7702-Q1短路測試報告

    電子發(fā)燒友網(wǎng)站提供《TPS7B7702-Q1短路測試報告.pdf》資料免費下載
    發(fā)表于 09-25 11:27 ?0次下載
    TPS<b class='flag-5'>7B7702-Q1</b>短路測試報告

    chatglm2-6b在P40上做LORA微調(diào)

    背景: 目前,大模型的技術(shù)應(yīng)用已經(jīng)遍地開花。最快的應(yīng)用方式無非是利用自有垂直領(lǐng)域的數(shù)據(jù)進行模型微調(diào)。chatglm2-6b在國內(nèi)開源的大模型上,效果比較突出。本文章分享的內(nèi)容是用
    的頭像 發(fā)表于 08-13 17:12 ?569次閱讀
    chatglm2-6<b class='flag-5'>b</b>在P40上做LORA<b class='flag-5'>微調(diào)</b>

    示波器探頭補償微調(diào)旋鈕的作用

    的誤差,這些誤差會影響到探頭的測量精度。通過使用補償微調(diào)旋鈕,可以對探頭的性能進行調(diào)整,使其達到最佳的測量效果。 提高測量精度 補償微調(diào)旋鈕可以提高示波器探頭的測量精度。通過調(diào)整補償微調(diào)
    的頭像 發(fā)表于 08-09 11:31 ?806次閱讀

    大模型為什么要微調(diào)?大模型微調(diào)的原理

    難以達到最佳性能。為了提升模型在特定任務(wù)上的表現(xiàn),微調(diào)(Fine-tuning)成為了一個關(guān)鍵步驟。本文將詳細探討大模型為什么要進行微調(diào)以及微調(diào)的原理,并附上相關(guān)的代碼示例。
    的頭像 發(fā)表于 07-10 10:43 ?4749次閱讀

    大模型單卡的正確使用步驟

    引言 在當(dāng)今科技飛速發(fā)展的時代,大模型單卡作為一種高效的數(shù)據(jù)處理工具,廣泛應(yīng)用于各個領(lǐng)域。然而,正確使用大模型單卡對于提高工作效率、保證數(shù)據(jù)安全等方面至關(guān)重要。本文將從大模型單卡的工作
    的頭像 發(fā)表于 07-05 14:32 ?752次閱讀

    MGMF442L1C7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MGMF442L1C7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有
    發(fā)表于 05-09 19:10
    MGMF442L<b class='flag-5'>1C7</b>-MINAS A6<b class='flag-5'>B</b> 系列 (EtherCAT)  標(biāo)準(zhǔn)規(guī)格書 松下

    MGMF292L1D7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MGMF292L1D7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有
    發(fā)表于 04-24 19:00
    MGMF292L<b class='flag-5'>1D7</b>-MINAS A6<b class='flag-5'>B</b> 系列 (EtherCAT)  標(biāo)準(zhǔn)規(guī)格書 松下

    MGMF292L1C7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MGMF292L1C7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有
    發(fā)表于 04-22 19:13
    MGMF292L<b class='flag-5'>1C7</b>-MINAS A6<b class='flag-5'>B</b> 系列 (EtherCAT)  標(biāo)準(zhǔn)規(guī)格書 松下

    MGMF242L1G7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MGMF242L1G7-MINAS A6B 系列 (EtherCAT) 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有
    發(fā)表于 04-10 18:47
    MGMF242L<b class='flag-5'>1G7</b>-MINAS A6<b class='flag-5'>B</b> 系列 (EtherCAT)  標(biāo)準(zhǔn)規(guī)格書 松下

    低壓降電壓跟蹤 LDO TPS7B4250-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《低壓降電壓跟蹤 LDO TPS7B4250-Q1數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 02-29 13:53 ?0次下載
    低壓降電壓跟蹤 LDO TPS<b class='flag-5'>7B4250-Q1</b>數(shù)據(jù)表
    主站蜘蛛池模板: 成人a在线观看 | 中文字幕一区二区三区乱码aⅴ | 美女被免费网站91色 | 久久网免费视频 | 色婷婷久久综合中文久久蜜桃 | 制服丝袜在线一区 | 免费日韩网站 | 五月桃花网婷婷亚洲综合 | 日本黄色录像视频 | 香港澳门a级三级三级全黄 香港经典a毛片免费观看爽爽影院 | 天天尻 | 激情文学综合丁香 | 国产精品福利午夜h视频 | 无夜精品久久久久久 | 加勒比一区二区 | 91极品女神私人尤物在线播放 | 美女网站色免费 | 欧美精品专区55页 | 四虎成人免费影院网址 | 男人操女人免费视频 | chinese国产videoxx实拍 | 三级在线观看免播放网站 | 国产美女精品久久久久久久免费 | 二级黄色大片 | 狠狠色噜狠狠狠狠 | 欧洲成品大片在线播放 | sss华人在线play | 欧美性f | 四虎a456tncom| 天天干天天射天天插 | 六月婷婷在线视频 | 视频二区在线观看 | 97一本大道波多野吉衣 | 欧美黄色片免费看 | 天堂网. www在线资源 | 天天在线影院 | 国产成人精品日本亚洲直接 | 久久影院朴妮唛 | 四虎影院新网址 | 国产一级在线观看www色 | 色综合色综合色综合色综合 |