自己的AI自己”練” :AI TOP設定與介面說明 LLM訓練立即上手
瞭解如何安裝大預言模型LLM之後,就可以開始使用AI TOP應用程式來訓練他們,做出更適合自己使用的私有化AI了。在開始使用之前,有些基本設定及說明要先弄清楚,以便更有效率或更精準的進行相關訓練。
點選AI TOP應用程式的Experiment選項,這邊有一些欄位需要手動選擇,這些選項會依照使用的LLM而有所不同,這邊以通用的規範進行說明,更多細部設定值,請參閱LLM的相關需求。

首先是在一般設定(General settings),不管是入門使用者或進階玩家都需要進行下列設定:
- Experiment Name:這是AI訓練的作業名稱,可以視為訓練的檔名,建議可以取一個比較容易識別的名稱,例如:20240901_Meta-Llama-3-8B_Training_001。
- LLM Backbone:這要訓練的大語言模型存放位置,選項下方連結要選擇存放LLM的連結,這個連結就是上一篇文章裡面提到的Model資料夾,通常是/home/主機名稱/model/LLM資料夾名稱。*這邊的主機名稱跟所有LLM資料夾名稱,會依機器設定不同而有差異,要稍微注意一下。
- Output Directory:這是用來儲存LLM訓練結果(如模型權重、日誌和其他輸出資料)的資料夾路徑。通常是/home/主機名稱/output。*這邊的主機名稱也會依機器設定不同而有差異。
- Resume from checkpoint:人生常充滿意外,AI訓練也是。這個功能可以讓訓練從上一個檢查點繼續進行,而不需要從頭開始,以節省訓練的時間。所以開始訓練之後,可以啟用這個功能,以避免不必要的麻煩。
- Datasets:指定在訓練期間用於模型調校的訓練資料檔存放位置。路徑通常是/home/主機名稱/Data/訓練資料檔名稱。*訓練資料檔的支援格式包括txt、csv、json等,相關格式可以在Hugging Face網站找到,但產出有價值的訓練資料檔,是AI訓練最難的部分。

設定完這些選項之後,我們先跳到最右邊的硬體設定這邊Hardware Settings調整一下硬體配置,其中GPUs用指要於訓練過程的顯示卡數量。會自動列出目前系統中所有可用的顯示卡。使用者可以在清單中選取或取消選取要用來訓練LLM模型的顯示卡。而Offloading Memory Strategy則提供多種卸載模型最佳化的設定,並可以選擇套用到系統記憶體或(和)NVMe SSD,以便進行硬體功能最佳化並避免記憶體不足問題。如果要獲得最高效能,可以選到最高設定,當然也會比較耗電,可以依照需求選擇。

做完上面設定之後,基本上就可以開始訓練AI了,看起來很簡單對吧?這就是技嘉對入門使用者的貼心跟開發這些功能的初心,讓初學者不需要受限於程式的能力跟背景就可以使用,更貼心的是AI TOP還提供了簡易的LLM訓練預設模式,提供已經寫好的設定,讓沒有AI相關基礎的使用者,也能輕鬆訓練AI,包括:
- Standard(標準模式):訓練速度跟精準度都中等,產出較平均
- Fast Speed(快速模式):訓練速度最快,但精準度最低,可用於練習
- High Precision(精準模式):準確度最高,訓練最完整,但訓練速度最慢,適合有比較充裕時間的訓練需求。
入門使用者可以依照需求直接選擇上面選項來進行訓練,之後按下Run Experiment就可以了!

更多設定看看這邊
對於想要有更多設定空間的進階AI使用者,可以按一下Clear來停用預設的快速訓練模式,改用手動調整參數,AI TOP提供的訓練的方法,包括:full、freeze、LoRA、qLoRA,每個方法影響訓練記憶體需求和訓練後LLM的品質,其中:

