什么情況需要微調(diào)定制屬于自己的大模型

背景

我們?nèi)粘KJ(rèn)識的「大模型」都是經(jīng)過微調(diào)之后得到的墩瞳。大模型只是一個(gè)「文本續(xù)寫的模型」蜓肆。在未經(jīng)過任何微調(diào)或者基于人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)之前臭蚁,模型只能實(shí)現(xiàn)基本的文本接龍间校,并沒有直接理解用戶任何指令或意圖的能力枯途。

下面是開源大模型零一萬物 Yi-34b 未經(jīng)過微調(diào)之前碌宴,模型的輸出:


上面的輸出其實(shí)從語法結(jié)構(gòu)什么來說都是對的杀狡,但是它的輸出并不是「對話」,而是像繼續(xù)編寫某個(gè)文本里的片段贰镣。

經(jīng)過 Chat 數(shù)據(jù)微調(diào)訓(xùn)練之后呜象,模型才學(xué)會(huì)如何和人類進(jìn)行正常交流:


用來微調(diào)的 Chat 對話模型使用的訓(xùn)練數(shù)據(jù)為下圖所示,由符合預(yù)期的「一問一答」數(shù)據(jù)組成:

社區(qū)上的大模型碑隆,無論是 GPT 還是開源大模型恭陡,基本都遵循先進(jìn)行預(yù)訓(xùn)練然后微調(diào),得到一個(gè)對話或者其他用途的模型上煤。

什么是預(yù)訓(xùn)練休玩?

在預(yù)訓(xùn)練階段,模型通過學(xué)習(xí)大量的數(shù)據(jù)來提取特征、理解語義和推理能力拴疤,從而對通識知識永部,代碼知識獲得一般性認(rèn)識。質(zhì)量較高的預(yù)訓(xùn)練數(shù)據(jù)可以增強(qiáng)模型的泛化能力呐矾,減少在后續(xù)特定任務(wù)上的訓(xùn)練調(diào)優(yōu)時(shí)間和資源消耗羔飞。

  • 預(yù)訓(xùn)練是一種無監(jiān)督學(xué)習(xí)方式宵统,是指使用隨機(jī)文本片段在大規(guī)模數(shù)據(jù)集上對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行初始訓(xùn)練抬探,以便模型能夠?qū)W習(xí)廣泛的特征和知識硫戈。

  • 預(yù)訓(xùn)練使用的訓(xùn)練數(shù)據(jù)格式,「只有輸出」罚随,沒有輸入的標(biāo)簽玉工。大模型使用這種大量沒有標(biāo)記的數(shù)據(jù)來自己學(xué)習(xí)訓(xùn)練數(shù)據(jù)中數(shù)據(jù)的規(guī)律(中英文語法,代碼語法淘菩,通識知識等)

預(yù)訓(xùn)練適合什么場景遵班?

  • 從 0 開始訓(xùn)練一個(gè)新的通用大模型。

  • 基座大模型 LLaMA2 中文數(shù)據(jù)非常少瞄勾,只占 0.13%费奸,有必要使用更多比例中文數(shù)據(jù)繼續(xù)預(yù)訓(xùn)練使大模型學(xué)會(huì)中文表達(dá)。

  • 基座大模型 LLaMA2 模型代碼內(nèi)容的占比同樣也不高(4%)进陡,使用預(yù)訓(xùn)練添加更多比例的代碼數(shù)據(jù)愿阐,強(qiáng)化大模型代碼能力(Code LLaMA代碼模型)

  • 出了一門新的編程語言,為了讓模型能夠?qū)W到最新的編程語言結(jié)構(gòu)趾疚,可以考慮預(yù)訓(xùn)練缨历。

什么是微調(diào)?

  • 微調(diào)使用 「一問一答」的格式糙麦,即有標(biāo)注的訓(xùn)練數(shù)據(jù)辛孵,在基于原有模型參數(shù)上,來讓模型更清楚地知道什么樣的輸入下他應(yīng)該給予什么樣的輸出赡磅,按照訓(xùn)練數(shù)據(jù)里的模式進(jìn)行學(xué)習(xí)魄缚。

大模型先通過預(yù)訓(xùn)練學(xué)習(xí)基礎(chǔ)知識,再通過微調(diào)讓模型學(xué)會(huì)基于它通過預(yù)訓(xùn)練已經(jīng)學(xué)會(huì)的知識焚廊,學(xué)習(xí)如何去根據(jù)用戶指令輸出正確適當(dāng)?shù)膬?nèi)容冶匹。

