99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

大模型微調(diào)實踐心得與認(rèn)知深化

深度學(xué)習(xí)自然語言處理 ? 來源:知乎 ? 2024-01-24 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以下內(nèi)容均為個人經(jīng)驗(臆測),不具有指導(dǎo)意義--快樂子涵醬。

關(guān)于continue

1.pre-train大模型的知識來自于pt階段,如果你想引入一些新的知識,那CPT是一個不錯的選擇。

2.但你首先要確保你有足夠大量的數(shù)據(jù)集,至少有幾B的token;

3.否則幾十條數(shù)據(jù)的情況我更推薦模型編輯更建議全量微調(diào)。

4.不確定lora是不是一個好的選擇,后面會展開講。

5.通常CPT開始的階段會出現(xiàn)一段時間的loss上升,隨后慢慢收斂,所以學(xué)習(xí)率是一個很重要的參數(shù),這很容易理解:如果lr過大,那loss值收斂會更困難,舊能力損失的會更大;如果lr過小,那可能難以學(xué)到新知識。

6.當(dāng)你數(shù)據(jù)集比較?。ɡ?00B以下?),那建議使用較小的學(xué)習(xí)率。例如可以使用pre-train階段最大學(xué)習(xí)率的10%。通常7B模型pre-train階段的學(xué)習(xí)率大概是3e-4,所以我們可以選擇3e-5。

7.記得根據(jù)你的batch size做相應(yīng)縮放。通常lr縮放倍數(shù)為batch size倍數(shù)的開方。例如batch size增大4倍,學(xué)習(xí)率對應(yīng)擴(kuò)大2倍即可。

8.warmup_ratio也很重要。通常LLM訓(xùn)練的warmup_ratio是epoch * 1%左右。例如pre-train階段一般只訓(xùn)一個epoch,則ratio是0.01;

9.SFT通常3個epoch,ratio對應(yīng)為0.03但是如果做CPT,建議warmup_ratio調(diào)大一點。如果你的數(shù)據(jù)集很大,有幾百b,那warmup其實不影響最重的模型效果。但通常我們的數(shù)據(jù)集不會有那么大,所以更小的ratio可以讓模型“過渡”得更平滑。

10.我甚至試過3個epoch的訓(xùn)練(SFT),第一個epoch全部用來warmup,結(jié)果是work的。這里參考了Qwen-7b的技術(shù)報告。

11.所以學(xué)習(xí)率和warmup_ratio是兩個相輔相成的概念,二者通常是成正比的關(guān)系。或者說如果你正在用一個較大的學(xué)習(xí)率,那你或許可以同時嘗試增加warmup來防止模型“爛掉”。

12.這幾點不只適用于CPT,對一些特殊情況下的SFT階段同樣適用。

13.這里吐槽一下Trainer,到現(xiàn)在都不支持最小lr參數(shù)。

關(guān)于SFT

1.請勿迷信3個epoch的訓(xùn)練,實測1個epoch就能對話。當(dāng)然,更多的epoch確實會讓模型的評測效果更佳。

2.但如果你資源嚴(yán)重受限,跑一輪也能用~尤其當(dāng)你從一個SFT模型啟動(如chatGLM)時,嘗試小點的epoch,防止災(zāi)難性遺忘。

3.如果數(shù)據(jù)量比較小,如只有1k,可以嘗試更多的epoch。無他,人為過擬合而已。

關(guān)于continue

1.pre-train+SFT首先提出一個問題,假設(shè)你想做一個領(lǐng)域模型,并且你的領(lǐng)域模型和通用chatBot的輸出內(nèi)容、格式都區(qū)別很大;此外你還期望要通過CPT來注入一定的知識,那可用的技術(shù)路線有哪些呢?

從pre-train模型開始SFT訓(xùn)練,先做CPT,SFT數(shù)據(jù)使用你的領(lǐng)域數(shù)據(jù)
會得到一個只能解領(lǐng)域問題的模型,丟失掉通用對話能力,如果完全不考慮通用對話能力可以,否則不推薦

從pre-train模型開始SFT訓(xùn)練,先做CPT,SFT數(shù)據(jù)選用通用SFT數(shù)據(jù)+領(lǐng)域SFT數(shù)據(jù)
如果你的領(lǐng)域數(shù)據(jù)和通用能力很接近,如醫(yī)療問答,那這是一個非常不錯的技術(shù)路線,推薦

對于2,如果你的新任務(wù)和通用任務(wù)差別很大,甚至輸出格式都完全不一樣甚至沖突
雖然可行,但直覺上一些通用SFT數(shù)據(jù)的answer會對你的任務(wù)目標(biāo)造成一定程度的負(fù)向影響

