【大模型】大模型相關技術研究—微調

為什么要對大模型進行微調

1.成本效益:

o 大模型的參數量非常大,訓練成本非常高,每家公司都去從頭訓練一個自己的大模型,這個事情的性價比非常低。

2.Prompt Engineering 的局限性:

o Prompt Engineering 是一種相對容易上手的使用大模型的方法,但它有明顯缺點。因為通常大模型的實現原理都會對輸入序列的長度有限制,Prompt Engineering 的方式會把 Prompt 搞得很長。越長的 Prompt,大模型的推理成本越高,因為推理成本是跟 Prompt 長度的平方正相關的。另外,Prompt 太長會因超過限制而被截斷,進而導致大模型的輸出質量打折扣,這也是一個非常嚴重的問題。

3.提升特定領域能力:

o Prompt Engineering 的效果達不到要求,而企業又有比較好的自有數據,能夠通過自有數據,更好地提升大模型在特定領域的能力。這時候微調就非常適用。

4.個性化服務:

o 要在個性化服務中使用大模型的能力,這時候針對每個用戶的數據,訓練一個輕量級的微調模型,是一個不錯的方案。

5.數據安全:

o 如果數據不能傳遞給第三方大模型服務,那么搭建自己的大模型就非常必要。

如何對大模型進行微調

從參數規模角度

1.全量微調(Full Fine Tuning, FFT)

o 對全量參數進行全量訓練,用特定的數據,對大模型進行訓練,將 W 變成 W’。W’ 相比 W ,最大的優點就是上述特定數據領域表現會好很多,但缺點是訓練成本高,并且存在災難性遺忘(Catastrophic Forgetting)的風險。災難性遺忘(Catastrophic Forgetting),用特定訓練數據去微調可能會把這個領域的表現變好,但也可能會把原來表現好的別的領域的能力變差。

2.參數高效微調(Parameter-Efficient Fine Tuning, PEFT)

o 只對部分參數進行訓練,解決 FFT 存在的問題。PEFT 是目前比較主流的微調方案。

從訓練數據來源和方法角度

1.增量預訓練(Continue PreTraining)

o 一般垂直大模型是基于通用大模型進行二次的開發。為了給模型注入領域知識,就需要用領域內的語料進行繼續的預訓練。

舉例:假設我們有一個已經在通用語料庫上預訓練的GPT模型,現在我們希望讓這個模型在醫學領域的文本上表現更好。我們可以使用大量的醫學文獻對這個GPT模型進行繼續預訓練,使其適應醫學領域的語言特點。

2.監督式微調(Supervised Fine Tuning, SFT)

o 用人工標注的數據,用傳統機器學習中監督學習的方法,對大模型進行微調。

例如:指令微調(Instruction Tuning)- 輸入文本:“Good morning!” - 任務描述:“翻譯成西班牙語” - 期望輸出:“?Buenos días!”

3.基于人類反饋的強化學習微調(Reinforcement Learning with Human Feedback, RLHF)

o 把人類反饋通過強化學習方式引入到對大模型的微調中,讓生成結果更加符合人類期望。

4.基于AI反饋的強化學習微調(Reinforcement Learning with AI Feedback, RLAIF)

o 與 RLHF 類似,但反饋來源是 AI,以解決人類反饋收集成本高、效率低的問題。

5.直接偏好優化(Direct Preference Optimization)

o 它主要通過直接優化模型對用戶偏好的預測能力來提升模型的性能。與傳統的損失函數優化不同,DPO更加關注模型在實際應用中的表現,特別是在用戶體驗和滿意度方面。
模型微調分成3個階段:

  1. 第一階段:(Continue PreTraining)增量預訓練,在海量領域文檔數據上二次預訓練模型,以注入領域知識.
  2. 第二階段: SFT(Supervised
    Fine-tuning)有監督微調,構造指令微調數據集,在預訓練模型基礎上做指令精調,以對齊指令意圖
  3. 第三階段 (1)RLHF(Reinforcement Learning from Human
    Feedback)基于人類反饋對語言模型進行強化學習,分為兩步:RM(Reward
    Model)獎勵模型建模,構造人類偏好排序數據集,訓練獎勵模型,用來建模人類偏好,主要是"HHH"原則,具體是"helpful,
    honest, harmless";RL(Reinforcement
    Learning)強化學習,用獎勵模型來訓練SFT模型,生成模型使用獎勵或懲罰來更新其策略,以便生成更高質量、更符合人類偏好的文.
    DPO(Direct Preference
    Optimization)直接偏好優化方法,DPO通過直接優化語言模型來實現對其行為的精確控制,而無需使用復雜的強化學習,也可以有效學習到人類偏好,DPO相較于RLHF更容易實現且易于訓練,效果更好

