LLM實戰(zhàn):LLM微調(diào)加速神器-Unsloth + LLama3

1. 背景

五一結(jié)束后掐场,本qiang~又投入了LLM的技術(shù)海洋中,本期將給大家?guī)鞮LM微調(diào)神器:Unsloth。

正如Unsloth官方的對外宣貫:Easily

finetune & train LLMs; Get faster with unsloth。微調(diào)訓(xùn)練LLM窑滞,可以顯著提升速度,其次顯存占用也會顯著減少恢筝。

但有一點需要說明:unsloth目前開源部分只支持單機(jī)版微調(diào)哀卫,更高效微調(diào)只能交費(fèi)使用unsloth

pro。

2. Unsloth簡介

2.1 主要特性

(1) 所有的內(nèi)核均以O(shè)penAI的Triton語言實現(xiàn)撬槽,并且手動實現(xiàn)反向傳播引擎此改。Triton語言是面向LLM訓(xùn)練加速。

(2) 準(zhǔn)確率0損失恢氯,沒有近似方法带斑,方法完全一致鼓寺。

(3) 硬件層面無需變動勋拟。支持18年之后的Nvidia GPU(V100, T4, Titan V, RTX20,30,40x, A100,

H100, L40等,GTX1070,1080也支撐妈候,但比較慢)敢靡,Cuda最低兼容版本是7.0

(4) 通過WSL適用于Linux和Windows

(5) 基于bisandbytes包,支持4bit和16bit的QLoRA/LoRA微調(diào)

(6) 開源代碼有5倍的訓(xùn)練效率提升苦银,Unsloth Pro可以提升至30倍

2.2 目前支撐的模型

由于底層算子需要使用triton重寫啸胧,因此部分開源模型的適配工作周期可能較長赶站。當(dāng)前unsloth支持的模型包含Qwen 1.5(7B, 14B, 32B, 72B), Llama3-8B,Mistral-7B, Gemma-7B, ORPO, DPO Zephyr, Phi-3(3.8B), TinyLlama

2.3 模型加速效果

Qwen1.5-7B的集成是由Firefly作者封裝并驗證,性能提升30%+纺念,顯卡減少40%+贝椿,詳見地址

2.4 安裝教程

conda create --name unsloth_env python=3.10

conda activate unsloth_env

conda install pytorch-cuda=<12.1/11.8> pytorch cudatoolkit? xformers -c pytorch -c nvidia -c xformers

pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"

pip install --no-deps trl peft accelerate bitsandbytes


3. 實戰(zhàn)

本著眼過千遍不如手過一遍的宗旨陷谱,本qiang~針對Unsloth做了一個對比實現(xiàn)烙博。對比的實驗環(huán)境分別為:P40, A40, A800,對比的模型使用的是出鍋熱乎的Llama3(8B)烟逊。

3.1 比對維度

3.2 源碼

參考地址

4 實驗結(jié)果

4.1 P40

4.2 A40

4.3 A800

4.4 結(jié)論

針對于llama3-8B進(jìn)行unsloth訓(xùn)練渣窜,與基于transformers框架訓(xùn)練進(jìn)行比對,結(jié)論如下:

(1) 集成unsloth后宪躯,顯卡占用確實更少乔宿,訓(xùn)練效率確實更快,不管是哪種維度访雪。

(2) P40增加batch_size后详瑞,顯卡的內(nèi)存占用提升,但訓(xùn)練的時間也更長臣缀,說明P40針對大批次的數(shù)據(jù)處理蛤虐,性能會降低; 但A40, A800增加batch_size后,顯卡內(nèi)存占用雖然提升肝陪,但訓(xùn)練的時間更短驳庭。

(3) A800的batch_size為1時,訓(xùn)練效率不如A40氯窍,當(dāng)batch_size增加到16時饲常,A800的訓(xùn)練效率比A40快接近一倍。因此狼讨,A800更適合處理大批次的場景贝淤,對于小batch_size,殺雞不能用牛刀政供。

5. 總結(jié)

一句話足矣~

本文主要是使用unsloth框架針對llama3的高效微調(diào)實驗播聪,提供了詳細(xì)的對比代碼以及不同維度的對比分析結(jié)果。

之后會寫一篇關(guān)于Qwen1.5的對比實驗布隔,敬請期待~

6. 參考

1. unsloth:https://github.com/unslothai/unsloth

2.Qwen1.5+Unsloth:https://github.com/unslothai/unsloth/pull/428

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末离陶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子衅檀,更是在濱河造成了極大的恐慌招刨,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哀军,死亡現(xiàn)場離奇詭異沉眶,居然都是意外死亡打却,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門谎倔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柳击,“玉大人,你說我怎么就攤上這事片习∧迥海” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵毯侦,是天一觀的道長哭靖。 經(jīng)常有香客問我,道長侈离,這世上最難降的妖魔是什么试幽? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮卦碾,結(jié)果婚禮上铺坞,老公的妹妹穿的比我還像新娘。我一直安慰自己洲胖,他們只是感情好济榨,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绿映,像睡著了一般擒滑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叉弦,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天丐一,我揣著相機(jī)與錄音,去河邊找鬼淹冰。 笑死库车,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的樱拴。 我是一名探鬼主播柠衍,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晶乔!你這毒婦竟也來了珍坊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瘪弓,失蹤者是張志新(化名)和其女友劉穎垫蛆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腺怯,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袱饭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了呛占。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虑乖。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖晾虑,靈堂內(nèi)的尸體忽然破棺而出疹味,到底是詐尸還是另有隱情,我是刑警寧澤帜篇,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布糙捺,位于F島的核電站,受9級特大地震影響笙隙,放射性物質(zhì)發(fā)生泄漏洪灯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一竟痰、第九天 我趴在偏房一處隱蔽的房頂上張望签钩。 院中可真熱鬧,春花似錦坏快、人聲如沸铅檩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昧旨。三九已至,卻和暖如春祥得,著一層夾襖步出監(jiān)牢的瞬間臼予,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工啃沪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留粘拾,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓创千,卻偏偏與公主長得像缰雇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子追驴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容