Site Search
This website uses cookies to provide you a more personalized and responsive service.
By using this website you agree to our use of cookies. If you require more information or prefer not to accept cookies please visit our
Privacy Policy >
Tutorial

自己的AI自己”練” :AI TOP設定與介面說明 LLM訓練立即上手

自己的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台灣社群網站:FBIGYT以獲得更多相關資訊。

討論

Top