模型微調-書生浦語大模型實戰營學習筆記&大語言模型5

vanilla阿草發表於2024-04-16

大語言模型-5.模型微調

書生浦語大模型實戰營學習筆記-4.模型微調

本節對應的影片教程為B站連結。筆記對影片的理論部分進行了整理。

大模型的訓練過程

模型視角

這裡原影片用的“分類”這個名字,我看到的時候還有點懵😂,後來才意識到這裡說的是大模型的訓練過程。

這裡有兩個概念。不過在瞭解這兩個概念之前,我們先從模型的角度看看當今LLM都是如何訓練出來的。

我們知道當今LLM的訓練方式就是基於文字接龍:

但是不同階段,使用的訓練資料會有不同。

Pretrain

首先,模型使用網上爬取的資料隨意進行文字接龍訓練,這個過程叫做Self-supervised Learning(自監督學習):

訓練結束後,語言模型學了很多東西卻不知道使用方法。就好像人有上乘內功卻不知道使用的方法。
GPT、GPT2、GPT3都是使用這種方式完成訓練的,只不過訓練資料規模大小不一樣。因為這一過程就叫“生成式預訓練(Generative PreTraining)”

Instruction Fine-tuning

然後,使用一部分有標註資料在第一步自監督學習的基礎上進行Instruction Fine-tuning

InstructGPT就是使用這兩步訓練出來的。
但是資料標註太花費人力了,所以在這一步,有很多不同的做法:


Reinforcement Learning from Human Feedback (RLHF)

總結

好,下面回過頭來看影片中的兩個概念:

  • 增量預訓練微調
    • 使用場景:讓基座模型學習到一些新知識,如某個垂類領域的常識
    • 訓練資料:文章、書籍、程式碼等
  • 指令跟隨微調
    • 使用場景:讓模型學會對話模板,根據人類指令進行對話
    • 訓練資料:高質量的對話、問答資料

它們對應於模型訓練的不同階段

大模型訓練過程

那麼,指令微調

資料視角

從網際網路上爬出的資料顯然不能直接拿來訓練,需要進行一系列預處理。

資料視角

首先,要將原始資料進行清理(資料清洗):

資料清洗

然後對資料進行格式轉換,使其變為標準格式:

之後新增對話模板。格式轉換後即可直接替換對話模板。

實際上,對話模板中還會有起始符和結束符。

訓練完成後,在推理過程中仍然有新增與解除模板的過程:

LoRA

QLoRA

QLoRA就是量化了的LoRA:

同時,引入了Paged Optimizers,它可以避免梯度檢查點操作時記憶體爆滿導致的記憶體錯誤。

XTuner

影片後面還有一些對於XTuner的介紹。

另外,關於使用XTuner微調大模型,我們有一個實操供參考。

相關文章