聊聊大模型微調訓練全流程的思考

轉載請註明出處:https://www.cnblogs.com/zhiyong-ITNote

參考現有的中文醫療模型:MedicalGPTCareGPT等領域模型的訓練流程,結合ChatGPT的訓練流程,總結如下:
在預訓練階段,模型會從大量無標註文本數據集中學習領域/通用知識;其次使用{有監督微調}(SFT)優化模型以更好地遵守特定指令;最後使用對齊技術使LLM更有用更安全的響應用戶的提示。

訓練流程的四個階段,分別如下:

  1. 預訓練(pre-training,pt),基於基座模型,經過海量中文醫療預料訓練,得到領域適配的ChatGLM-6B。
  2. 監督微調(supervised finetuning,sft),通過在線問診等數據,構建訓練數據完成指令微調。
  3. RM模型構建(reward modeling, rm),人工對預測答案排序,訓練一個打分模型
  4. 強化學習階段(reinforcement learning, rl),基於PPO算法,採用RL的方式,完成fine-tuned ChatGLM-6B模型的優化。

預訓練階段-PT

該階段的訓練數據格式如下。對應是非結構化的自然語言文本,通過設定max_seq_len和block_size等方式,實現文本數據的chunk,batch化,作爲模型的訓練數據,處理完的單條數據包含input_ids,attention_mask和labels;訓練的目標是模型需要根據提供的文本來預測 下一個單詞。
image.png

監督微調階段-SFT

該階段的訓練數據格式如下。一般對應的結構採用instruction/input/output/history,根據不同的場景,input與history可以做缺省處理。但是需要人工標註的指令數據集。
image.png

對齊

該階段的主要目標是將語言模型喻人類的偏好、價值觀進行對齊,這也是RHLF機制的作用。
RLHF主要包括兩步:

  1. 基於有監督微調模型基礎上創建一個reward model(RM)模型;
  2. 基於RM模型使用PPO/DPO算法微調SFT模型,返回最佳response。

獎勵模型-RM

該階段是RHLF的第一個階段,訓練得到一個rm模型用於rl階段的模型打分,其結構格式如下:
image.png
image.png
有多種格式的數據,可自己選擇,但需要程序做額外的處理,且這些數據都是人工標註好的。

強化學習-RL

該階段是RHLF的第二個階段,也是核心部分,用於優化一個RM模型,並完成打分。數據格式同SFT。一般在此階段會使用特定的算法(DPO/PPO)來實現;引導優化後的大模型生成更符合人類偏好的內容。

總結

對於模型的微調,一開始我是想的太簡單了,覺得只要按照基座官方模型文檔調試即可;隨着瞭解的深入與不斷的學習,微調是個大工程而且對於領域模型來說,其訓練流程:預訓練 --> 監督微調 --> RHLF 中包含的事項與知識太多。
參考:【中文醫療大模型】訓練全流程源碼剖析

轉載請註明出處:https://www.cnblogs.com/zhiyong-ITNote

首發於個人公衆號
image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章