一些比較流行的PEFT方案

從成本和效果的角度綜合考慮,PEFT是目前業界比較流行的微調方案。接下來介紹幾種比較流行的PEFT微調方案。

1、Prompt Tuning
Prompt Tuning的出發點,是基座模型(Foundation Model)的參數不變,為每個特定任務,訓練一個少量參數的小模型,在具體執行特定任務的時候按需調用。

Prompt Tuning的基本原理是在輸入序列X之前,增加一些特定長度的特殊Token,以增大生成期望序列的概率。

具體來說,就是將X = [x1, x2, …, xm]變成,X = [x1, x2, ..., xk; x1, x2, …, xm], Y = WX`。

例如:

假設我們有一個情感分析任務,原始輸入句子為"I love this movie."
通過Prompt Tuning,我們在原始輸入序列前增加一些提示語,例如:
X’ = [“This is a sentiment analysis task:”, “The sentiment of the following sentence is:”, “I”, “love”, “this”, “movie”, “.”]
2、Prefix Tuning
Prefix Tuning的靈感來源是,基于Prompt Engineering的實踐表明,在不改變大模型的前提下,在Prompt上下文中添加適當的條件,可以引導大模型有更加出色的表現。

Prefix Tuning的出發點,跟Prompt Tuning的是類似的,只不過它們的具體實現上有一些差異。

Prompt Tuning是在Embedding環節,往輸入序列X前面加特定的Token。

而Prefix Tuning是在Transformer的Encoder和Decoder的網絡中都加了一些特定的前綴。

具體來說,就是將Y=WX中的W,變成W = [Wp; W],Y=WX。

Prefix Tuning也保證了基座模型本身是沒有變的,只是在推理的過程中,按需要在W前面拼接一些參數。

舉例說明:

原始英文句子為:“I love this movie.”

Encoder 輸入變為:W’_encoder = [Wp_encoder; W_encoder]

Decoder 輸入變為:W’_decoder = [Wp_decoder; W_decoder]

然后,我們將新的輸入序列 X 輸入到修改后的 Transformer 模型中進行預測,得到輸出 Y:

假設輸出結果是:“我喜歡這部電影。”

3、LoRA
LoRA是跟Prompt Tuning和Prefix Tuning完全不相同的另一條技術路線。

LoRA背后有一個假設:我們現在看到的這些大語言模型,它們都是被過度參數化的。而過度參數化的大模型背后,都有一個低維的本質模型。

通俗講人話:大模型參數很多,但并不是所有的參數都是發揮同樣作用的;大模型中有其中一部分參數,是非常重要的,是影響大模型生成結果的關鍵參數,這部分關鍵參數就是上面提到的低維的本質模型。

LoRA的基本思路,包括以下幾步:

首先, 要適配特定的下游任務,要訓練一個特定的模型,將Y=WX變成Y=(W+?W)X,這里面?W主是我們要微調得到的結果;

其次,將?W進行低維分解?W=AB (?W為m * n維,A為m * r維,B為r * n維,r就是上述假設中的低維);

接下來,用特定的訓練數據,訓練出A和B即可得到?W,在推理的過程中直接將?W加到W上去,再沒有額外的成本。

另外,如果要用LoRA適配不同的場景,切換也非常方便,做簡單的矩陣加法即可:(W + ?W) - ?W + ?W`。

參考:https://zhuanlan.zhihu.com/p/663557294
4、QLoRA
LoRA 效果已經非常好了,可以媲美全量微調的效果了,那為什么還要有個QLoRA呢?

這里先簡單介紹一下,量化(Quantization)。

量化,是一種在保證模型效果基本不降低的前提下,通過降低參數的精度,來減少模型對于計算資源的需求的方法。

