SFT精調(diào)大模型實戰(zhàn)

大模型的SFT(Supervised Fine-Tuning,監(jiān)督微調(diào))是指在機器學(xué)習(xí)和自然語言處理(NLP)領(lǐng)域中,對已經(jīng)預(yù)訓(xùn)練的模型進(jìn)行特定任務(wù)的訓(xùn)練,以提高其在該任務(wù)上的表現(xiàn)。具體來說,SFT的基本思想是利用特定任務(wù)的數(shù)據(jù),對已經(jīng)在大量通用數(shù)據(jù)上訓(xùn)練完成的預(yù)訓(xùn)練模型進(jìn)行進(jìn)一步調(diào)整,使其更適合該任務(wù),并更好地適應(yīng)最終任務(wù)和對齊用戶偏好。

SFT的原理與步驟

SFT的過程大致可以分為以下幾個步驟:

  1. 預(yù)訓(xùn)練模型:首先,在大規(guī)模的無監(jiān)督數(shù)據(jù)集(如維基百科、書籍語料庫等)上進(jìn)行預(yù)訓(xùn)練。通過無監(jiān)督學(xué)習(xí),模型學(xué)習(xí)到豐富的語言表示,如詞語之間的關(guān)系、句子結(jié)構(gòu)等。
  2. 數(shù)據(jù)收集與標(biāo)注:選擇特定任務(wù)的數(shù)據(jù)集,對數(shù)據(jù)進(jìn)行預(yù)處理和標(biāo)注。這些數(shù)據(jù)集用于后續(xù)的有監(jiān)督微調(diào)過程。
  3. 監(jiān)督微調(diào):將預(yù)訓(xùn)練的基礎(chǔ)模型在標(biāo)注好的數(shù)據(jù)集上進(jìn)行進(jìn)一步訓(xùn)練。這一過程通過有監(jiān)督學(xué)習(xí),使模型能夠利用預(yù)訓(xùn)練階段學(xué)到的通用知識,結(jié)合新數(shù)據(jù)的標(biāo)簽信息,提升在特定任務(wù)上的表現(xiàn)。
  4. 模型評估與優(yōu)化:使用驗證集對微調(diào)后的模型進(jìn)行評估,計算模型在任務(wù)上的性能指標(biāo)。根據(jù)評估結(jié)果,對模型進(jìn)行進(jìn)一步的優(yōu)化和調(diào)整。

SFT的方式

大模型的SFT方式主要包括以下幾種:

  1. 全參數(shù)微調(diào)(Full Parameter Fine Tuning):涉及對模型的所有權(quán)重進(jìn)行調(diào)整,以使其完全適應(yīng)特定領(lǐng)域或任務(wù)。這種方法適用于擁有大量與任務(wù)高度相關(guān)的高質(zhì)量訓(xùn)練數(shù)據(jù)的情況。
  2. 部分參數(shù)微調(diào)(Sparse Fine Tuning / Selective Fine Tuning):
  • LoRA(Low-Rank Adaptation):通過向模型權(quán)重矩陣添加低秩矩陣來進(jìn)行微調(diào),既允許模型學(xué)習(xí)新的任務(wù)特定模式,又能夠保留大部分預(yù)訓(xùn)練知識。
  • P-tuning v2:基于prompt tuning的方法,僅微調(diào)模型中與prompt相關(guān)的部分參數(shù),而不是直接修改模型主體的權(quán)重。
  • QLoRA:可能是指Quantized Low-Rank Adaptation或其他類似技術(shù),它可能結(jié)合了低秩調(diào)整與量化技術(shù),以實現(xiàn)高效且資源友好的微調(diào)。
  1. 凍結(jié)(Freeze)監(jiān)督微調(diào):在這種微調(diào)方式中,部分或全部預(yù)訓(xùn)練模型的權(quán)重被凍結(jié),僅對模型的部分層或新增的附加組件進(jìn)行訓(xùn)練。這樣可以防止預(yù)訓(xùn)練知識被過度覆蓋,同時允許模型學(xué)習(xí)針對新任務(wù)的特定決策邊界。

SFT的應(yīng)用與優(yōu)勢

SFT在自然語言處理領(lǐng)域有廣泛的應(yīng)用,如文本分類、情感分析、機器翻譯等。通過結(jié)合預(yù)訓(xùn)練和微調(diào),SFT能夠在較少的數(shù)據(jù)和計算資源下實現(xiàn)高效的模型性能提升。此外,由于預(yù)訓(xùn)練模型已經(jīng)在大量數(shù)據(jù)上進(jìn)行過訓(xùn)練,SFT通常只需要較少的標(biāo)注數(shù)據(jù)即可達(dá)到良好的效果,這降低了數(shù)據(jù)標(biāo)注的成本。

