精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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(流螢)模型的工作。對大模型進(jìn)行全量參數(shù)微調(diào)需要大量GPU資源,所以我們通過對Bloom進(jìn)行詞表裁剪,在4*32G的顯卡上,勉強(qiáng)訓(xùn)練起了2.6B的firefly模型。

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

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

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

論文地址:

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

項(xiàng)目代碼:

https://github.com/yangjianxin1/Firefly

模型權(quán)重:

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

01

QLoRA簡介

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

LoRA簡介

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

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

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

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

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

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

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

QLoRA簡介

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

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

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

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

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

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

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

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

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

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

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

實(shí)驗(yàn)分析

QLoRA方法是否有用,其與全量參數(shù)微調(diào)的差距有多大?作者使用LLaMA-7B和Alpaca數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn)。下圖結(jié)果表明,通過插入更多的adapter,能夠彌補(bǔ)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)的實(shí)驗(yàn)指標(biāo)。

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

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

在指令微調(diào)階段,數(shù)據(jù)質(zhì)量和數(shù)據(jù)數(shù)量,哪一個(gè)更重要?作者使用三種不同的訓(xùn)練集,每個(gè)數(shù)據(jù)集分別使用5萬、10萬、15萬的數(shù)據(jù)量進(jìn)行訓(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,這進(jìn)一步驗(yàn)證了,數(shù)據(jù)質(zhì)量遠(yuǎn)比數(shù)量重要,模型的知識來源于預(yù)訓(xùn)練階段。

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

02

項(xiàng)目實(shí)踐

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

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

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

我們在一張32G顯卡上使用QLoRA進(jìn)行訓(xùn)練,在所有全連接層處都插入adapter,最終參與訓(xùn)練的參數(shù)量超過1億,相當(dāng)于一個(gè)bert-base的參數(shù)量。訓(xùn)練時(shí)只計(jì)算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的基本原理,以及論文中一些比較重要的實(shí)驗(yàn)結(jié)論。并且使用QLoRA對bloom-7b1模型進(jìn)行中文指令微調(diào),獲得了非常不錯(cuò)的效果。

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

一些碎碎念:

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

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

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


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

    關(guān)注

    28

    文章

    4702

    瀏覽量

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

    關(guān)注

    3

    文章

    3254

    瀏覽量

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

    關(guān)注

    0

    文章

    508

    瀏覽量

    10245

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    TPS7B4253-Q1引腳FMEA

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

    TPS7B4250-Q1短路可靠性測試

    電子發(fā)燒友網(wǎng)站提供《TPS7B4250-Q1短路可靠性測試.pdf》資料免費(fèi)下載
    發(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èi)下載
    發(fā)表于 09-29 11:20 ?0次下載

    TPS7B7702-Q1短路測試報(bào)告

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

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

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

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

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

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

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

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

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

    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ī)格書 松下

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

    電子發(fā)燒友網(wǎng)站提供《低壓降電壓跟蹤 LDO TPS7B4250-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 02-29 13:53 ?0次下載
    低壓降電壓跟蹤 LDO TPS<b class='flag-5'>7B4250-Q1</b>數(shù)據(jù)表

    雙卡網(wǎng)關(guān)相比單卡網(wǎng)關(guān)有哪些優(yōu)勢?

    雙卡網(wǎng)關(guān)相比單卡網(wǎng)關(guān)有哪些優(yōu)勢? 雙卡網(wǎng)關(guān)是指具備同時(shí)連接兩個(gè)SIM卡的網(wǎng)關(guān)設(shè)備,而單卡網(wǎng)關(guān)則是只支持一張SIM卡的設(shè)備。雙卡網(wǎng)關(guān)相比單卡網(wǎng)關(guān)具有許多優(yōu)勢,下面將詳細(xì)介紹。 首先,雙卡網(wǎng)關(guān)具備更強(qiáng)
    的頭像 發(fā)表于 12-19 14:26 ?596次閱讀

    一種新穎的大型語言模型知識更新微調(diào)范式

    我們使用LLAMA2-7B作為實(shí)驗(yàn)的基礎(chǔ)模型。我們主要評估將舊知識更新為新知識的能力,因此模型將首先在舊知識上進(jìn)行為期3個(gè)時(shí)期的微調(diào)。表1中F-Learning中設(shè)置的超參數(shù)λ分別取值為0.3、0.7、0.1和1.5。
    發(fā)表于 12-01 15:10 ?423次閱讀
    一種新穎的大型語言模型知識更新<b class='flag-5'>微調(diào)</b>范式