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

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

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

單張消費級顯卡微調(diào)多模態(tài)大模型

深度學(xué)習(xí)自然語言處理 ? 來源:Smarter ? 2023-06-30 10:43 ? 次閱讀

把大模型的訓(xùn)練門檻打下來!我們在單張消費級顯卡上實現(xiàn)了多模態(tài)大模型(LaVIN-7B, LaVIN-13B)的適配和訓(xùn)練,這篇文章主要介紹一下用到的技術(shù)方案和技術(shù)細(xì)節(jié),供有需要的人參考。這里用到的模型是LaVIN(語言模型是LLaMA,視覺模型是ViT-L)。LaVIN通過參數(shù)高效的訓(xùn)練能將LLaMA拓展到多模態(tài)來完成圖文問答、對話以及文本對話等等任務(wù)。

目前的結(jié)果:7B的多模態(tài)大模型訓(xùn)練(LaVIN-7B)大約需要8~9G的顯存,13B的多模態(tài)大模型訓(xùn)練(LaVIN-13B)大約需要13~14G顯存。目前的模型在單張消費級顯卡上已經(jīng)完全能夠完成訓(xùn)練了,性能相較于fp16略有下降,但是仍然極具競爭力!未來預(yù)計65B的模型也能在單張A100(40G)上完成訓(xùn)練,我們后續(xù)會公布結(jié)果。

技術(shù)方案

我們的技術(shù)方案結(jié)合了LaVIN和qlora,主要分為以下幾點:

參數(shù)高效的多模態(tài)適配 (大概減少了一大半顯存)

4bit量化訓(xùn)練 (大概減少了3~8G的固定顯存)

梯度累計+gradient checkpointing (大概減少了一半多的顯存)

Paged Optimizer (作用不是很明顯)

參數(shù)高效的多模態(tài)適配。

bdc7c850-1692-11ee-962d-dac502259ad0.png

在此之前,我先簡單介紹一下之前的工作《Cheap and Quick: Efficient Vision-Language Instruction Tuning for Large Language Models》。我們在這個工作中提出了一種參數(shù)高效的適配方法,能夠在將整個LLM參數(shù)凍住的情況下實現(xiàn):

參數(shù)高效的多模態(tài)大模型適配(僅花費3~6M額外參數(shù))

端到端高效訓(xùn)練 (減少2/3的訓(xùn)練時間)

單模態(tài)和多模態(tài)的自動切換(兼容不同模態(tài))

通過這種方式,我們在ScienceQA上達(dá)到了接近SOTA的性能,同時實現(xiàn)了文本模態(tài)和圖文模態(tài)的同時適配。這種參數(shù)高效的訓(xùn)練方式,實際上節(jié)約了大部分的顯存。以LLaVA為比較對象,在完全微調(diào)大模型的情況下,LLaVA-13B在A100(80G)上會爆顯存。相比之下,LaVIN-13B僅僅需要大約55G的顯存開銷。考慮到LLaVA還使用了gradient checkpointing,LaVIN-13B至少節(jié)省了一半的顯存開銷(估計),同時訓(xùn)練速度會更快。相比于現(xiàn)有的參數(shù)高效的方法,我們的方案在性能和適配性上有顯著優(yōu)勢,具體參考論文,這里不贅述了。但是由于deepspeed好像不支持參數(shù)高效的訓(xùn)練方式,所以實際中顯存開銷其實和加滿優(yōu)化的LLaVA差不多,甚至略多一點。

4bit量化訓(xùn)練

4bit量化訓(xùn)練主要參考了qlora。簡單來說,qlora把LLM的權(quán)重量化成了4bit來存儲,同時在訓(xùn)練過程中反量化成16bit來保證訓(xùn)練精度。通過這種方式,能夠大大降低訓(xùn)練過程中的顯存開銷(訓(xùn)練速度應(yīng)該區(qū)別不大)。這種方法非常適合和參數(shù)高效的方法進(jìn)行結(jié)合。但是原文中針對的是單模態(tài)的LLM,同時代碼已經(jīng)封在了huggingface的庫里。因此,我們把核心代碼從huggingface的庫里抽取出來,同時遷移到了LaVIN的代碼里。主要原理就是將LLM中所有的線性層替換成4bit的量化層,感興趣的可以去參考一下我們的寫法,在quantization.py以及mm_adaptation.py中大概十來行代碼。

4bit量化訓(xùn)練之后,顯存在bs>1的時候下降的不是特別明顯。LaVIN-7B大概下降了4~6G的樣子,但是這部分的顯存下降是固定的,其實非常有價值。到這里我也很好奇qlora怎么把模型塞到單卡里的,這個時候LaVIN-7B的顯存開銷大概還在36+G的水平。后面check了一下他們的代碼發(fā)現(xiàn)了接下來的關(guān)鍵設(shè)置。

