简介
LLaMA-Factory是一个强大的工具,用于微调大型语言模型。本文将介绍如何使用LLaMA-Factory进行模型微调的简单操作流程,并提供代码记录。
操作流程
-
环境搭建
- 首先,需要克隆LLaMA-Factory仓库并安装必要的库:
bash
!git clone https://github.com/hiyouga/LLaMA-Factory.git %cd LLaMA-Factory %ls
- 安装unsloth,xformers和bitsandbytes库:
bash
!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git" !pip install --no-deps xformers==0.0.25 !pip install .[bitsandbytes] !pip install 'urllib3<2'
- 首先,需要克隆LLaMA-Factory仓库并安装必要的库:
-
数据集准备
- 将自定义数据集复制到
data
目录下,并修改data/dataset_info.json
以注册数据集:json
{ "adgen_local": { "file_name": "your_dataset.json" } }
- 将自定义数据集复制到
-
模型微调
- 使用LLaMA-Factory的命令行工具进行微调,以下是一个基于LoRA的微调示例命令:
bash
参数解释和更多命令可以通过CUDA_VISIBLE_DEVICES=0 llamafactory-cli train \ --stage sft \ --do_train \ --model_name_or_path /path/to/your/model \ --dataset adgen_local \ --dataset_dir ./data \ --template llama3 \ --finetuning_type lora \ --lora_target q_proj,v_proj \ --output_dir ./saves/LLaMA3-8B/lora/sft \ --overwrite_cache \ --overwrite_output_dir \ --cutoff_len 1024 \ --preprocessing_num_workers 16 \ --per_device_train_batch_size 2 \ --gradient_accumulation_steps 8 \ --lr_scheduler_type cosine \ --logging_steps 50 \ --warmup_steps 20 \ --save_steps 100 \ --eval_steps 50 \ --evaluation_strategy steps \ --load_best_model_at_end \ --learning_rate 5e-5 \ --num_train_epochs 5.0 \ --max_samples 1000 \ --val_size 0.1 \ --plot_loss \ --fp16
llamafactory-cli train -h
获取。
- 使用LLaMA-Factory的命令行工具进行微调,以下是一个基于LoRA的微调示例命令:
-
模型导出
- 微调完成后,使用以下命令合并LoRA权重到原始模型,并导出新模型:
bash
modelPath=/path/to/your/model adapterModelPath=./saves/lora/sft/ llamafactory-cli export \ --model_name_or_path $modelPath \ --adapter_name_or_path $adapterModelPath \ --template qwen \ --finetuning_type lora \ --export_dir ./saves/lora/export/ \ --export_size 2 \ --export_device cpu \ --export_legacy_format False
- 微调完成后,使用以下命令合并LoRA权重到原始模型,并导出新模型:
-
预测评估
- 使用微调后的模型进行预测,并评估模型性能:
bash
modelPath=/path/to/your/model llamafactory-cli train \ --stage sft \ --do_predict \ --finetuning_type lora \ --model_name_or_path $modelPath \ --adapter_name_or_path ./saves/lora/sft \ --template qwen \ --dataset identity \ --cutoff_len 4096 \ --max_samples 20 \ --overwrite_cache \ --overwrite_output_dir \ --per_device_eval_batch_size 1 \ --preprocessing_num_workers 16 \ --predict_with_generate
- 使用微调后的模型进行预测,并评估模型性能: