[May 29] Init doc
可用的 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