梯度累計+gradient checkpointing

這里的關(guān)鍵就在于時間換空間。通過batch size (bs)=1+梯度累計以及gradient checkpointing的方式能夠大大降低顯存開銷。這也是qlora訓(xùn)練時的一大核心(其實光靠量化訓(xùn)練很難做到顯存的極致壓縮)。我們的實驗結(jié)果大概是這樣:LaVIN-7B在bs=4改成batch size (bs)=1+梯度累計之后顯存降低到了25G左右。經(jīng)過gradient checkpointing,顯存降低到9~10G左右。到這里,顯存從原來的上百G壓縮到了10G左右,已經(jīng)非常可觀了。但是這一步的代價是訓(xùn)練速度明顯變慢了,但其實和qlora原文中的速度下降比例差不多。相比于原來完全訓(xùn)不了的情況來說,這些額外的時間開銷顯得非常微不足道。

Paged Optimizer

Paged Optimizer的作用是在快爆顯存的時候,會將optimizer中的一部分權(quán)重遷移到cpu上,從而保證訓(xùn)練的正常進(jìn)行。實際使用中,沒有感覺到太大的區(qū)別。我猜測是在顯存開銷和顯卡顯存非常接近的時候,這個設(shè)置能救下急。正常情況下,好像沒有什么太大的幫助。感興趣的可以試一下8 bit的optimizer,或許幫助更明顯。

性能比較

ScienceQA(多模態(tài)科學(xué)問答數(shù)據(jù)集):在ScienceQA上,我們單卡的情況下完成了4bit訓(xùn)練并和16bit的方法進(jìn)行了比較,結(jié)果如下:

bde233e8-1692-11ee-962d-dac502259ad0.jpg

可以看到LaVIN-lite性能仍然遠(yuǎn)超參數(shù)高效的方法LLaMA-Adapter,但是相比較16bit訓(xùn)練的LaVIN,性能出現(xiàn)了略微的下降。我們猜測原因是4bit訓(xùn)練的時候可能需要插入更多的adapter來進(jìn)行適配,也歡迎大家基于這個基線來進(jìn)行進(jìn)一步探索和比較。

最后,在解決訓(xùn)練的問題之后,我們會持續(xù)推進(jìn)模型能力的提升以及應(yīng)用場景的創(chuàng)新。另外,多模態(tài)對話模型我們也在持續(xù)迭代中,未來也會以技術(shù)報告的形式來進(jìn)行分享。





審核編輯:劉清

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

    關(guān)注

    8

    文章

    1899

    瀏覽量

    67768

原文標(biāo)題:LaVIN-lite:單張消費級顯卡微調(diào)多模態(tài)大模型

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

收藏 人收藏

    評論

    相關(guān)推薦

    簡單的模型進(jìn)行流固耦合的模態(tài)分析

      本次分享,對一個簡單的模型進(jìn)行流固耦合的模態(tài)分析,有限元科技小編主要給大家演示如何使用Hypermesh與Nastran對流固耦合的結(jié)構(gòu)進(jìn)行模態(tài)分析,以及了解聲腔對結(jié)構(gòu)模態(tài)的影響。
    發(fā)表于 07-07 17:15

    Transformer模型模態(tài)學(xué)習(xí)應(yīng)用

    隨著Transformer在視覺中的崛起,Transformer在模態(tài)中應(yīng)用也是合情合理的事情,甚至以后可能會有更多的類似的paper。
    的頭像 發(fā)表于 03-25 09:29 ?1w次閱讀
    Transformer<b class='flag-5'>模型</b>的<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>學(xué)習(xí)應(yīng)用

    VisCPM:邁向多語言模態(tài)模型時代

    隨著 GPT-4 和 Stable Diffusion 等模型模態(tài)能力的突飛猛進(jìn),模態(tài)模型
    的頭像 發(fā)表于 07-10 10:05 ?664次閱讀
    VisCPM:邁向多語言<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>大<b class='flag-5'>模型</b>時代

    更強(qiáng)更通用:智源「悟道3.0」Emu模態(tài)模型開源,在模態(tài)序列中「補(bǔ)全一切」

    當(dāng)前學(xué)界和工業(yè)界都對模態(tài)模型研究熱情高漲。去年,谷歌的 Deepmind 發(fā)布了模態(tài)視覺語言模型
    的頭像 發(fā)表于 07-16 20:45 ?657次閱讀
    更強(qiáng)更通用:智源「悟道3.0」Emu<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>大<b class='flag-5'>模型</b>開源,在<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>序列中「補(bǔ)全一切」

    中科大&amp;字節(jié)提出UniDoc:統(tǒng)一的面向文字場景的模態(tài)模型

    如上圖所示,UniDoc基于預(yù)訓(xùn)練的視覺大模型及大語言模型,將文字的檢測、識別、spotting(圖中未畫出)、模態(tài)理解等四個任務(wù),通過多模態(tài)
    的頭像 發(fā)表于 08-31 15:29 ?1384次閱讀
    中科大&amp;字節(jié)提出UniDoc:統(tǒng)一的面向文字場景的<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>大<b class='flag-5'>模型</b>

    模態(tài)模型企業(yè),智子引擎全國總部落戶南京江北

    智子引擎主要從事新一代人工智能低層引擎和模態(tài)模型的研究開發(fā)和商業(yè)化運營。本項目開發(fā)了應(yīng)用水平模態(tài)chatgpt產(chǎn)品“元乘象ChatIm
    的頭像 發(fā)表于 10-10 11:03 ?961次閱讀

    北大&amp;華為提出:模態(tài)基礎(chǔ)大模型的高效微調(diào)

    深度學(xué)習(xí)的大模型時代已經(jīng)來臨,越來越多的大規(guī)模預(yù)訓(xùn)練模型在文本、視覺和模態(tài)領(lǐng)域展示出杰出的生成和推理能力。然而大模型巨大的參數(shù)量有兩個明顯
    的頭像 發(fā)表于 11-08 16:20 ?685次閱讀
    北大&amp;華為提出:<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>基礎(chǔ)大<b class='flag-5'>模型</b>的高效<b class='flag-5'>微調(diào)</b>

    探究編輯模態(tài)大語言模型的可行性

    不同于單模態(tài)模型編輯,模態(tài)模型編輯需要考慮更多的模態(tài)信息。文章出發(fā)點依然從單
    發(fā)表于 11-09 14:53 ?443次閱讀
    探究編輯<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>大語言<b class='flag-5'>模型</b>的可行性

    模型+模態(tài)的3種實現(xiàn)方法

    我們知道,預(yù)訓(xùn)練LLM已經(jīng)取得了諸多驚人的成就, 然而其明顯的劣勢是不支持其他模態(tài)(包括圖像、語音、視頻模態(tài))的輸入和輸出,那么如何在預(yù)訓(xùn)練LLM的基礎(chǔ)上引入跨模態(tài)的信息,讓其變得更強(qiáng)大、更通用呢?本節(jié)將介紹“大
    的頭像 發(fā)表于 12-13 13:55 ?1528次閱讀
    大<b class='flag-5'>模型</b>+<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>的3種實現(xiàn)方法

    從Google模態(tài)模型看后續(xù)大模型應(yīng)該具備哪些能力

    前段時間Google推出Gemini模態(tài)模型,展示了不凡的對話能力和模態(tài)能力,其表現(xiàn)究竟如何呢?
    的頭像 發(fā)表于 12-28 11:19 ?1103次閱讀
    從Google<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>大<b class='flag-5'>模型</b>看后續(xù)大<b class='flag-5'>模型</b>應(yīng)該具備哪些能力

    機(jī)器人基于開源的模態(tài)語言視覺大模型

    ByteDance Research 基于開源的模態(tài)語言視覺大模型 OpenFlamingo 開發(fā)了開源、易用的 RoboFlamingo 機(jī)器人操作模型,只用單機(jī)就可以訓(xùn)練。
    發(fā)表于 01-19 11:43 ?323次閱讀
    機(jī)器人基于開源的<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>語言視覺大<b class='flag-5'>模型</b>

    李未可科技正式推出WAKE-AI模態(tài)AI大模型

    李未可科技模態(tài) AI 大模型正式發(fā)布,積極推進(jìn) AI 在終端的場景應(yīng)用 ? 4月18日,2024中國生成式AI大會上李未可科技正式發(fā)布為眼鏡等未來終端定向優(yōu)化等自研WAKE-AI
    發(fā)表于 04-18 17:01 ?535次閱讀
    李未可科技正式推出WAKE-AI<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>AI大<b class='flag-5'>模型</b>

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

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

    云知聲推出山海模態(tài)模型

    在人工智能技術(shù)的浩瀚星海中,模態(tài)交互技術(shù)正成為引領(lǐng)未來的新航標(biāo)。繼OpenAI的GPT-4o掀起滔天巨浪后,云知聲以創(chuàng)新之姿,推出了其匠心獨運的山海模態(tài)
    的頭像 發(fā)表于 08-27 15:20 ?315次閱讀

    利用OpenVINO部署Qwen2模態(tài)模型

    模態(tài)模型的核心思想是將不同媒體數(shù)據(jù)(如文本、圖像、音頻和視頻等)進(jìn)行融合,通過學(xué)習(xí)不同模態(tài)之間的關(guān)聯(lián),實現(xiàn)更加智能化的信息處理。簡單來說,
    的頭像 發(fā)表于 10-18 09:39 ?135次閱讀