模型微調(diào):從理論到實(shí)踐的深度解析

0 評(píng)論 2525 瀏覽 9 收藏 18 分鐘

在人工智能領(lǐng)域,模型微調(diào)已成為提升模型性能、使其適應(yīng)特定任務(wù)的關(guān)鍵技術(shù)。本文將全面系統(tǒng)地介紹模型微調(diào)的各個(gè)方面,幫助讀者深入理解這一重要技術(shù)。

一、什么是模型微調(diào)

模型微調(diào)是指在已經(jīng)訓(xùn)練好的預(yù)訓(xùn)練模型基礎(chǔ)上,進(jìn)行進(jìn)一步的調(diào)整和優(yōu)化,以使模型的輸出更加符合特定的應(yīng)用需求。從本質(zhì)上講,微調(diào)也是模型訓(xùn)練的一種形式,其過程與訓(xùn)練一個(gè)全新的模型有諸多相似之處。

誰來做微調(diào)

微調(diào)工作通常需要由具備豐富經(jīng)驗(yàn)的研發(fā)人員或算法工程師來承擔(dān)。這一過程不僅需要扎實(shí)的技術(shù)功底,還離不開兩個(gè)核心要素:代碼實(shí)現(xiàn)能力和充足的算力支持。值得一提的是,雖然目前有一些平臺(tái)提供了可視化界面來輔助微調(diào),但這些界面的功能往往較為有限,只能起到一定的輔助作用。

什么樣的模型可以微調(diào)

并非所有模型都適合進(jìn)行微調(diào),以下兩類模型是比較常見的微調(diào)對(duì)象:

  1. 大部分開源模型,例如 LLaMA、qwen、glm 等。這些模型具有開放的架構(gòu)和參數(shù),為用戶進(jìn)行個(gè)性化調(diào)整提供了便利。
  2. API 中開放微調(diào)接口的閉源模型或平臺(tái),如文心、智譜 AI 等。不過,開源模型和閉源模型在微調(diào)時(shí)存在明顯差異:開源模型經(jīng)過微調(diào)后可以生成新的模型;而閉源模型的微調(diào)過程則是在平臺(tái)的服務(wù)器上進(jìn)行,用戶無法直接獲取模型的原始參數(shù)。

影響微調(diào)的核心因素

微調(diào)的效果受到多個(gè)因素的綜合影響,其中最為核心的包括:

  • 基座模型的選擇:基座模型的性能和特性在很大程度上決定了微調(diào)的上限。
  • 微調(diào)方式的選擇:不同的微調(diào)方法適用于不同的場(chǎng)景和需求。
  • 數(shù)據(jù)質(zhì)量:高質(zhì)量的數(shù)據(jù)是確保微調(diào)成功的關(guān)鍵基礎(chǔ)。

二、模型微調(diào)工作流程

第一步:需求分析與目標(biāo)設(shè)定

這一階段主要由項(xiàng)目組或產(chǎn)品經(jīng)理主導(dǎo),是微調(diào)工作的起點(diǎn)和關(guān)鍵。

什么情況下需要微調(diào)

在實(shí)際應(yīng)用中,以下幾種情況通常需要考慮對(duì)模型進(jìn)行微調(diào):

  • 項(xiàng)目性質(zhì)要求:例如甲方明確提出需求、出于資本化考慮或?yàn)榱送瓿烧児こ痰?。此外,微調(diào)也是快速獲得符合特定領(lǐng)域需求的大模型的常見手段,如礦山大模型、領(lǐng)域大模型等。
  • 溝通方式和語言風(fēng)格有特殊要求:當(dāng)基座模型通過 prompt 控制無法穩(wěn)定實(shí)現(xiàn)特定的溝通方式或語言風(fēng)格時(shí),如 AI 兒童講故事場(chǎng)景。
  • 基座模型缺少垂直領(lǐng)域數(shù)據(jù):在醫(yī)療、軍事等對(duì)專業(yè)知識(shí)要求較高的領(lǐng)域,由于互聯(lián)網(wǎng)公開數(shù)據(jù)可能無法滿足需求,導(dǎo)致基座模型無法完成專業(yè)任務(wù)。
  • 基座模型無法完成特定任務(wù):例如需要模型實(shí)現(xiàn)自動(dòng)化操作電腦、手機(jī)等功能。