量化的核心目標是降成本,降訓練成本,特別是降后期的推理成本。

QLoRA就是量化版的LoRA,它是在LoRA的基礎上,進行了進一步的量化,將原本用16bit表示的參數,降為用4bit來表示,可以在保證模型效果的同時,極大地降低成本。

論文中舉的例子,65B的LLaMA 的微調要780GB的GPU內存;而用了QLoRA之后,只需要48GB。效果相當驚人!

5、Adapter Tuning
在面對特定的下游任務時,如果進行 Full-Fintuning(即預訓練模型中的所有參數都進行微調),太過低效;而如果采用固定預訓練模型的某些層,只微調接近下游任務的那幾層參數,又難以達到較好的效果。

于是他們設計了如下圖所示的 Adapter 結構,將其嵌入 Transformer 的結構里面,在訓練時,固定住原來預訓練模型的參數不變,只對新增的 Adapter 結構進行微調。同時為了保證訓練的高效性(也就是盡可能少的引入更多參數)
在這里插入圖片描述

引用地址:https://zhuanlan.zhihu.com/p/650287173
參考地址:https://zhuanlan.zhihu.com/p/627642632

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43445.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43445.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43445.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

視圖庫對接系列(GA-T 1400)十二、視圖庫對接系列(本級)人員數據推送