我能用微調(diào)定制什么?

  • 設(shè)置風(fēng)格咆瘟、語氣嚼隘、格式等定性方面:

    • 場景舉例:創(chuàng)建一個(gè)語音對話機(jī)器人,不通過提示詞的方式袒餐,每次讓模型輸出的內(nèi)容盡可能精簡如50字以內(nèi)飞蛹。

    • 大模型智能Code Review谤狡,通過打標(biāo)過的優(yōu)質(zhì)數(shù)據(jù)使得大模型 Review 的結(jié)果輸出更加有效和高質(zhì)量。

  • 提高生成預(yù)期輸出的可靠性:

    • 將天氣查詢的需求轉(zhuǎn)換為 JSON 請求參數(shù)卧檐,通過大量示例作為微調(diào)訓(xùn)練數(shù)據(jù)提升輸出 JSON 的信息抽取的效果墓懂,并降低輸出非法 JSON 內(nèi)容的概率。

    • 要求大模型只輸出代碼塊泄隔,即使通過提示詞告訴模型只能一次性輸出代碼塊且不添加任何解釋拒贱,但大模型偶爾也會(huì)輸出解釋和多個(gè)代碼塊宛徊。此時(shí)用一些少量微調(diào)數(shù)據(jù)可以改善這些問題佛嬉。

  • 提升效果

    • 使用大模型生成 Pandas 數(shù)據(jù)分析和可視化代碼。大模型本身理解 Pandas 代碼的編寫闸天,但是編寫準(zhǔn)確率在一些場景下可能不是特別高暖呕,通過一系列經(jīng)過打標(biāo)正確的訓(xùn)練數(shù)據(jù)提升大模型理解用戶需求編寫 Pandas 代碼的效果和正確率。
  • 比較復(fù)雜的苞氮,有大量任務(wù)說明的提示詞湾揽。

    • 比如將用戶的一段描述轉(zhuǎn)換為一個(gè)甚至多個(gè)接口請求參數(shù),需要在提示詞里添加大量說明文檔和樣例笼吟。
  • 減少 Token 占用

    • 就像上面的例子库物,在提示詞里添加大量文檔說明,使用按 Token 計(jì)費(fèi)的模型如 GPT4 會(huì)顯得很貴贷帮。同時(shí)較少的 Token 能獲得更快的推理速度戚揭。

可以使用微調(diào)來讓大模型新增知識嗎?

不推薦撵枢,在需要有可信依據(jù)的場景上民晒,比如構(gòu)建智能客服機(jī)器人,通常會(huì)使用 RAG 的方式配合向量搜索等方式從文檔庫搜尋與用戶詢問問題最為相關(guān)的內(nèi)容锄禽,并將匹配到的文檔段落作為知識內(nèi)容添加到提示詞中潜必,大模型使用提示詞中的知識來回答用戶的問題。

微調(diào)改善的是大模型在某種模式下的表現(xiàn)(如風(fēng)格沃但,準(zhǔn)確度磁滚,幻覺問題等)。雖然微調(diào)也能一定程度上記憶新增的知識宵晚,但由于微調(diào)是改變模型的參數(shù)結(jié)構(gòu)垂攘,使得模型在生成新 token 時(shí)輸出與訓(xùn)練數(shù)據(jù)模式更相似的內(nèi)容。從輸出準(zhǔn)確度上來說是不如在提示詞中添加的知識內(nèi)容坝疼。

微調(diào)方式

在大模型預(yù)訓(xùn)練參數(shù)上進(jìn)行參數(shù)微調(diào)訓(xùn)練搜贤,有三種方式:

  • 全參數(shù)微調(diào),即完全監(jiān)督微調(diào)钝凶,在所有參數(shù)層上根據(jù)標(biāo)注數(shù)據(jù)去調(diào)整原始預(yù)訓(xùn)練模型中的 QKV 參數(shù)層仪芒。

  • LoRA唁影,即 LLM 的低秩適配(Low-Rank Adaptation),通過兩個(gè)較小的矩陣來擬合調(diào)整后的參數(shù)層掂名,這個(gè)過程可以理解為 X + Z = Y 据沈,其中 X 為原始參數(shù),Y 為訓(xùn)練之后的參數(shù)饺蔑,訓(xùn)練過程中就是尋找可以將 X 擬合為 Y 的 Z 矩陣锌介。Z 矩陣由 兩個(gè)較小的 Wa 矩陣 和 Wb 矩陣組成。


  • QLoRA, 與 LoRA 方式類似猾警,也是訓(xùn)練兩個(gè)擬合參數(shù)層來達(dá)到對原始模型的調(diào)整孔祸。區(qū)別在于為了節(jié)省訓(xùn)練硬件資源, QLoRA 會(huì)先將原始模型參數(shù)量化至 4-bit 并凍結(jié)发皿,然后添加一小組可學(xué)習(xí)的低秩適配器權(quán)重( Low-rank Adapter weights)崔慧,這些權(quán)重通過量化權(quán)重的反向傳播梯度進(jìn)行調(diào)優(yōu),在量化之后的參數(shù)上進(jìn)行 LoRA 訓(xùn)練穴墅,這將大幅下降顯存的占用(33b 的模型 以 FP16 全量加載需消耗 80GB 顯存惶室,量化至 4 bit之后模型加載僅需要 20 GB 左右顯存的占用)

  • 除了量化并凍結(jié)原始參數(shù),QLoRA 還支持分頁優(yōu)化器:使用NVIDIA統(tǒng)一內(nèi)存特性玄货,將部分顯存溢出的部分 offload 到內(nèi)存中實(shí)現(xiàn)分頁皇钞,來進(jìn)一步避免 OOM 的問題。(即下圖紫色箭頭部分)


