微調框架概述
模型的微調有多種方式,對於入門的來說,一般都是基於官方的文檔微調;最近發現很多開源庫,其目的就是支持應用多種微調策略來微調模型,簡化模型的微調門檻。比如 ChatGLM-Efficient-Tuning、LLaMA-Factory。其架構邏輯如下:
最近試玩了這兩個框架,個人覺得蠻好的,先不說實際的調試效果,這取決於多種因素,總的來說還是很方便快捷的。方便快捷的基於多種微調策略調試LLM;同時支持多種數據集類型。
LLaMA-Factory
這個開源庫相比較其餘的庫,更全面,更方便。有如下幾點我是比較喜歡的。
- 訓練方法
- 如圖,多種訓練方法都支持,很全面。不過這裏的預訓練,我理解爲是增量預訓練;即準備大量的文本數據訓練。
- 支持全參數、部分參數、LoRA等策略微調。
- 降低門檻,一鍵訓練。對於學習來說,可以增加知識面及使用。
- 數據集
- 支持多種數據集:增量預訓練數據集、指令微調數據集、偏好數據集;在官方文檔都是有說明的。
- 每次微調前,我都需要斟酌數據集的準備、格式等;但開源庫已經準備的很齊全而且各種場景的數據格式都有,直接參考即可;比如單輪對話、多輪對話、指令格式等等。這就極大的方便了數據集的準備。
- 其它
- 當然還有分佈式訓練、web界面操作等等
ChatGLM-Finetuning
Finetuning 是專門基於GLM系列的微調庫,我個人也試用,還是很方便快速的,而且文檔比較清晰,只是在部署時比較簡陋,但對於要學習瞭解微調及LLM一些原理來說,還是很適合入門鑽研的。
應用
目前絕大多數的大模型都是基於基座模型(GLM、QWen、LlaMa、BaiChuan)等微調訓練而來,不過實現的邏輯卻是有多種,要麼基於官方的微調文檔,要麼基於開源微調庫實現。CareGPT 就是基於開源微調庫LLaMA-Factory實現的醫療領域大模型。其架構設計如下:
在其架構設計中,有兩個部分比較值得關注:
- 微調框架的集成
- 通過集成了微調框架,調用底層具備的能力,準備多種格式的數據集微調模型。
- 數據開放
- 基於開源醫療數據集,準備增量預訓練預料、指令監督預料、SFT預料等等;擴充基座模型的領域知識能力。
總結
基於個人使用及學習的角度,介紹了微調框架的概述及其應用。在這裏面的道道還是蠻多的,有一定的大模型知識再基於這些庫去做參考去做應用,將極大的降低LLM的應用門檻。更有甚者可以瞭解底層的實現邏輯。
首發於個人公衆號