微調(diào)之前需要考慮的問題

在決定進(jìn)行微調(diào)之前,需要全面評(píng)估以下幾個(gè)方面:

  • 是否已經(jīng)充分嘗試了 prompt(包括 few-shot、cot 等方式)和 RAG 技術(shù)?
  • 是否能夠保障微調(diào)所需的數(shù)據(jù)量級(jí)和數(shù)據(jù)質(zhì)量?
  • 由于基座模型會(huì)不斷推出新版本,其能力也會(huì)不斷提升,是否考慮過需要重新微調(diào)的情況?

核心工作步驟

1)明確業(yè)務(wù)需求和微調(diào)模型的目標(biāo):

  • 仔細(xì)審視所選的基座模型在實(shí)際場(chǎng)景中的表現(xiàn),判斷是否真的需要微調(diào)。
  • 檢查是否已經(jīng)嘗試了各種 prompt 方法。
  • 考慮是否對(duì)任務(wù)進(jìn)行了合理拆解。
  • 確認(rèn)是否已經(jīng)完善了 RAG 系統(tǒng)。需要注意的是,在大多數(shù)情況下,可能并不需要進(jìn)行微調(diào)。

2)確定需要解決的具體問題。

3)設(shè)定預(yù)期的性能提升目標(biāo)。

4)明確特定的業(yè)務(wù)指標(biāo)或限制條件。

第二步:數(shù)據(jù)收集與準(zhǔn)備

數(shù)據(jù)收集與準(zhǔn)備工作主要由產(chǎn)品經(jīng)理主導(dǎo),這是微調(diào)工作的基礎(chǔ)。

數(shù)據(jù)收集

根據(jù)具體的需求,從企業(yè)的數(shù)據(jù)庫、日志文件、用戶交互記錄等多種來源收集相關(guān)數(shù)據(jù)。需要強(qiáng)調(diào)的是,在真實(shí)場(chǎng)景中收集真實(shí)數(shù)據(jù)至關(guān)重要,這將直接影響到微調(diào)的效果。

數(shù)據(jù)清洗

對(duì)收集到的數(shù)據(jù)進(jìn)行清洗,去除其中的噪聲、錯(cuò)誤和不一致性,確保數(shù)據(jù)的質(zhì)量。高質(zhì)量的數(shù)據(jù)是模型能夠有效學(xué)習(xí)的前提。

數(shù)據(jù)標(biāo)注

如果采用監(jiān)督學(xué)習(xí)方法進(jìn)行微調(diào),則需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)注。這一步可能需要雇傭外部團(tuán)隊(duì)或利用內(nèi)部資源來完成。準(zhǔn)確的標(biāo)注數(shù)據(jù)對(duì)于模型的訓(xùn)練和性能提升具有重要意義。

數(shù)據(jù)劃分

將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,以便對(duì)模型的性能進(jìn)行評(píng)估:

  • 訓(xùn)練集:占比 70-80%,用于模型的實(shí)際訓(xùn)練和學(xué)習(xí)。
  • 驗(yàn)證集:占比 10-15%,用于評(píng)估模型在訓(xùn)練過程中的表現(xiàn),以便及時(shí)做出調(diào)整。
  • 測(cè)試集:占比 10-15%,在模型訓(xùn)練完成后用于最終評(píng)估模型的性能。

模型微調(diào)的數(shù)據(jù)量(LoRA 微調(diào))

模型尺寸與微調(diào)數(shù)量級(jí)之間存在一定的大致關(guān)系,如下表所示:

數(shù)據(jù)質(zhì)量標(biāo)準(zhǔn)

以智能客服系統(tǒng)的對(duì)話場(chǎng)景模型微調(diào)為例,數(shù)據(jù)質(zhì)量標(biāo)準(zhǔn)可以包括以下多個(gè)維度:

第三步:模型選擇

模型選擇通常由算法主導(dǎo),產(chǎn)品經(jīng)理也應(yīng)積極參與。

前提考慮

在選擇模型之前,同樣需要考慮以下幾個(gè)問題:

  • 是否已經(jīng)充分嘗試了 prompt(包括 few-shot、cot 等方式)和 RAG 技術(shù)?
  • 是否能夠保障微調(diào)所需的數(shù)據(jù)量級(jí)和數(shù)據(jù)質(zhì)量?
  • 由于基座模型會(huì)不斷更新,是否考慮過需要重新微調(diào)的情況?