總的來說,大模型的SFT是一種有效的模型優(yōu)化方法,能夠提升模型在特定任務(wù)上的表現(xiàn),并推動自然語言處理技術(shù)的進(jìn)一步發(fā)展。
在百度智能云平臺上,您可以選擇對應(yīng)的基礎(chǔ)模型進(jìn)行SFT訓(xùn)練,以進(jìn)一步優(yōu)化模型性能和適應(yīng)特定任務(wù)需求。

本文采用LoRA微調(diào)

  1. 原理概述
    低秩矩陣:在線性代數(shù)中,矩陣的秩(Rank)是指矩陣中線性無關(guān)的行或列的最大數(shù)目。低秩矩陣意味著矩陣中存在較多的線性相關(guān)性,即矩陣的信息冗余度高。LoRA利用這一特性,通過引入低秩矩陣來近似表示權(quán)重矩陣在微調(diào)過程中的變化。
    微調(diào)過程:在LoRA中,原始預(yù)訓(xùn)練模型的權(quán)重矩陣保持不變,而是在其基礎(chǔ)上添加兩個低秩矩陣A和B。這兩個矩陣的乘積BA可以近似表示權(quán)重矩陣在微調(diào)過程中的變化量。因此,微調(diào)后的權(quán)重矩陣可以表示為W' = W + BA,其中W是原始權(quán)重矩陣,W'是微調(diào)后的權(quán)重矩陣。
  2. 示例說明
    假設(shè)我們有一個預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)層,其權(quán)重矩陣W的維度為1000×1000。在LoRA微調(diào)過程中,我們可以引入兩個低秩矩陣A和B,它們的維度分別為50×1000和1000×50。這樣,通過訓(xùn)練這兩個較小的矩陣A和B,我們能夠微調(diào)原始的1000×1000權(quán)重矩陣W,而不需要重新訓(xùn)練所有100萬個參數(shù)。最終,微調(diào)后的權(quán)重矩陣W' = W + BA,其中BA的維度為50×50,僅包含2500個參數(shù)。

綜上所述,LoRA(Low-Rank Adaptation)通過向模型權(quán)重矩陣添加低秩矩陣來進(jìn)行微調(diào),既允許模型學(xué)習(xí)新的任務(wù)特定模式,又能夠保留大部分預(yù)訓(xùn)練知識。這一技術(shù)以其高效性、保留預(yù)訓(xùn)練知識和減少過擬合風(fēng)險等優(yōu)勢,在自然語言處理領(lǐng)域得到了廣泛應(yīng)用。

SFT案例——勞動合同關(guān)鍵信息提取

在企業(yè)管理和法律事務(wù)中,大模型可以扮演合同審查專家的角色,自動識別勞動合同是否包含所有必備條款并提取合同中的關(guān)鍵信息。通過模型精調(diào),可以解決直接調(diào)用大模型輸出內(nèi)容不夠準(zhǔn)確全面、不按格式輸出等問題。精調(diào)模型的效果遠(yuǎn)遠(yuǎn)優(yōu)于基礎(chǔ)模型ERNIE Speed的效果。
對于勞動合同關(guān)鍵信息提取而言,需要大模型能夠精準(zhǔn)提取需要的關(guān)鍵信息,保證模型輸出能夠做到以下幾點:
內(nèi)容全面準(zhǔn)確:按照以下順序連續(xù)輸出一段字符串:1、分析是否缺失必備條款;2、分析是否缺失期望提取的關(guān)鍵信息;3、提取的關(guān)鍵信息內(nèi)容。
格式準(zhǔn)確無誤:只需輸出以上三點內(nèi)容,不用輸出順序號和多余信息,尤其是第3點需要以{"要求提取的關(guān)鍵信息":"你提取的關(guān)鍵信息內(nèi)容"}的json格式輸出。

模型與參數(shù)

ERNIE-Speed-8K查看

訓(xùn)練方式 迭代輪次Epoch 學(xué)習(xí)率Learning Rate 序列長度Seq Length
SFT 1 0.00003 4096

數(shù)據(jù)格式示例