從pre-train模型開始SFT訓(xùn)練,先做CPT,再做通用SFT,再做領(lǐng)域SFT
這會導(dǎo)致你的任務(wù)目標(biāo)(最后階段)和你的知識注入階段(CPT階段)中間存在一個階段的gap,可能不是最佳路線

從sft模型開始訓(xùn)練,先做CPT,再做領(lǐng)域SFT
與4同理,任務(wù)目標(biāo)(最后階段)和通用對話能力階段隔了一個階段,仿佛也不夠優(yōu)雅

2.思來想去,好像所有現(xiàn)有常見的技術(shù)路線都不太work~所以可能要試一些非常規(guī)的方法。

3.一個很有意思的問題是,過去我們都被GPT論文的三個階段束縛,老老實實串行跑三個階段:PT->SFT>RLHF

4.但是越來越多人嘗試SFT+DPO混合訓(xùn)練,看上去也是work的。

5.同理,我相信很多國內(nèi)大模型的大廠,或多或少可能都在PT模型里偷偷摻了一些SFT數(shù)據(jù),這會讓模型的性能有一定程度的提升。

6.很久以前也有人在SFT階段摻雜一些PT數(shù)據(jù),來防止災(zāi)難性遺忘。

7.此外,不管是SFT還是PT,任務(wù)目標(biāo)其實都一樣,都是基于teacher forcing的自回歸任務(wù),next token predict而已,唯一的不同只是數(shù)據(jù)格式不一樣。

8.那么我們可不可以認(rèn)為,其實這不同階段的區(qū)別其實沒有那么大?是不是可以CPT+SFT混合訓(xùn)練,不再區(qū)分階段。

9.例如我們可以在CPT階段加入大量SFT對話數(shù)據(jù)(同樣mask掉question),這個SFT數(shù)據(jù)甚至可以是海量的、未經(jīng)清洗的、低質(zhì)量的數(shù)據(jù),僅訓(xùn)練1個epoch即可;接下來我們使用通用SFT數(shù)據(jù)(少而精的)+領(lǐng)域SFT數(shù)據(jù),混合訓(xùn)練1個epoch;最后1個epoch我們只用領(lǐng)域數(shù)據(jù)做微調(diào)。

10.可以根據(jù)數(shù)據(jù)集大小、重要程度,修改各階段epoch輪次,或在某個階段內(nèi)擴(kuò)大某數(shù)據(jù)集的倍數(shù)。

11.至此,CPT數(shù)據(jù)共訓(xùn)練1個epoch,通用SFT數(shù)據(jù)2個,領(lǐng)域數(shù)據(jù)2個。

12.個人使用這種技術(shù)路線,感覺還是比較work的。由于CPT成本太大,未設(shè)置更多的消融實驗。那除此以外是否有其他技術(shù)路線呢?答案或許是Lora?

關(guān)于Lora

1.個人對lora使用得不多,之前僅僅是了解原理+會用,沒有深入探索過一些參數(shù)。最近嘗試?yán)斫庖幌隆?/p>

2.lora真的沒省多少GPU也沒省多少訓(xùn)練時長,所以我真的不太愛用它。(包大人備注:其實是很省顯存的,但不太省訓(xùn)練時長)

3.lora更像是一個能力插件,可以幫助模型學(xué)到一些新的輸出格式/領(lǐng)域話題,但對新知識或新能力的注入可能不太擅長。

4.對于能力注入,當(dāng)前的認(rèn)知是:pre-train > full SFT > lora。

5.所以用lora來進(jìn)行pretrain可能不是一個最優(yōu)解,還是更推薦用全參數(shù)。

6.但是對于領(lǐng)域任務(wù),lora好像天然適合?

7.第2、3點沒有經(jīng)過實驗論證,近期會跑個實驗,有結(jié)論會做補(bǔ)充。

8.lora_rank是一個很重要的參數(shù),它影響旁路矩陣的大小。

9.如果你的數(shù)據(jù)量比較小,那推薦用比較小的rank就可以了,我記得原論文里8和32區(qū)別不大(懶得翻論文了,全憑記憶,如果有錯誤請指正)

10.如果你數(shù)據(jù)量較大,那建議用更大的rank,來得到一個更大的旁路矩陣,它顯然可以記住更多的東西。

11.與此同時,除了q_proj,v_proj,強(qiáng)烈建議再試一下把所有的線性層都上lora,如k_proj, up_proj, down_proj這些。

