我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
- 訓練的必要模組安裝:AI說書 - 從0開始 - 135
- 載入資料集:AI說書 - 從0開始 - 136
- 資料集窺探:AI說書 - 從0開始 - 137
- 資料前處理與 Tokenization:AI說書 - 從0開始 - 138
- 資料 Padding 與訓練/驗證集切割:AI說書 - 從0開始 - 139
- Data Loader 設定:AI說書 - 從0開始 - 140
- BERT 模型窺探:AI說書 - 從0開始 - 141
- 載入 BERT 模型:AI說書 - 從0開始 - 142
- Optimizer 的 Decay Rate 群組配置:AI說書 - 從0開始 - 143
- BERT 模型的特定「層」參數窺探方法:AI說書 - 從0開始 - 144
- Optimizer 的 Decay Rate 群組窺探:AI說書 - 從0開始 - 145
- 配置 Optimizer 與訓練成效評估函數:AI說書 - 從0開始 - 146
- 訓練程式的撰寫:AI說書 - 從0開始 - 147
- 訓練結果圖示化:AI說書 - 從0開始 - 148
- 準備驗證微調效果的另一份資料前處理:AI說書 - 從0開始 - 149
- 微調模型的預測展示:AI說書 - 從0開始 - 150
- 使用 MCC 分數評估微調後的模型:AI說書 - 從0開始 - 151
歷經了 AI說書 - 從0開始 - 135 至 AI說書 - 從0開始 - 151,好不容易進行微調 & 驗證新的模型,那要如何保存起來呢?以下來教學:
save_directory = "/content/model"
if isinstance(model, torch.nn.DataParallel):
model.module.save_pretrained(save_directory)
else:
model.save_pretrained(save_directory)
tokenizer.save_pretrained(save_directory)
在 /content/model 資料夾中,會出現以下檔案:
- tokenizer_config.json:Tokenizer 的描述
- special_tokens_map.json:特殊 Token 的映射
- vocab.txt:Tokenizer 可以認得的文字
- added_tokens.json:Tokenizer 被初始化後所加入的 Token
不要忘記,我們是在 Google Colab 環境中進行模型訓練,一旦 Colab 關閉,我們的訓練模型將消失,因此我們可以把這模型存在 Google Drive 中:
from google.colab import drive
drive.mount('/content/drive')
下次在新的 Google Colab 環境中想再次載入模型來使用時,可以使用以下程式:
! mkdir -p /content/model/
! cp drive/MyDrive/files/model_C5/*.* /content/model
! pip install Transformers
from transformers import BertTokenizer, BertForSequenceClassification
load_directory = "/content/model/"
model = BertForSequenceClassification.from_pretrained(load_directory)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', do_lower_case = True)