AI 學習紀錄 – GPT-J 使用與 finetune (2)

經過上一篇的學習紀錄,瞭解到了要利用一般平台進行 GPT 訓練,似乎是一項非常昂貴的任務,所以尋找了降級的辦法。所謂的降級辦法,就是把 fp16 改用成  int8 的方式,進一步降低 CPU RAM 的需求,而且據說對結果的影響不算大,所以我也試了一下。但還是沒有適當的硬體來評估是否真的可以,用 Google 的 GCE 壓力山大,所以只能匆匆的試了一下,可以運行,可以 finetune,但效果還不得而知。

同樣的,就先把步驟記下來,目前已經在考慮入手 NVIDIA RTX 4090 的,若有機會還是可以試一試。

系統安裝與設定

請先將前一篇的內容完成 Nvidia driver 的安裝「安裝 Nvidia CUDA 11.3 與 Driver」。

下載 8bit gpt-j

接著,下載這個 8bit 的 project,以進行訓練,並安裝所需的檔案。如該專案所述,安裝所需 library

其中 requirements.txt 的 bitsandbytes-cuda111 請改安裝 0.26.0.post2才行,請自行修改。

 GPT-J 8bit 初始化

這個 gpt-j 要先下載 8bit 的 model 檔案,再進行訓練,所以需要自行修改不少東西,此處請參考下面內容,進行修改,所需的目錄,請先進行創建。

接著將絕對目錄改成相對目錄

下載預先訓練的 Model

編輯 gpt-j-6b-8-bit.py,在最前面 import sys,找到下面這一段,然後拿掉 comment

改成這樣

再執行 python gpt-j-6b-8-bit.py ,就會開始下載一個約6G的預先訓練檔案,如果最後看到一個 “Killed”,則代表記憶體不夠,請把虛擬記憶體再加大一點。下載完後,就可以把剛剛那段改回來。

執行推論

找到下面這一段,並在最下面加個 sys.exit(0) 確定可以進行推論

會有類似的回應

確定也可以進行詢問後,可以也把這段 「Text generation example」也 comment掉。

FineTune

最後 FineTune 的部份,需要一個文字的訓練檔案,這篇文章提供了一段與馬克斯的採訪的文稿,可以拿來訓練。訓練的部份我沒深入測試過,可能還需要讀者多加研究一下。

把文稿下載下來後,存成 article-1.txt。並把程式碼下面的這段,修改一下,只處理這個檔案。

另外有一段程式碼也需要修改,找到下面片段

 

再執行一次 gpt-j-6b-8-bit.py ,就會開始執行 finetune。

結語

這個8bit的分支是比較容易執行的版本,速度與資源較少,但也還沒有既法評估其效果。就先記下來吧~

 

 

 

 

Leave a Reply

請輸入答案 × 4 = 4