第一步:下载代码
-
git
clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
-
cd LLaMA-Factory
-
pip install -e .[torch,metrics]
最好使用conda安装最新环境,以免和其他的环境造成冲突
conda create -n llama_factory python=3.10 conda activate llama_factory
第二部:训练数据
1.可以使用cli命令直接启动:以下是分别对 Llama3-8B-Instruct 模型进行 LoRA 微调、推理和合并。
-
CUDA_VISIBLE_DEVICES=0 llamafactory-cli train examples/lora_single_gpu/llama3_lora_sft.yaml
-
CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat examples/inference/llama3_lora_sft.yaml
-
CUDA_VISIBLE_DEVICES=0 llamafactory-cli
export examples/merge_lora/llama3_lora_sft.yaml
2.使用webui。
启用webui共有两种方式,一种是直接启动,一种是通过docker启动。两种方式看你自己的使用习惯都没有问题
第一种直接启动命令:
CUDA_VISIBLE_DEVICES=0 GRADIO_SHARE=1 llamafactory-cli webui
第二种使用docker启动:
docker build -f ./Dockerfile -t llama-factory:latest . docker run --gpus=all \ -v ./hf_cache:/root/.cache/huggingface/ \ -v ./data:/app/data \ -v ./output:/app/output \ -e CUDA_VISIBLE_DEVICES=0 \ -p 7860:7860 \ --shm-size 16G \ --name llama_factory \ -d llama-factory:latest
webui图如下:
我尝试了训练Qwen1.5,以下是正在训练的界面:
后台的日志如下:
使用的GPU 第一块卡,刚开始的时候 批处理设置的太大,容易造成显卡内存溢出,根据自己的实际情况设置。
第三步:聊天
等待模型训练完成之后就可以使用,不过也可以直接运行开源的模型
以下示例运行一个开源模型:
使用开源的Qwen/Qwen1.5-7B-Chat-GPTQ-Int8。我问了一句”介绍一下人类简史“。以下是回答
如果使用刚刚微调的参数,需要选择检查点路径加载刚刚微调的数据
接下来又问了一句”鲁迅可以打周树人吗“,回答是没有问题,就是速度慢了点,右边还有很多的参数可以调整。
第四步:合并导出数据
第五步: 性能优化
开启DeepSpeed stage对比:
其他参数保持一直的情况下:
①使用none模式:两个T4显卡,每step需要11.75s,占用显存9632MiB
② 使用stage =2,每step 7.6s。速度确实快。但是占用显存较多,显存是缓慢上升的过程,到二十多步的时候就开始爆了。
③使用stage=3的时候,每step 40s,刚开始使用显存很少,第一步也直接爆了。