简介:本文介绍了如何利用LLaMA Factory进行单机大模型微调,通过详细步骤和实例,让非专业读者也能轻松掌握大模型微调技巧,提升模型在实际应用中的表现。
随着大模型技术的快速发展,越来越多的企业和个人开始尝试利用这些模型进行各种任务。然而,大模型的微调对于非专业人员来说可能是一个挑战。LLaMA Factory作为一个开源的模型微调框架,以其易用性和高效性受到了广泛关注。本文将详细介绍如何使用LLaMA Factory进行单机大模型的微调。
首先,确保你的机器上安装了Python。推荐使用Python 3.10或更高版本。你可以通过Anaconda等Python管理工具来创建一个新的虚拟环境,以避免依赖冲突。
conda create -n llama_factory python=3.10 -yconda activate llama_factory
由于LLaMA Factory依赖于PyTorch和CUDA进行GPU加速,你需要安装这两个库。根据你的显卡型号选择合适的CUDA版本和PyTorch版本。
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
从GitHub上克隆LLaMA Factory的源代码,并安装必要的依赖。
git clone https://github.com/hiyouga/LLaMA-Factory.gitcd LLaMA-Factorypip install -r requirements.txt
选择一个适合你任务的预训练模型。例如,对于中文任务,你可以选择Llama3的8B版本中文模型。
mkdir -p /data/dataset/model/llama3# 假设你已经有下载好的模型文件,或者从Hugging Face等网站下载# 这里只是示例,实际路径和文件名请根据实际情况修改
你需要根据任务需求准备训练数据。训练数据通常以JSON格式存储,包含instruction、input和output三个字段。
例如,一个简单的股票数据集可能如下所示:
[{"instruction": "请给出以下区域板块包含的个股名称和代码,使用;隔开", "input": "贵州", "output": "贵州茅台600519;"}]
在LLaMA Factory中注册你的数据集,以便在微调过程中使用。
编辑dataset_info.json文件,添加你的数据集信息:
{"stock_zh": {"file_name": "stock.json","file_sha1": "你的文件sha1值"}}
创建一个新的shell脚本,用于执行微调过程。
touch single_lora_llama3.shchmod +x single_lora_llama3.shvim single_lora_llama3.sh
在脚本中,填写以下命令(注意替换为你的实际路径和参数):
```bash
export CUDA_VISIBLE_DEVICES=0
python src/train_bash.py \
—stage sft \
—do_train True \
—model_name_or_path /data/dataset/model/llama3/8b-chinese-chat \
—dataset stock_zh \
—template llama3 \
—lora_target q_proj,v_proj \
—output_dir output1 \
—overwrite_cache \
—per_device_train_batch_size 2 \
—gradient_accumulation_steps 64 \
—lr_scheduler_type cosine \
—logging_steps 5 \
—save_steps 100 \
—learning_rate 2e-4 \
—num_train_epochs 1.0 \
—finetuning_type lora \
—fp16