選擇模型的原則和方法

  • 開源和閉源的選擇:原則上優(yōu)先選擇開源模型,但最終決策需要根據(jù)具體的業(yè)務(wù)場(chǎng)景來確定。
  • 基座模型公司的選擇:例如智譜 AI 的 glm 系列模型,其中 glm4 的最強(qiáng)模型不開源,而阿里系的 qwen 模型是一個(gè)值得推薦的選擇。
  • 模型尺寸的選擇:需要從效果和成本兩個(gè)方面綜合考慮,在項(xiàng)目中,可能需要根據(jù)不同的場(chǎng)景選擇不同尺寸的模型。一般來說,可以先嘗試最大尺寸的模型以獲取最佳效果,然后再根據(jù)實(shí)際需求降到最小可行尺寸。

基于場(chǎng)景的模型選擇

在實(shí)際項(xiàng)目中,模型的選擇需要綜合考慮效果和成本。一個(gè)項(xiàng)目可能包含多個(gè)場(chǎng)景,因此可能需要選擇不同的模型。通常需要通過實(shí)驗(yàn)和經(jīng)驗(yàn)來確定最佳的模型選擇和微調(diào)方式,例如:

  • 對(duì)于一些復(fù)雜任務(wù),可能需要采用 33b + 的模型進(jìn)行全量微調(diào)。
  • 而對(duì)于另一些任務(wù),可能采用 110 + 的模型并凍結(jié)部分參數(shù)進(jìn)行微調(diào)更為合適。

第四步:模型微調(diào)

模型微調(diào)由算法工程師實(shí)施,是整個(gè)工作流程的核心環(huán)節(jié)。

模型微調(diào)方式(本質(zhì)上是 SFT)

1)全模型微調(diào):對(duì)整個(gè)模型的所有參數(shù)進(jìn)行調(diào)整。

2)輕量化微調(diào)(Parameter-Efficient Fine-tuning,PEFT):

  • 低秩適應(yīng)微調(diào)(Low-Rank Adaptation,LoRA):這是最常用的微調(diào)技術(shù)之一。
  • prompt tuning。
  • P-Tuning。
  • Prefix-Tuning。

3)凍結(jié)部分參數(shù)微調(diào):只對(duì)模型的部分參數(shù)進(jìn)行調(diào)整,其余參數(shù)保持凍結(jié)。

4)漸進(jìn)微調(diào):逐步調(diào)整模型的參數(shù),以提高微調(diào)的效果和穩(wěn)定性。

5)多任務(wù)微調(diào):同時(shí)對(duì)多個(gè)任務(wù)進(jìn)行微調(diào),以提高模型的泛化能力。

LoRA 微調(diào)原理

LoRA 微調(diào)的核心原理是只選擇原始模型的部分參數(shù)作為目標(biāo)微調(diào)參數(shù)(通常 r 取 4、8、16、32 等),不更改模型的原始參數(shù),而是在原始參數(shù)的基礎(chǔ)上增加一個(gè)偏移量,從而得到一套新的參數(shù)。這種方法具有高效、節(jié)省算力等優(yōu)點(diǎn),因此在實(shí)際應(yīng)用中最為常用。

QLoRA 微調(diào)

QLoRA 微調(diào)的主要目的是解決顯存占用量過大的問題。顯存占用量的計(jì)算方法如下:參數(shù)量 ×4×4 倍(裝進(jìn)來 + 轉(zhuǎn)起來)/(1024×1024×1024)=xG 顯存。以 7B 模型為例,其參數(shù)量為 7000000000,計(jì)算可得顯存占用約為 11200000000 字節(jié),即約 104G,這需要 5 張 NVIDIA 4090 顯卡(每張 24G)。QLoRA 通過將 4 個(gè)字節(jié)的浮點(diǎn)數(shù)改成 1 個(gè)字節(jié)的整數(shù),直接將顯存占用降低到原來的四分之一,大大提高了模型微調(diào)的可行性。

第五步:模型評(píng)估

模型評(píng)估由產(chǎn)品經(jīng)理主導(dǎo),是確保模型滿足預(yù)期需求的關(guān)鍵環(huán)節(jié)。