12.此外lora_alpha也很重要,它通常和lora_rank是正比關(guān)系,表示一個縮放系數(shù)。alpha越大,表示新建的旁路矩陣影響力越大、新數(shù)據(jù)學(xué)得越“猛”;alpha越小,表示原始模型參數(shù)對結(jié)果的影響力越大。

13.很多人喜歡設(shè)置alpha是rank的2倍,其實可以二者1: 1跑個baseline看看效果。

網(wǎng)友補(bǔ)充:

1、SFT和pretrain的任務(wù)在有些大模型例如ChatGLM是不一樣的,對于把pretrain放到SFT來保持所謂的防止遺忘并沒有感覺到明顯差異。

2、對于小數(shù)據(jù)集,設(shè)置一個好的prefix,在很多epoch(大于100)的情況仍然保持不錯的提升。

3、lora對顯存的節(jié)約是很明顯的,只是很多代碼類似zero的思想并不契合lora(把模型切分放到最后,認(rèn)為是最不占用顯存的,然而lora相反)。

4、lora的效果和全量在我做的實驗下是有明顯差距的(例如在某些指標(biāo)上經(jīng)常>4%絕對值的差距),和論文中的理想情況不同,并且lora比較吃分層學(xué)習(xí)率,程度和crf比較接近了

5、lora的秩的值設(shè)置在1-16上還是存在不小的區(qū)別,從16到128上經(jīng)常只是一些收斂上的差異,例如128可能n個epoch收斂到x,16可能要2n,但并不絕對,而且r大時間久,一般16-32是比較推薦的

6、DPO和RLHF根據(jù)個人理解,對chosen-rejected數(shù)據(jù)的質(zhì)量需求是不同的,選擇RLHF仍然是更好的選擇,對于顯存不夠的部分人來說,可以例如lora,將actor和ref共用一個,critic和reward共用一個,把顯存從4x降低為2x。寧可這樣也盡量把顯存盡可能用來提高critic模型的參數(shù)量

網(wǎng)友:暫時先寫這么多,可能過倆月再看又是一篇漏洞百出的想法,

但總是要在摸索中前進(jìn)吧~

審核編輯:黃飛

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

    關(guān)注

    0

    文章

    9

    瀏覽量

    6903
  • DPO
    DPO
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    13745
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    3147

    瀏覽量

    4079