Prompt Response
你是一個從合同中提取關(guān)鍵信息的智能助手。你的任務(wù)是分析【合同文本】并提取【關(guān)鍵信息】。\n你需要向我匯報的內(nèi)容是:\n1.匯報合同是否缺失勞動合同必備條款;\n2.匯報【關(guān)鍵信息】有沒有在合同中缺失;\n3.匯報你提取的關(guān)鍵信息,以{"要求提取的關(guān)鍵信息":"你提取的關(guān)鍵信息內(nèi)容"}的json格式匯報。\n4.按照上述順序連續(xù)匯報一段字符串,并且不用輸出順序號和任何多余信息。\n下面是你要分析的【合同文本】和要提取的【關(guān)鍵信息】:\n【合同文本】\n 甲方(用人單位)\n名稱:明達(dá)科技有限公司\n統(tǒng)一社會信用代碼:91310105MA1FW7U934\n地址:上海市靜安區(qū)延安西路666號\n聯(lián)系人:張明\n聯(lián)系方式:13800138000\n乙方(勞動者)\n姓名:李華\n身份證號碼:340824199001010012\n住所:上海市浦東新區(qū)世紀(jì)公園路100號\n聯(lián)系人:李華\n聯(lián)系方式:13900139000\n本合同各方經(jīng)平等自愿協(xié)商,根據(jù)《中華人民共和國民法典》《中華人民共和國勞動合同法》及相關(guān)法規(guī),簽訂本合同以共同遵守。\n# 勞動合同期限 #\n勞動合同期限:自2023年 03月 01日起(含當(dāng)日)至 2026年 03月 01日(含當(dāng)日)止。\n# 工作崗位和工作地點 #\n工作崗位:軟件工程師。具體工作內(nèi)容以甲方要求為準(zhǔn)。\n工作地點: 上海市靜安區(qū)延安西路666號明達(dá)科技有限公司辦公樓。\n# 勞動報酬 #\n月工資標(biāo)準(zhǔn):人民幣(大寫)玖仟元(¥9000元)。\n# 工作時間、休息休假 #\n乙方所在崗位執(zhí)行標(biāo)準(zhǔn)工時制;甲方保障乙方的休息權(quán)利,并確保乙方每周至少休息一日。\n# 社會保險和福利待遇 #\n甲方依法為乙方繳納社會保險。\n# 附則 #\n本合同一式兩份,甲、乙雙方各執(zhí)一份,具有同等法律效力。\n\n甲方(蓋章):明達(dá)科技有限公司\n乙方(簽字):李華\n簽訂日期:2023年03月01日\n【關(guān)鍵信息】\n勞動合同期限,注意要提取年月日-年月日 的純數(shù)字格式 分析:該合同包含了用人單位和勞動者的基本信息、勞動合同期限、工作崗位和地點、勞動報酬、工作時間和休息制度以及社會保險等關(guān)鍵信息,但缺失了試用期、勞動紀(jì)律、勞動保護(hù)和職業(yè)危害防護(hù)等條款。分析:有勞動合同期限。{"勞動合同期限": "20230301-20260301"}"

數(shù)據(jù)集是SFT的關(guān)鍵也是工作量最大的部分,數(shù)據(jù)的質(zhì)量關(guān)系訓(xùn)練的效果??!一般在1000條數(shù)據(jù)左右,最少100條。

模型訓(xùn)練

進(jìn)入千帆modelbuilder平臺:https://console.bce.baidu.com/qianfan/overview
點擊左側(cè)SFT菜單。


新建SFT任務(wù),點擊按鈕“創(chuàng)建訓(xùn)練作業(yè)”,填寫如下信息:



開始精調(diào)點擊“確定”按鈕,會自動調(diào)整到SFT詳情頁面。

預(yù)計精調(diào)40分鐘后完成。
發(fā)布模型為我的模型,

發(fā)布后,可以在左側(cè)我的模型菜單查看到發(fā)布后的模型??梢越酉聛碓u估、壓縮等操作,最后部署模型為服務(wù),即可被調(diào)用進(jìn)行推理。

點擊部署鏈接,開始申請資源進(jìn)行模型部署,會生成模型的調(diào)用URL,注意圖中的API地址是固定地址加上自定義的內(nèi)容才是完整API地址,再參考百度提供的API或者SDK進(jìn)行模型推理。

可以查看評估報告。

至此一個完成了模型SFT精調(diào)并發(fā)布為服務(wù)的過程。

模型評估請移步:http://www.itdecent.cn/p/23f73a8a7c53

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容