評(píng)估手段:支持率

在特定場(chǎng)景下評(píng)估微調(diào)后的模型能力,支持率是一個(gè)重要的指標(biāo)。通用領(lǐng)域的評(píng)估往往沒有實(shí)際意義。具體評(píng)估方法如下:

1)設(shè)計(jì)問答任務(wù),使用微調(diào)前和微調(diào)后的模型分別回答問題,然后由人工在不知道回答來源的情況下進(jìn)行偏好選擇。

2)評(píng)估標(biāo)準(zhǔn):

  • 如果微調(diào)后的模型支持率低于 50%,說明這次微調(diào)不僅沒有提升模型能力,反而破壞了原有模型的能力。
  • 如果支持率在 50% 左右,說明微調(diào)幾乎沒有取得進(jìn)步。
  • 如果支持率在 50%-70% 之間,微調(diào)的成果不夠理想。
  • 如果支持率在 70%-80% 之間,說明這次微調(diào)是成功的。
  • 如果支持率超過 80%,表明在大多數(shù)場(chǎng)景下,這次微調(diào)都取得了顯著的提升。

第六步:模型部署

一旦模型通過評(píng)估,就可以由研發(fā)人員將其部署到生產(chǎn)環(huán)境中,使其能夠?yàn)閷?shí)際業(yè)務(wù)提供服務(wù)。

第七步:監(jiān)控與維護(hù)

模型部署到生產(chǎn)環(huán)境后,需要由產(chǎn)品經(jīng)理負(fù)責(zé)進(jìn)行監(jiān)控與維護(hù):

  • 性能監(jiān)控:定期檢查模型的性能,確保其持續(xù)滿足業(yè)務(wù)需求。
  • 更新與再訓(xùn)練:隨著新數(shù)據(jù)的獲取或業(yè)務(wù)環(huán)境的變化,可能需要對(duì)模型進(jìn)行再次訓(xùn)練或微調(diào),以適應(yīng)新的情況。

第八步:反饋循環(huán)

產(chǎn)品經(jīng)理需要設(shè)計(jì)反饋和監(jiān)督機(jī)制,建立一個(gè)有效的反饋循環(huán):收集模型使用過程中的反饋信息,用于指導(dǎo)未來的改進(jìn)和優(yōu)化工作,使模型能夠不斷進(jìn)化和完善。

三、數(shù)據(jù)工程

需要明確的是,微調(diào)不是一次性工程,持續(xù)的數(shù)據(jù)收集和體系化的數(shù)據(jù)處理比微調(diào)技術(shù)本身更為重要。

如何收集偏好數(shù)據(jù)(相當(dāng)于人工標(biāo)注)

  • 點(diǎn)贊點(diǎn)踩:通過用戶對(duì)模型輸出的點(diǎn)贊或點(diǎn)踩行為來收集偏好數(shù)據(jù)。
  • 多選項(xiàng)選擇:例如一次性給用戶展示 4 張圖,讓用戶選擇偏好的選項(xiàng);或者讓模型生成兩個(gè)答案,讓用戶進(jìn)行選擇。
  • 客服工作臺(tái)輔助:在客服工作臺(tái)中,模型生成 4 個(gè)輔助回復(fù),其中 2 個(gè)來自原模型,2 個(gè)來自微調(diào)后的模型,讓客服選擇一個(gè)最合適的回復(fù),從而收集偏好數(shù)據(jù)。

產(chǎn)品功能設(shè)計(jì)

  • 數(shù)據(jù)收集能力:在產(chǎn)品功能設(shè)計(jì)上,一定要具備數(shù)據(jù)收集能力,以便及時(shí)獲取用戶反饋和偏好數(shù)據(jù)。
  • 定向數(shù)據(jù)收集:針對(duì)特定場(chǎng)景,在產(chǎn)品功能上設(shè)計(jì)定向數(shù)據(jù)收集的機(jī)制,提高數(shù)據(jù)的針對(duì)性和有效性。

設(shè)計(jì)好數(shù)據(jù)管理平臺(tái)

  • 利用 LLM 能力:讓數(shù)據(jù)管理平臺(tái)具備一定的智能,提高數(shù)據(jù)管理的效率和質(zhì)量。
  • 參考案例:如百度智能云的數(shù)據(jù)管理和數(shù)據(jù)標(biāo)注平臺(tái)。

