Efficient-Tuning-LLMs 项目教程
项目介绍
Efficient-Tuning-LLMs 是一个用于高效微调大型语言模型(LLMs)的开源工具包。该项目支持在几乎所有GPU上进行预训练和微调,能够自动分发高性能操作符如FlashAttention和Triton内核以提高训练吞吐量,并兼容DeepSpeed,轻松利用多种ZeRO优化技术。此外,它支持多种LLMs(如Llama、Mixtral、ChatGLM、Qwen、Baichuan)和VLM(如LLaVA),并提供灵活的数据管道,适应各种格式的数据集。
项目快速启动
克隆代码
首先,克隆项目仓库并导航到项目文件夹:
git clone https://github.com/jianzhnie/Efficient-Tuning-LLMs.git
cd Efficient-Tuning-LLMs
安装依赖
安装必要的依赖项:
pip install -r requirements.txt
运行示例
运行一个简单的微调示例:
python scripts/finetune.py --model_name_or_path path_to_your_model --dataset_name your_dataset --output_dir output_directory
应用案例和最佳实践
案例一:在单个8GB GPU上微调7B模型
使用LLamaTuner,可以在单个8GB GPU上微调7B模型,示例如下:
python scripts/finetune.py --model_name_or_path 7B_model --dataset_name custom_dataset --output_dir output_directory --gpu_memory 8GB
案例二:多节点微调超过70B模型
对于超过70B的模型,可以使用多节点微调:
deepspeed scripts/multi_node_finetune.py --model_name_or_path 70B_model --dataset_name large_dataset --output_dir output_directory
典型生态项目
DeepSpeed
DeepSpeed 是一个深度学习优化库,提供了ZeRO优化技术,可以显著减少内存占用并加速训练过程。Efficient-Tuning-LLMs 与DeepSpeed兼容,可以轻松利用其优化技术。
FlashAttention
FlashAttention 是一种高性能注意力机制,可以加速训练过程中的注意力计算。Efficient-Tuning-LLMs 自动分发FlashAttention内核,提高训练吞吐量。
Triton
Triton 是一个用于编写高性能GPU内核的编程语言。Efficient-Tuning-LLMs 使用Triton内核来优化特定操作,进一步提升性能。
通过以上模块的介绍和示例,您可以快速上手并利用Efficient-Tuning-LLMs进行大型语言模型的高效微调。