關(guān)于全量參數(shù)微調(diào) 和 LoRA 方式效果的對比松捉,以下以 SQL 生成場景舉例夹界,柱狀圖從深到淺依次是未經(jīng)過微調(diào)訓(xùn)練、LoRA 方式訓(xùn)練和全參數(shù)訓(xùn)練后模型生成的準(zhǔn)確度:



在 SQL 數(shù)據(jù)集上惩坑,根據(jù)模型大小和微調(diào)方法預(yù)測準(zhǔn)確率掉盅,LoRA微調(diào)模型的表現(xiàn)幾乎可與全參數(shù)微調(diào)模型相當(dāng)。需要注意的是以舒,LoRA 微調(diào)的 13B 模型的表現(xiàn)略優(yōu)于全參數(shù)微調(diào)的 7B 模型趾痘。

關(guān)于 QLoRA 訓(xùn)練的效果:


從上圖中可以看到,在5-shot MMLU 場景下蔓钟,QLoRA 效果與常規(guī) LoRA 效果接近永票,甚至能反超常規(guī) LoRA 微調(diào)效果。

關(guān)于資源消耗:


在上表中:

  • LLaMA-13B+LoRA(2M)表示使用 LLaMA-13B作為基本模型和 LoRA 訓(xùn)練方法在 200 萬指令數(shù)據(jù)上訓(xùn)練的模型滥沫。

  • 可以看到全量參數(shù)的訓(xùn)練時(shí)間約為 LoRA 方式的 2~3 倍侣集。

  • 從效果上來看,LoRA 與全參數(shù)微調(diào)效果差距在1 ~ 9%左右兰绣。但是在特定場景上(math 數(shù)據(jù)集)僅相差 1% 左右世分,因此在垂直領(lǐng)域訓(xùn)練上 LoRA 能保持較好的效果,同時(shí)顯著降低訓(xùn)練時(shí)長缀辩。

以 6b 參數(shù)量的模型分別以不同方式啟動(dòng)訓(xùn)練臭埋,顯存占用情況:


從上表中可以看到:

  • 全參數(shù)訓(xùn)練顯存占用約為 LoRA 的 4.5倍

  • 使用 QLoRA 方式顯存占用相對于 LoRA 又可以省一倍踪央。

  • 6B 參數(shù)的微調(diào),一張 24G 顯存的顯卡運(yùn)行LoRA微調(diào)綽綽有余瓢阴。

因此畅蹂,結(jié)合訓(xùn)練效果看,LoRA 或者 QLoRA 的高效微調(diào)的方式成本較低效果相對也較好荣恐,因此以LoRA 的方式來對基座模型進(jìn)行預(yù)訓(xùn)練是最為合適的液斜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叠穆,隨后出現(xiàn)的幾起案子少漆,更是在濱河造成了極大的恐慌,老刑警劉巖痹束,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件检疫,死亡現(xiàn)場離奇詭異,居然都是意外死亡祷嘶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門夺溢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來论巍,“玉大人,你說我怎么就攤上這事风响〖翁” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵状勤,是天一觀的道長鞋怀。 經(jīng)常有香客問我,道長持搜,這世上最難降的妖魔是什么密似? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮葫盼,結(jié)果婚禮上残腌,老公的妹妹穿的比我還像新娘。我一直安慰自己贫导,他們只是感情好抛猫,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著孩灯,像睡著了一般闺金。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峰档,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天败匹,我揣著相機(jī)與錄音匣距,去河邊找鬼。 笑死哎壳,一個(gè)胖子當(dāng)著我的面吹牛毅待,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播归榕,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼尸红,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了刹泄?” 一聲冷哼從身側(cè)響起外里,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎特石,沒想到半個(gè)月后盅蝗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姆蘸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年墩莫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逞敷。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狂秦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出推捐,到底是詐尸還是另有隱情裂问,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布牛柒,位于F島的核電站堪簿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏皮壁。R本人自食惡果不足惜椭更,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闪彼。 院中可真熱鬧甜孤,春花似錦、人聲如沸畏腕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽描馅。三九已至把夸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铭污,已是汗流浹背恋日。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工膀篮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岂膳。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓誓竿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谈截。 傳聞我的和親對象是個(gè)殘疾皇子筷屡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

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