數(shù)據(jù)管理平臺(tái)產(chǎn)品框架

  • 數(shù)據(jù)來源管理:管理自有數(shù)據(jù)、公開數(shù)據(jù)、用戶生成數(shù)據(jù)、專家撰寫的數(shù)據(jù)、模型合成數(shù)據(jù)、眾包收集數(shù)據(jù)等多種數(shù)據(jù)來源,并實(shí)現(xiàn)在線系統(tǒng)數(shù)據(jù)的直接導(dǎo)入和數(shù)據(jù)平臺(tái)與在線系統(tǒng)的實(shí)時(shí)對(duì)接。
  • 體系化標(biāo)注:包括標(biāo)簽定義、標(biāo)簽層次構(gòu)建、打標(biāo)任務(wù)管理和打標(biāo)任務(wù)分層等,支持用戶打標(biāo)、服務(wù)人員打標(biāo)、專家打標(biāo)、AI 打標(biāo)、交叉打標(biāo)、交叉復(fù)檢和專家抽檢等多種標(biāo)注方式。
  • 數(shù)據(jù)去重與增強(qiáng):通過 prompt 的相似度計(jì)算、數(shù)據(jù)來源整體質(zhì)量分級(jí)等方法進(jìn)行數(shù)據(jù)去重,同時(shí)采用同義詞替換、詞序打亂、反向翻譯、數(shù)據(jù)混合等技術(shù)進(jìn)行數(shù)據(jù)增強(qiáng)。例如,將 200 條問答數(shù)據(jù)通過模型生成相同的提問,可擴(kuò)展為 400 條數(shù)據(jù);將數(shù)據(jù)翻譯成其他語言再翻譯回原語言,可實(shí)現(xiàn)表達(dá)方法的多樣性。
  • 數(shù)據(jù)打包:實(shí)現(xiàn)訓(xùn)練集、驗(yàn)證集和測(cè)試集的自動(dòng)化劃分,建立數(shù)據(jù)集與模型版本、模型評(píng)估結(jié)果的關(guān)聯(lián),并按標(biāo)簽評(píng)估數(shù)據(jù)的可用性和復(fù)用性。
  • 模型評(píng)估:支持偏好打標(biāo)、專家打分、用戶偏好收集等評(píng)估方式,并按標(biāo)簽產(chǎn)出評(píng)估結(jié)果,實(shí)現(xiàn)評(píng)估與打標(biāo)數(shù)據(jù)的復(fù)用。
  • 多利用能力強(qiáng)大的模型輔助工作:例如利用強(qiáng)大的模型進(jìn)行數(shù)據(jù)過濾、自動(dòng)打標(biāo)、交叉復(fù)檢、prompt 的相似度計(jì)算、response 質(zhì)量對(duì)比、數(shù)據(jù)增強(qiáng)和模型評(píng)估等工作,提高數(shù)據(jù)工程的效率和質(zhì)量。

四、后記

原則

  • 如果沒有高質(zhì)量的數(shù)據(jù),微調(diào)實(shí)操的意義不大。數(shù)據(jù)質(zhì)量是決定微調(diào)效果的關(guān)鍵因素,即使采用最先進(jìn)的微調(diào)技術(shù),若沒有高質(zhì)量的數(shù)據(jù)支撐,也難以取得理想的效果。
  • 不強(qiáng)調(diào)數(shù)據(jù)量的大小,但是數(shù)據(jù)質(zhì)量一定要高。在數(shù)據(jù)工程中,應(yīng)更加注重?cái)?shù)據(jù)的質(zhì)量而非數(shù)量,高質(zhì)量的數(shù)據(jù)能夠使模型更加有效地學(xué)習(xí)到所需的知識(shí)和模式。

通過以上對(duì)模型微調(diào)的全面介紹,相信讀者已經(jīng)對(duì)模型微調(diào)有了深入的理解。在實(shí)際應(yīng)用中,需要根據(jù)具體的業(yè)務(wù)需求和場(chǎng)景,合理選擇微調(diào)方法和數(shù)據(jù)處理方式,以實(shí)現(xiàn)模型性能的有效提升。

本文由 @李雨田 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!