[五月 29] 初始化文檔
可用的 LLMs 微調框架#
- LLaMA-Factory
- xtuner
- unsloth
簡單介紹一下#
- Llama_Factory 提供了最多的微調方法,有很多來自最新的學術論文,包括 LongLora 等等;最新的框架,包括 Unsloth。
- Xtuner 則提供了較為豐富的文檔,和很多優化技巧,但是微調技術比較單一,只有基礎的 Lora 以及 QLora。
- Unsloth 則提供不錯的文檔,但是同樣只提供少量的微調方案。
- 如果你的需求很簡單,例如用 24G 顯存在一個普遍的模型如 Llama3 上微調一個長度很短的對話指令數據集(例如 alpaca),使用上面的任何一個庫都可以。
一般步驟#
製作數據集#
數據集根據格式,基本上可以分為 alpaca 以及 sharegpt 兩種類型。
而根據微調類型,可以分為 Supervised Fine-Tuning Dataset 和 Pretraining Dataset,前者用於指令微調對話用途,後者用於增量預訓練。
關於製作數據集的方式,完全可以參考 LLaMA-Factory/data/README.md at main・hiyouga/LLaMA-Factory。
選擇微調技術#
最基本的微調方法是 Lora,如果想使用更少的顯存可以用 QLora,Q 意味著 Quantized。
如果有很長的序列要求但是只有顯存捉急,可以考慮 Unsloth + Flash Attention 2。
Llama_factory 提供了非常多的微調技術,可供挑選。
遵循框架的文檔#
微調的一些常用技術#
- RoPE Scaling
- 它支持了任意長度的微調,例如 Llama3 只在 8K 長度預訓練,但是使用它可以任意長度微調。
- FlashAttention
- 減少訓練時間以及顯存佔用。
遇到問題的解決方案:
- repo 裡的 issue