前言:
要學習微調LLM,那就跟隨前輩作業,試著將Gemma3:270m加上繁體中文支援。
https://www.facebook.com/groups/gaitech/posts/1461027975081413/
成果:
整份專案在
https://gitlab.com/ycfunet/mi50_training_test
實做過程:
我用MI50微調訓練,讓Claude Code實做微調程式,一開始直接用Transforms訓練,結果一直出現Grad norm = NaN,Grad norm = NaN並不是一開始出現,也不是固定位置出現,是隨機位置出現,可能80%出現,可能95%出現,都會讓訓練失敗,微調出的模型,回答要嘛沒內容,要嘛出現padding,或者常見的出現各國語言混雜一段一段的回答錯亂。
後來用unsloth之後,發現unsloth微調都能正常訓練完,微調出的模型,中文問答都能中文回答。
雖然還有些問題,但原則上都能正確回答。
另外,完整微調真的很花時間,MI50一張,500k的繁體中文資料集,需要連續60幾小時訓練。
unsloth的記憶體使用量比想像少很多,用unsloth訓練時,GPU VRAM是浮動的,但最多也就12%,用量還不到4GB顯卡記憶體。
花費2週,算是有點成果,細節熟悉度還不夠,但入門算有點點進展吧。
補充:
對了,先前用colab T4微調馬達狀態機,這次也移到MI50上,發現MI50訓練的時間,跟colab T4差不多,估計MI50和colab T4同等級。
沒有留言:
張貼留言