ChatGLM2-6B模型的微調

概述

GLM、ChatGLM的相關基礎知識說明:

  1. GLM模型底層還是基於Transformer,因此其設計、優化都是圍繞Transformer的各個組件的。從注意力層的掩碼、位置編碼等方面優化與設計。
  2. ChatGLM3/ChatGLM2的源碼中,比如finetune、trainer等代碼,其實是copy自HuggingFace,而且其使用流程與調用機制,與HuggingFace的開發流程是一致的。
  3. 對GLM-130B,ChatGLM千億模型,ChatGLM-6B的區分不夠清楚,這裏給出說明:
    • GLM-130B:於2022年8月由清華智譜AI開源放出。該大語言模型基於之前提出的GLM(General Language Model),在Norm處理、激活函數、Mask機制等方面進行了調整,目的是訓練出開源開放的高精度千億中英雙語稠密模型,能夠讓更多研發者用上千億模型。
    • ChatGLM千億模型: 該模型是爲了解決大基座模型在複雜問題、動態知識、人類對齊場景的不足,基於GLM-130B,引入面向對話的用戶反饋,進行指令微調後,得到的對話機器人。
    • ChatGLM-6B:於2023年3月開源。在進行ChatGLM千億模型內測的同時,清華團隊也開放出了同樣技術小參數量的版本,方便研發者們進行學習和開發(非商用)。

ChatGLM對話模型的微調需要用到兩個部分;一是已預訓練的模型文件,二是ChatGLM的源碼文件。

模型文件

Huggingface平臺下載到本地或直接用遠程的文件。
image.png
已預訓練的模型,其開發調用模式遵循Huggingface的開發規範。

微調

在github上託管的ChatGLM源碼包中,詳細的介紹了基於p-tuning的微調策略
image.png
其源碼模塊中已經準備好了腳本文件 train.sh ,該文件包含所有相關的配置參數,根據微調後的配置調整腳本文件,一鍵運行即可。
微調並執行後,會保存並生成checkpoint-xxx文件。這就是新的權重超參數。

模型部署

有兩種方式用來運行微調後的模型:

  1. 基於Huggingface的開發規範,將原模型超參數文件與微調後的超參數文件一起加載,並調用。
  2. 調整 web_demo.sh 文件中的路徑配置,運行即可。

參考

ChatGLM2-6B微調視頻講解
基於第二代 ChatGLM2-6B P-Tuning v2 微調訓練醫療問答任務
官方p-tuning微調文檔

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