「用 LoRa 洗腦 LLM – 我是海賊王!」


學 AI 以來,有一個領域我有心理障礙 – 訓練模型。這領域不容易跨進去,因為背景數學, machine learning (ML) 知識要很充足、訓練資料要完整、硬體設備要強大。所以相對於 「AI 應用」,學習 「AI 模型訓練」我認為門檻頗高的。

但想跨入 AI 產業,我看了許多工作,滿多都要求要會訓練模型,所以還是得面對它一下😅 好在,不用怕,這個時代有 LLM AI 能開外掛,能越級打怪去做之前自己做不到的事。遇到困難不用怕,有 LLM 可以問。

我花了一天的研究,終於能調較 LLM。我選的基底開源 LLM 是 Llama 3.1 8B,使用 low rank fine tuning (LoRa FT)。LoRa 的好處在於,它不訓練參數很多的基底 LLM,而是掛上一個小參數的 adapter,對新的資料進行訓練。好處在於節省大量計算時間。

在訓練 LoRa 的過程,我遇到一些問題,比如:
1. 我不清楚原始資料要轉成什麼格式灌給 LLM、執行一半會出現數值錯誤。後來參考網路上的範例格式,再學習如何使用 pandas 轉換與清 (clean) 資料解決。
2. LLM 訓練完輸入提示詞,但輸出看不出有受新訓練資料影響,令人不解整支訓練程式哪裡有誤。後來憑著我所學的 ML 知識判斷,最可能是「新資料訓練不足」,就下猛藥灌 1000 筆我是海賊王的資料洗腦 LLM。結果終於看到 training loss 一直下降趨進 0😆

最後將訓練完的 LLM + LoRa 進行測試,問它「哥爾·D·羅傑的別名」,它正確回答我的名字,成功洗腦!

原始碼:
https://github.com/MrMYHuang/train-anime-lora


Leave a Reply