背景 人體和非機動車和機動車類似的,只是請求的參數不一樣而已。人員數據推送 接入人員數據推送相對比較簡單,我們只需要實現對應的接口就ok了。 具體如圖: 有增刪改查接口,目前的話 因為我們是做平臺,我們只需要實現添加接口就可以了。 接口實現 service 層 /**** …

軟件工程面向對象 超市管理系統 需求分析 系統設計 課程設計報告

1、引言 系統簡述 超市管理系統的功能主要有前臺管理和后臺管理兩個大塊。其使用對象 有超市管理人員和超市銷售人員兩類。超市管理系統主要為了實現商品輸 入、 輸出管理數據的自動化, 提高商品統計信息的實時性, 減輕人工勞動強 度從而節省人力成本。實…

Perl 語言開發(九):深入探索Perl語言的文件處理

目錄 1. 文件打開與關閉 1.1 打開文件 1.2 關閉文件 2. 讀取文件內容 2.1 逐行讀取 2.2 一次性讀取整個文件 3. 寫入文件內容 3.1 覆蓋寫入 3.2 追加寫入 4. 文件測試操作 4.1 文件測試運算符 5. 文件路徑操作 5.1 文件路徑處理模塊 5.2 獲取文件路徑信息 6. 文…

探索加油小程序開發:便捷出行的科技新篇章

在快節奏的現代生活中,出行已成為人們日常生活中不可或缺的一部分。隨著移動互聯網技術的飛速發展,各類小程序以其輕量、便捷的特點迅速融入人們的日常生活,其中,加油小程序作為智慧出行領域的一股清流,正悄然改變著我…

《簡歷寶典》04 - 簡歷的“個人信息”模塊,要寫性別嗎?要放照片嗎?

平時幫助小伙伴們優化簡歷的時候,我看見他們有人會寫性別,有人不會寫。 目錄 1 招聘團隊的考慮 2 性別是無法改變的,能不寫就不寫 3 什么情況下,需要寫性別呢? 4 簡歷中要加照片嗎? 1 招聘團隊的考慮 …

Go語言---異常處理error、panic、recover

異常處理 Go 語言引入了一個關于錯誤處理的標準模式,即 error 接口,它是 Go 語言內建的接口類型,該接口的定義如下: package errorsfunc New(text string) error {return &errorString{text} }// errorString is a trivial implementation of error. type errorString st…

springboot事故車輛與違章車輛跟蹤系統-計算機畢業設計源碼03863

springboot事故車輛與違章車輛跟蹤系統 摘 要 科技進步的飛速發展引起人們日常生活的巨大變化,電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流,人類發展的歷史正進入一個新時代。…

W外鏈怎么樣,他們家的短網址免費的嗎?

W外鏈作為短網址服務的一種,體現了短網址技術的現代發展趨勢,它不僅提供了基礎的網址縮短功能,還擴展了一系列高級特性和增值服務,以適應更廣泛的市場需求。根據相關參考內容,W外鏈具有以下特點和優勢: 短域…

2024程序員行業風口和面試寶典

國際研究機構Gartner會在每年10月份左右發布下一年度的戰略發展趨勢預測,并在次年3月左右發布和網絡安全相關的趨勢預測。綠盟科技通過將近3年的趨勢預測進行分組對比分析后發現,除了眾人皆知的AI技術應用外,數據模塊化、身份優先安全、行業云…

軟考高級第四版備考--第13天(控制質量)Perform Quanlity Control

定義:為了評估績效,確保項目輸出完整、正確且滿足客戶期望而監督和記錄質量管理活動執行結果的過程。 作用: 核實項目可交付成果和工作已經達到主要干系人的質量要求,可供最終驗收;確定項目輸出是否達到預期的目的&a…

01-圖像基礎-顏色空間

1.RGB顏色空間 RGB是一種常用的顏色空間,比如一幅720P的圖像,所對應的像素點個數是1280*720,每一個像素點由三個分量構成,分別是R,G,B。 R代表紅色分量,G代表綠色分量,B代表藍色分量,以24位色來…

加密與安全_密鑰體系的三個核心目標之不可否認性解決方案

文章目錄 Pre概述不可否認性數字簽名(Digital Signature)證書是什么證書使用流程 PKICA證書層級多級證書證書鏈是如何完成認證的? 其他疑問1. Alice能直接獲取Bob的公鑰,是否還需要證書?2. 為什么即使能直接獲取公鑰也…

理解機器學習中的潛在空間(Understanding Latent Space in Machine Learning)

1、什么是潛在空間? If I have to describe latent space in one sentence, it simply means a representation of compressed data. 如果我必須用一句話來描述潛在空間,它只是意味著壓縮數據的表示。 想象一個像上面所示的手寫數字(0-9&…

vue學習day01-vue的概念、創建Vue實例、插值表達式、響應式、安裝Vue開發者工具

1、vue的概念 Vue是一個用于構建用戶界面的漸進式 框架 (1)構建用戶界面:基于數據動態渲染頁面 (2)漸進式:循序漸進的學習 (3)框架:一條完整的項目解決方案&#xff…

GenAl如何改變 DevOps 中的軟件測試?

TestComplete 是一款自動化UI測試工具,這款工具目前在全球范圍內被廣泛應用于進行桌面、移動和Web應用的自動化測試。 TestComplete 集成了一種精心設計的自動化引擎,可以自動記錄和回放用戶的操作,方便用戶進行UI(用戶界面&…

RTK_ROS_導航(2):衛星圖查看

目錄 1. 基于MapViz的衛星圖查看 1. 基于MapViz的衛星圖查看 安裝 # 源碼安裝 mkdir -p RTK_VISION/src cd RTK_VISION/src git clone https://github.com/swri-robotics/mapviz.git --branchmelodic-eol sudo apt-get install ros-$ROS_DISTRO-mapviz ros-$ROS_DISTRO-mapviz-…

IP-GUARD如何禁止電腦自帶攝像頭

IP-GUARD可以通過設備管理模塊禁止USB接口,所以USB外置攝像頭很容易就可以禁止了。 但是筆記本自帶攝像頭無法禁止,配置客戶端策略如下: device_control_unknown_mode1 device_control_unphysical_mode3

純電車的OBD接口

盡管傳統汽車的OBD接口主要用于監控和報告排放數據,但純電動車輛作為零排放的交通工具,其設計初衷與需求截然不同。因此,從法律條文和車管所的規定來看,純電動車輛是否仍需配置OBD接口這一問題,確實值得探討。理論上&a…

ABAP中ARFC_GET_TID函數詳細的使用方法

在ABAP中,ARFC_GET_TID 函數模塊用于以十六進制形式返回終端的IP地址。這個功能在需要獲取當前會話或終端的網絡地址信息時非常有用,比如在日志記錄、安全審計或網絡診斷等場景中。 詳細使用方法 調用函數模塊 ARFC_GET_TID 函數的調用通常很直接&…

記一次 Qt installer framework安裝程序過程中 安裝驅動依賴

在installscript.qs 文件中該函數添加exe 依賴程序放置位置