莱莱 发表于 2025-3-7 08:51:08

用llama-factory微调DeepSeek-R1

1.择要

用llama-factory的0.9.1版本微调DeepSeek-R1-Distill-Qwen-1.5B,微调数据是对文档段举行问答对提取的4000条样本。利用微调后的模子举行推理。合并微调后的模子。
微调GPU配置H20-96G。
2. 准备工作

2.1 服务器配置

H20-96G
python3.10.8
touch 2.1.2+cu121
torchvision  0.16.2+cu121
CUDA Version: 12.4
2.2 微调框架lama-factory-0.9.1

2.2.1 网址

https://github.com/hiyouga/LLaMA-Factory/tree/v0.9.1
2.2.2 安装

cd  LLaMA-Factory-0.9.1
pip install -e '.'
2.3 微调模子DeepSeek-R1-Distill-Qwen-1.5B

2.3.1 网址

https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B/tree/main
https://i-blog.csdnimg.cn/direct/e73bc9c4dfde47d6977e2dfc215c64f7.jpeg
2.4 微调数据

从文档数据中提取问答对,一共4000个文档数据段,每个文档数据段最长不超过1k,每个文档数据段对应着6个左右的问答对。
2.6 微调数据文件question_answer.json中的数据格式

{
"input_sys": "",
"instruction":"",
"input": "",
"output": "",
}
把微调数据文件question_answer.json放到LLaMA-Factory/data/目录下面。
2.7 修改LLaMA-Factory/data/dataset_info.json

在data/dataset_info.json中增长:
"question_answer": {
"file_name": "question_answer.json",
"columns": {
"system": "input_sys",
"prompt": "instruction",
"query": "input",
"response": "output"
}
}
2.8 修改微调配置文件

在/examples/train_lora/目录下面增长deepseek_r1_1.5_lora_sft.yaml文件
cp llama3_lora_sft.yaml  deepseek_r1_1.5_lora_sft.yaml
2.8.1 在deepseek_r1_1.5_lora_sft.yaml文件中修改下面几项:

### model

model_name_or_path: /root/LLM/DeepSeek-R1-Distill-Qwen-1.5B ### dataset

dataset: question_answer

cutoff_len: 32000 max_samples: 4000

### output

output_dir: /root/LLM/saves-sft/deepseek-1.5b/lora/sft 3. 开始微调

cd  LLaMA-Factory-0.9.1
CUDA_VISIBLE_DEVICES=0 llamafactory-cli train examples/ train_lora/deepseek_r1_1.5_lora_sft.yaml
3.1 运行成功

https://i-blog.csdnimg.cn/direct/9c38438366324aaea920e4dfbde2a582.jpeg
3.2 显存占用18G

https://i-blog.csdnimg.cn/direct/89bf9e47027444fdaacb2df9ffec3f5e.jpeg

3.3 微调时loss和学习率的变化情况

https://i-blog.csdnimg.cn/direct/f1bdbfc50b44462991c715240272f9b4.jpeg
3.4 最后跑完用时36分钟

https://i-blog.csdnimg.cn/direct/ea95cc328dab43dfaf774edf8a6606af.jpeg
4. 推理

4.1 修改推理配置文件

4.1.1 在目录examples/inference下面新增文件deepseek-r1.yaml:

cp llama3_lora_sft.yaml  deepseek-r1.yaml
4.1.2 修改文件deepseek-r1.yaml

model_name_or_path: /root/LLM/DeepSeek-R1-Distill-Qwen-1.5B
adapter_name_or_path: /root/LLM/saves-sft/deepseek-1.5b/lora/sft
4.2 实行推理

CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat examples/inference/deepseek-r1.yaml
运行成功。
https://i-blog.csdnimg.cn/direct/70d247132b274e7db07fb954b4d59e79.jpeg
推理占用显存4个G
https://i-blog.csdnimg.cn/direct/03d043fb60f445b692ab5e3c21ca861c.jpeg
5. 模子文件合并

5.1 修改配置文件

5.1.1 在目录examples/merge_lora下面新增文件deepseek_lora_sft.yaml

cp llama3_lora_sft.yaml  deepseek_lora_sft.yaml
5.1.2 修改文件deepseek-r1.yaml

### model
model_name_or_path: /root/LLM/DeepSeek-R1-Distill-Qwen-1.5B
adapter_name_or_path: /root/LLM/saves-sft/deepseek-1.5b/lora/sft
### export
export_dir: /root/LLM/models/deepseek_lora_sft
5.2 实行合并

llamafactory-cli export examples/merge_lora/deepseek_lora_sft.yaml
合并后的模子文件
https://i-blog.csdnimg.cn/direct/f788576f001d46838d4e8cf4494e6a7f.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 用llama-factory微调DeepSeek-R1