原文標(biāo)題:大模型微調(diào)經(jīng)驗和認(rèn)知

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    DeepSeek-R1:7B 在配備 Hailo-8L 和 M2-HAT+ 的樹莓派5上的部署實踐測試!

    我近期深度投入于LLM/SLM(大語言模型/小型語言模型)的研發(fā),涵蓋智能體開發(fā)、RAG增強(qiáng)檢索、微調(diào)、模型蒸餾和MLOps等領(lǐng)域。為拓展技術(shù)邊界,我同步探索了邊緣AI領(lǐng)域,重點聚焦
    的頭像 發(fā)表于 03-25 09:20 ?1349次閱讀
    DeepSeek-R1:7B 在配備 Hailo-8L 和 M2-HAT+ 的樹莓派5上的部署<b class='flag-5'>實踐</b>測試!

    使用OpenVINO?訓(xùn)練擴(kuò)展對水平文本檢測模型進(jìn)行微調(diào),收到錯誤信息是怎么回事?

    已針對水平文本檢測模型運(yùn)行OpenVINO?訓(xùn)練擴(kuò)展中的 微調(diào) 步驟,并收到錯誤消息: RuntimeError: Failed to find annotation files
    發(fā)表于 03-05 06:48

    用PaddleNLP在4060單卡上實踐模型預(yù)訓(xùn)練技術(shù)

    手把手教您如何在單張消費(fèi)級顯卡上,利用PaddleNLP實踐OpenAI的GPT-2模型的預(yù)訓(xùn)練。GPT-2的預(yù)訓(xùn)練關(guān)鍵技術(shù)與流程與GPT-4等大參數(shù)模型如出一轍,通過親手實踐GPT-
    的頭像 發(fā)表于 02-19 16:10 ?1007次閱讀
    用PaddleNLP在4060單卡上<b class='flag-5'>實踐</b>大<b class='flag-5'>模型</b>預(yù)訓(xùn)練技術(shù)

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗】+第一章初體驗

    機(jī)制。 《基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化》第一章以清晰的邏輯框架,幫助讀者建立對大模型與RAG的全局認(rèn)知。通過剖析技術(shù)原理、優(yōu)勢與挑戰(zhàn),作者為后續(xù)章節(jié)的實踐內(nèi)容奠定了基礎(chǔ)。對于開
    發(fā)表于 02-07 10:42

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

    今天學(xué)習(xí)<基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化>這本書。大模型微調(diào)是深度學(xué)習(xí)領(lǐng)域中的一項關(guān)鍵技術(shù),它指的是在已經(jīng)預(yù)訓(xùn)練好的大型深度學(xué)習(xí)模型基礎(chǔ)上,使用新的、特定任務(wù)相關(guān)的數(shù)據(jù)
    發(fā)表于 01-14 16:51

    《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型

    模型展示了強(qiáng)大的泛化能力,能夠?qū)⒃谀M環(huán)境學(xué)到的技能遷移到真實場景。RT-2的改進(jìn)版本更是引入了視覺-語言預(yù)訓(xùn)練技術(shù),使模型能夠理解更抽象的任務(wù)描述。 第8章通過具體應(yīng)用案例展現(xiàn)了具身智能的實踐價值。在
    發(fā)表于 12-24 15:03

    【「大模型啟示錄」閱讀體驗】對大模型更深入的認(rèn)知

    閱讀《大模型啟示錄》這本書,我得說,它徹底顛覆了我對大模型的理解。作為一個經(jīng)常用KIMI和豆包這類AI工具來完成作業(yè)、整理資料的大學(xué)生,我原以為大模型就是這些工具背后的技術(shù)。但這本書讓我意識到
    發(fā)表于 12-20 15:46

    名單公布!【書籍評測活動NO.52】基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化

    外部知識以提高輸出答案的質(zhì)量。 04 RAG與模型微調(diào) 要想提高大模型在特定行業(yè)與場景中輸出的適應(yīng)性與準(zhǔn)確性,除了使用RAG,還可以使用自己的數(shù)據(jù)對大模型進(jìn)行
    發(fā)表于 12-04 10:50

    一種信息引導(dǎo)的量化后LLM微調(diào)新算法IR-QLoRA

    模型應(yīng)用開卷,連一向保守的蘋果,都已釋放出發(fā)展端側(cè)大模型的信號。 問題是,大語言模型(LLM)卓越的表現(xiàn)取決于“力大磚飛”,如何在資源有限的環(huán)境中部署大模型并保障性能,仍然頗具挑戰(zhàn)。
    的頭像 發(fā)表于 11-19 17:16 ?833次閱讀
    一種信息引導(dǎo)的量化后LLM<b class='flag-5'>微調(diào)</b>新算法IR-QLoRA

    大語言模型如何開發(fā)

    大語言模型的開發(fā)是一個復(fù)雜且細(xì)致的過程,涵蓋了數(shù)據(jù)準(zhǔn)備、模型架構(gòu)設(shè)計、訓(xùn)練、微調(diào)和部署等多個階段。以下是對大語言模型開發(fā)步驟的介紹,由AI部落小編整理發(fā)布。
    的頭像 發(fā)表于 11-04 10:14 ?606次閱讀

    清華iCenter與聯(lián)想攜手深化AI教育

    近日,清華大學(xué)iCenter與聯(lián)想公司正式達(dá)成合作,共同致力于推動人工智能教育的深化與發(fā)展。聯(lián)想公司作為領(lǐng)先的科技企業(yè),在AI和大模型技術(shù)領(lǐng)域擁有深厚的積累與豐富的經(jīng)驗,此次合作將為AI教育注入
    的頭像 發(fā)表于 10-31 11:27 ?819次閱讀

    具身智能與人類認(rèn)知能力的關(guān)系

    在人工智能和認(rèn)知科學(xué)的交匯點上,具身智能這一概念應(yīng)運(yùn)而生。它挑戰(zhàn)了傳統(tǒng)的以大腦為中心的認(rèn)知模型,強(qiáng)調(diào)身體和環(huán)境在智能行為中的核心作用。 一、具身智能的定義與起源 具身智能的概念最早由心理學(xué)家
    的頭像 發(fā)表于 10-27 09:43 ?1004次閱讀

    AI大模型的性能優(yōu)化方法

    (學(xué)生模型)來模仿大型模型(教師模型)的輸出。學(xué)生模型通過學(xué)習(xí)教師模型的“軟標(biāo)簽”(即概率分布信息),從而獲
    的頭像 發(fā)表于 10-23 15:01 ?2428次閱讀

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

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

    示波器探頭補(bǔ)償微調(diào)旋鈕是一種用于調(diào)整示波器探頭性能的重要組件。 一、示波器探頭補(bǔ)償微調(diào)旋鈕的作用 校準(zhǔn)探頭性能 示波器探頭補(bǔ)償微調(diào)旋鈕的主要作用是校準(zhǔn)探頭的性能。由于探頭在生產(chǎn)過程中可能存在一定
    的頭像 發(fā)表于 08-09 11:31 ?1283次閱讀