一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(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)行壓縮。但是又會(huì)引發(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中,一般會(huì)選擇在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í)踐中也深有體會(huì)。

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

    文章

    4937

    瀏覽量

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

    關(guān)注

    3

    文章

    3673

    瀏覽量

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

    關(guān)注

    0

    文章

    561

    瀏覽量

    10779

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    帶增益的 RX 分集 FEM(B26、B8、B20、B1/4、B3 和 B7) skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()帶增益的 RX 分集 FEM(B26、B8、B20、B1/4、B3 和 B7
    發(fā)表于 06-27 18:31
    帶增益的 RX 分集 FEM(<b class='flag-5'>B</b>26、<b class='flag-5'>B</b>8、<b class='flag-5'>B</b>20、<b class='flag-5'>B1</b>/4、<b class='flag-5'>B</b>3 和 <b class='flag-5'>B7</b>) skyworksinc

    明晚開播 |數(shù)據(jù)智能系列講座第7期:面向高泛化能力的視覺感知系統(tǒng)空間建模與微調(diào)學(xué)習(xí)

    鷺島論壇數(shù)據(jù)智能系列講座第7期「面向高泛化能力的視覺感知系統(tǒng)空間建模與微調(diào)學(xué)習(xí)」明晚8點(diǎn)精彩開播期待與您云相聚,共襄學(xué)術(shù)盛宴!|直播信息報(bào)告題目面向高泛化能力的視覺感知系統(tǒng)空間建模與微調(diào)學(xué)習(xí)報(bào)告簡介
    的頭像 發(fā)表于 06-24 08:01 ?219次閱讀
    明晚開播 |數(shù)據(jù)智能系列講座第<b class='flag-5'>7</b>期:面向高泛化能力的視覺感知系統(tǒng)空間建模與<b class='flag-5'>微調(diào)</b>學(xué)習(xí)

    帶增益的 RX 分集 FEM(B3、B39、B1、B40、B41 和 B7) skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()帶增益的 RX 分集 FEM(B3、B39、B1、B40、B41 和 B7
    發(fā)表于 06-19 18:30
    帶增益的 RX 分集 FEM(<b class='flag-5'>B</b>3、<b class='flag-5'>B</b>39、<b class='flag-5'>B1</b>、<b class='flag-5'>B</b>40、<b class='flag-5'>B</b>41 和 <b class='flag-5'>B7</b>) skyworksinc

    在阿里云PAI上快速部署NVIDIA Cosmos Reason-1模型

    NVIDIA 近期發(fā)布了 Cosmos Reason-17B 和 56B 兩款多模態(tài)大語言模型 (MLLM),它們經(jīng)過了“物理 AI 監(jiān)督微調(diào)”和“物理 AI 強(qiáng)化學(xué)習(xí)”兩個(gè)階段
    的頭像 發(fā)表于 06-04 13:43 ?290次閱讀

    Sky5? NR MB/HB LNA 前端模塊(B3、B39、B2/25、B34、B1、B66、B40、B30、B41 和 B7) skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()Sky5? NR MB/HB LNA 前端模塊(B3、B39、B2/25、B34、B1、
    發(fā)表于 05-07 18:35
    Sky5? NR MB/HB LNA 前端模塊(<b class='flag-5'>B</b>3、<b class='flag-5'>B</b>39、<b class='flag-5'>B</b>2/25、<b class='flag-5'>B</b>34、<b class='flag-5'>B1</b>、<b class='flag-5'>B</b>66、<b class='flag-5'>B</b>40、<b class='flag-5'>B</b>30、<b class='flag-5'>B</b>41 和 <b class='flag-5'>B7</b>) skyworksinc

    具有載波聚合的 RX 分集 FEM(B26、B8、B20、B1/4、B3 和 B7) skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()具有載波聚合的 RX 分集 FEM(B26、B8、B20、B1/4、B3 和 B
    發(fā)表于 04-11 15:26
    具有載波聚合的 RX 分集 FEM(<b class='flag-5'>B</b>26、<b class='flag-5'>B</b>8、<b class='flag-5'>B</b>20、<b class='flag-5'>B1</b>/4、<b class='flag-5'>B</b>3 和 <b class='flag-5'>B7</b>) skyworksinc

    沐曦加速DeepSeek滿血版單卡C500異構(gòu)推理

    近日,基于開源KTransformers架構(gòu)的 CPU/GPU 異構(gòu)推理能力,沐曦在曦云C500單卡GPU上成功實(shí)現(xiàn)DeepSeek-R1-671B滿血版單并發(fā)解碼吞吐16.5 tokens/s的優(yōu)異成績,相比社區(qū)官方數(shù)據(jù)提升20%以上。
    的頭像 發(fā)表于 03-20 15:52 ?1111次閱讀

    TPS7B69-Q1 汽車類 150mA、無電池 (40V)、高 PSRR、低 IQ、低壓差穩(wěn)壓器數(shù)據(jù)手冊

    TPS7B69xx-Q1 器件是一款低壓差線性穩(wěn)壓器,專為高達(dá) 40V 的電壓而設(shè)計(jì) V~我~操作。輕負(fù)載時(shí)靜態(tài)電流僅為 15μA(典型值), 該器件適用于備用微控制器系統(tǒng),尤其是汽車
    的頭像 發(fā)表于 03-04 10:19 ?446次閱讀
    TPS<b class='flag-5'>7B69-Q1</b> 汽車類 150mA、無電池 (40V)、高 PSRR、低 IQ、低壓差穩(wěn)壓器數(shù)據(jù)手冊

    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 ?829次閱讀
    chatglm2-6<b class='flag-5'>b</b>在P40上做LORA<b class='flag-5'>微調(diào)</b>

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

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