Llama 微調函式庫

使用 Llama 3 進行微調

Francesca Donadoni

Curriculum Manager, DataCamp

何時使用微調

  • 預先訓練的模型
  • 使用專門資料

一位 AI 工程師在查看模型參數的示意圖。

  • 提升準確度
  • 降低偏誤
  • 強化知識庫
使用 Llama 3 進行微調

如何使用微調

  • 資料品質
  • 模型容量
  • 任務定義

 

  • 微調流程

訓練迴圈。訓練會產出微調後模型。使用微調後模型與評估資料集進行評估。

使用 Llama 3 進行微調

如何使用微調

  • 資料品質
  • 模型容量
  • 任務定義

 

  • 微調流程

訓練迴圈。使用訓練資料集開始訓練,產出微調後模型。使用微調後模型與評估資料集進行評估。

使用 Llama 3 進行微調

如何使用微調

  • 資料品質
  • 模型容量
  • 任務定義

 

  • 微調流程

訓練迴圈。使用訓練資料集、模型與 tokenizer 開始訓練,產出微調後模型。使用微調後模型與評估資料集進行評估。

使用 Llama 3 進行微調

如何使用微調

  • 資料品質
  • 模型容量
  • 任務定義

 

  • 微調流程

訓練迴圈。使用訓練資料集、參數、模型與 tokenizer 開始訓練,產出微調後模型。使用微調後模型與評估資料集進行評估。

使用 Llama 3 進行微調

如何使用微調

  • 資料品質
  • 模型容量
  • 任務定義

 

  • 微調流程
  • 新模型
  • 評估

訓練迴圈。使用訓練資料集、參數、模型、tokenizer 與微調類別開始訓練,產出微調後模型。使用微調後模型與評估資料集進行評估。

使用 Llama 3 進行微調

Llama 微調函式庫

 

  • 📚 多種微調函式庫

 

  • 🦙 用於 Llama 微調的 TorchTune

 

  • 🚀 用 TorchTune 啟動微調任務
使用 Llama 3 進行微調

Llama 微調的選項

  • TorchTune
    • 以可設定的範本為基礎
    • 適合:快速擴充

象徵快速試驗的時鐘圖示。

  • Hugging Face 的 SFTTrainer
    • 可使用其他 LLM
    • 適合:同時微調多個模型

代表多個模型的圖示。

  • Unsloth
    • 記憶體使用效率高
    • 適合:硬體資源有限

代表 CPU 硬體的圖示。

  • Axolotl
    • 模組化方法
    • 適合:不需大量重新設定

齒輪與手部的組合圖示,代表設定。

使用 Llama 3 進行微調

TorchTune 與微調配方

 

 

  • TorchTune 配方:

    • 模組化範本
    • 可設定以因應不同專案
    • 保持程式碼有條理
    • 確保可重現性

以煮湯示意「配方」概念的插圖。

使用 Llama 3 進行微調

TorchTune 列表

 

  • 由終端機執行
  • 具備 Python 的環境
  • 安裝 TorchTune
    pip3 install torchtune
    
  • 列出可用配方

    tune ls
    
  • !若使用 IPython

    !tune ls
    
使用 Llama 3 進行微調

TorchTune 列表

!tune ls
  • 輸出:
RECIPE                                   CONFIG                                  
full_finetune_single_device              llama3/8B_full_single_device            
                                         llama3_1/8B_full_single_device          
                                         llama3_2/1B_full_single_device          
                                         llama3_2/3B_full_single_device       
full_finetune_distributed                llama3/8B_full                          
                                         llama3_1/8B_full                        
                                         llama3_2/1B_full                          
                                         ...
使用 Llama 3 進行微調

TorchTune 執行

 

  • 使用配方 + --config + 設定
  • 執行微調

    tune run full_finetune_single_device --config \
    llama3_1/8B_lora_single_device
    
  • 參數 device=cpudevice=cuda

  • epochs=<int><int> 為 0 或正整數)
使用 Llama 3 進行微調

一起來練習吧!

使用 Llama 3 進行微調

Preparing Video For Download...