- Full:模型的所有參數在訓練過程中都會更新。這種方法根據新的訓練資料調整模型每一層的權重。
- 優點:模型完全以新資料檔為基準,在特定任務或訓練需求有更好的效果呈現。
- 缺點:全面訓練需要大量的運算資源,如果新資料跟原始資料太相似,可能影響訓練結果。另外還可能發生嚴重失誤,讓模型失去執行最初訓練任務的能力。
- Freeze:模型的某些層在訓練期間的權重不更新,只有某些會根據新資料改變。
- 優點:凍結某些層可以減少計算成本和需要更新的參數數量。也有助於保留模型學到的一般知識,並降低嚴重失誤的風險。
- 缺點:由於只更新了模型的部分參數,因此模型訓練效果可能會比較受限。
- LoRA:透過導入可訓練的低秩矩陣,來修改預先訓練的模型,這些矩陣調整的是模型現有權重,而不是取代它們,可以減少模型參數的數量和運算需求。
- 優點:減少模型訓練時的運算資源需求,可提高訓練效率,並且在保持效能的同時降低模型的複雜度。
- 缺點:在某些情況下,可能無法提供與完全訓練相同的彈性。
- qLoRA:LoRA的量化版本,理論上可以用更少的位元來表示LoRA參數,節省記憶體使用率和效能耗用。
依照不同訓練方式,會有更多進階設定選項,如果選擇Freeze會看到下面選項:
|
Number of Trainable Layers |
用來指定在訓練過程中可以調整的模型層數,選擇層數越高,更新的部分越多,但更耗用系統資源。 |
|
Name Module Trainable |
主要是指選項啟用時可訓練模組或架構的名稱:MLP或Self-Attention等。 |
如果選擇的是LoRA,會有更多選項要設定,包括:
|
LoRA Target |
用來指定LoRA對應目標模型的哪些部分或模組(q_proj, v_proj, k_proj, o_proj)。這些模組的選擇會根據不同LLM而有所不同,請參閱各LLM的需求說明。 |
|
LoRA Rank |
LoRA中使用的矩陣分解維數。LoRA Rank的範圍依據2的n次方(2^n)規則而定,以最佳化神經網路的學習原理。n的範圍包括:[0,2,4,8,16,32,64,128,256…],數字越大維度越多,可調整的自由度也越高。 |
|
LoRA Alpha |
LoRA權重的比例因子。LoRA Alpha的範圍依據2的n次方(2^n)規則而定,以最佳化神經網路的學習原理。n的範圍包括:[0,2,4,8,16,32,64,128,256…],數字越大比例越高,可調整的彈性也越高。 |
|
LoRA dropout |
訓練期間對LoRA權重應用dropout的機率。可設定範圍:[0~1]。 |
|
Quantization Bit |
用來定義模型權重的位元精準度,通常是為了減少模型大小或加速推理速度。用來將模型參數的高精度浮點數(32bits, 16 bits)轉換為低精度數字(8 bits, 4 bits)。可設定數值範圍包括無, 4 bit及8 bit。 |
選擇完訓練方式之後,需要進一步調整Training settings,包括:

- Backbone Dtype:依據LLM不同權重的資料類型,來決定訓練後的模型精準度,可選擇的數值包含fp16, bf16及fp32。
- Learning rate:學習速率是模型在處理每個小批量資料後,更新其權重的速度,資料範圍介於0跟1之間。
- LR Schedule Type:在訓練的過程中調整訓練週期或迭代之間學習速率的策略。設定選項包括Cosine(餘弦)及linear(線性)。
- Batch size:在訓練模型迭代期間,每個GPU中小批量使用的訓練範例數量。這個數值範圍依據2的n次方(2^n)規則而定,以最佳化神經網路的學習原理。n的範圍包括:[0,2,4,8,16,32,64,128,256…],數字越大數量越多。
- Epoch(訓練週期):是將整個訓練資料集完整通過神經網絡一次的過程。每個Epoch包括一次完整的正向傳播和反向傳播。這個過程會重複多次,以便模型能夠學習資料中的模式和特徵。
- Save Checkpoint Strategy:訓練期間所採用的檢查點,選項包:
- None (無):在完成整個訓練過程之前都不儲存檢查點。
- Epochs (週期):每完成一個訓練週期設定一個檢查點。
- Steps (步驟):每n個訓練步驟設定一個檢查點,Save Steps需要設定兩個檢查點之間的更新步驟數值。例如Save Steps = 500表示在訓練過程中每500個訓練步驟就儲存一個檢查點。
- Flash Attention:一種演算法最佳化技術,啟用Flash Attention 2可大幅節省繪圖記憶體使用,並將運作速度提高2~4倍。設定選項包括True(啟用)跟False(不啟用)。
最後幾個選項是Tokenizer settings這邊的Max Length,代表在LLM訓練期間「輸入查詢」和「輸出答案」的最大長度。依照開放AI標準,通常是1000個詞元(Token) ~ 750 個單字。長度範圍包括512, 24以及2048~128k這個範圍,並取決於預訓練的LLM的能力而定。

而Expand Config這個技嘉獨家技術,則可以編輯或增加更多訓練指令,讓進階使用者可以依照自己的方式訓練LLM模型。

到這邊,所有簡易跟進階設定都已經完成了,不管用的是哪一種,都只要按下Run Experiment就會開始進行LLM訓練。之後回到Dashboard模式,這邊會顯示LLM訓練的進度、所需時間跟所有硬體負載跟運作狀況。如果訓練出現問題,也可以在Logs這邊看到相關訊息,以進行分析。

補充說明:聽說AI很耗電??
是,AI的運算需要運用很多電腦資源,為了讓系統有更足夠的運算能力,需要有足夠的電力作後盾,所以會比一般電腦系統更耗電。
雖然我們無法控制系統用多少電,但至少可以在電費比較便宜的時間進行。例如台灣地區夏月尖峰時間為下午4時到晚上10時,每度電6.92元;半尖峰時間為上午9時到下午4時、晚上10時到12時,每度電4.54元;離峰時間為凌晨12時起到上午9時,每度電1.96元。如果用離峰時間來進行訓練,每度電可以省將近5元。

所以AI TOP提供了一個Schedule的功能,可以在這邊設定哪些時間段進行LLM訓練,以節省訓練費用。

到這邊,AI TOP的相關設定說明已經完成,相信大家跟著這三篇文章的說明,可以對LLM訓練有一些基本概念並可以進行相關運算,也請大家持續關注AORUS TW的社群AORUS台灣社群網站:FB、IG、YT以獲得更多相關資訊。