当前位置: 首页 > news >正文

大模型之用LLaMA-Factory微调Deepseek-r1-8b模型实践

      前期尝试用Unsloth微调大模型(大模型之用Unsloth微调医疗大模型实践),但整体步骤比较多,对初学者不太友好,下面介绍一款戏相对比较简单的大模型微调框架——LLaMA-Factory。

一、微调环境准备

1、安装Anaconda

介绍Anaconda安装的文章比较多,这里就不详细介绍了。可以参见:Anaconda安装。

(1)创建名称为“llama_factory”的虚拟环境。

conda create -n llama_factory python=3.11

(2)查看已创建的虚拟环境列表。

conda env list

(3)激活虚拟环境llama_factory,

conda activate llama_factory

2、安装LLaMA-Factory

(1)从GitHub下载LLaMA-Factory,

git clone https://github.com/hiyouga/LLaMA-Factory.git

(2)在LLaMA-Factory目录下安装所需的Python包

cd C:\Users\Win10\llama-factorypip install -e .[metrics]

注意:该命令必须在LLaMA-Factory安装目录中执行。

……

(3)检验LLaMA-Factory是否安装成功

llamafactory-cli webui

如出现以下提示和LLaMA-Factory页面表示已成功安装。

3、安装torch

(1)查看CUDA版本(需提前安装CUDA),

nvidia-smi

CUDA安装可参考(CUDA安装教程)。

(2)接下来选择合适的CUDA版本安装torch。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

具体可参考(Python/torch/深度学习——环境安装)。

(3)检验torch是否安装成功

import torch 
torch.cuda.current_device() 
torch.cuda.get_device_name(0) 
torch.__version__

以下显示表示torch已经成功安装。

二、基座模型准备

1、下载基座模型

创建一个文件夹存放基座模型,这里以下载魔搭社区的DeepSeek-R1-Distill-Llama-8B模型为例。

cd D:\AI\LLaMA-Factory\model_base
git clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Llama-8B

2、测试模型推理

llamafactory-cli webchat --model_name_or_path D:/AI/LLaMA-Factory/model_base/DeepSeek-R1-Distill-Llama-8B --template deepseekr1

注意:不同的模型需要使用不同的模版,具体见(LLaMaFactory - 支持的模型和模板 && 常用命令)当然,也可以通过“llamafactory-cli webui”命令在LLaMA-Factory页面进行测试。

这里我们先对微调前的模型进行提问,并保留其结果,方便与微调后的模型推理进行对比。

三、训练数据准备

1、下载训练数据

下载训练数据集并复制到llama-factory\data文件夹下,我这里使用的是huggingface上的“FreedomIntelligence/medical-o1-reasoning-SFT”数据集(方便与前期用Unsloth微调进行对比,使用了相同的模型和数据集)。

数据集格式如下:

2、修改数据集配置文件

打开llama-factory\data\dataset_info.json文件,在文件最后添加以下代码:

 "traindata_local": {"file_name": "medical/medical_o1_sft_Chinese.json","columns": {"prompt": "Question","response": "Response"},"tags": {"reasoning": "Complex_CoT"}}

四、微调模型

1、方式一(Web页面)

执行以下代码进入LLaMA-Factory页面。

llamafactory-cli webui

分别填写基础模型、训练数据等参数,填写完成后可以选择“预览命令”查看微调命令,同时可“保存训练参数”,以备下次直接导入使用。具体参数设置可参见(LlamaFactory可视化微调大模型 - 参数详解)。

配置完成就可以开始执行,如遇错误可根据提示信息修改完善配置参数的设置,直到训练完成。微调训练过程中可以观察训练进度条和损失曲线。

2、方式二(命令行)

可在命令行模式下直接执行以下命令进行微调。

llamafactory-cli train `--stage sft `--do_train True `--model_name_or_path D:\AI\LLaMA-Factory\model_base\DeepSeek-R1-Distill-Llama-8B `--preprocessing_num_workers 16 `--finetuning_type lora `--template deepseekr1 `--flash_attn auto `--dataset_dir C:\Users\Win10\LLaMA-Factory\data `--dataset traindata_local `--cutoff_len 1024 `--learning_rate 5e-05 `--num_train_epochs 3.0 `--max_samples 50 `--per_device_train_batch_size 1 `--gradient_accumulation_steps 4 `--lr_scheduler_type cosine `--max_grad_norm 1.0 `--logging_steps 5 `--save_steps 100 `--warmup_steps 0 `--packing False `--enable_thinking True `--report_to none `--output_dir saves\DeepSeek-R1-8B-Distill\lora\train_2025-10-05-19-46-10 `--bf16 True `--plot_loss True `--trust_remote_code True `--ddp_timeout 180000000 `--include_num_input_tokens_seen True `--optim adamw_torch `--quantization_bit 8 `--quantization_method bnb `--double_quantization True `--lora_rank 8 `--lora_alpha 16 `--lora_dropout 0 `--lora_target all 

模型微调完成后会在对应位置自动创建的saves文件夹。

五、测试微调后模型

下面合并基础模型和LoRA微调进行推理。

1、方式一(Web页面)

微调结束后,可直接在Web下选择“Chat”页面,然后设置“模型路径”(基座模型)和“检查点路径”,“检查点路径”为刚训练好的模型,再点击加载模型即可开始合并推理。

2、方式二(命令行)

执行以下命令:

llamafactory-cli webchat `
--–model_name_or_path D:\AI\LLaMA-Factory\model_base\DeepSeek-R1-Distill-Llama-8B `
--adapter_name_or_path saves\DeepSeek-R1-8B-Distill\lora\train_2025-10-03-21-59-27 `
--template deepseekr1 `
--finetuning_type lora

输入与微调前测试的相同问题进行微调后推理,可以观察前后回答不同,当然具体效果与数据集质量和微调参数设置密切相关。

六、微调模型合并

在Web下选择“Export”页面,然后设置“模型路径”(基座模型)、“检查点路径”(微调模型)、“导出目录”,即可开始合并基座模型和微调模型,合并完成后即可在“Chat”页面直接使用。

七、评估与优化

在Web下选择“Export”页面,然后设置“模型路径”(基座模型)、“检查点路径”(微调模型)、“数据路径”(验证数据集),即可开始进行模型评估。

评估完成后会在界面上显示验证集的分数,其中ROUGE分数衡量了模型输出答案(predict)和验证集中标准答案(label)的相似度,ROUGE分数越高代表模型学习得更好。

http://www.dtcms.com/a/449945.html

相关文章:

  • 【C语言】寻找数组中唯一不重复的元素
  • 大数据成矿预测系列(三) | 从统计模型到机器学习:为何机器学习是成矿预测的新前沿?
  • UNIX下C语言编程与实践34-UNIX 守护进程:概念、特点与应用场景
  • 专项行业项目资源与源码
  • 《基于电阻抗断层成像的实时软触觉传感器中的深度神经网络方法》IROS2019论文解读
  • 网页设计第5次作业
  • 吃透大数据算法-霍夫曼编码(Huffman Coding)
  • 唐山自助建站软件app网站开发合同
  • 河北三河建设局网站哪个软件可以做明星视频网站
  • GESP2025年9月认证C++二级( 第三部分编程题(2)菱形)
  • 【大模型实战篇】AgentScope引入Sequential thinking mcp server实现顺序思考的React Agent
  • HashLfuCache
  • XSLFO 流:深入解析与实际应用
  • vscode 一键导出导入所有插件
  • 网站登录验证码显示不出来软件网站排名
  • 找人做一个网站要多少钱包头移动的网站建设
  • 网站设计师培训学校建网站建设网站
  • Linux 目录结构,远程登录 CentOS 服务器 和 远程文件传输 详解(Xshell, PuTTY, Xftp)
  • 外贸网站样式修改wordpress登陆后台
  • FFN、CNN和RNN对比
  • springboot3 怎么用@DS 实现多数据源
  • 平湖市住房建设局网站安全证四川省建设厅官方网站
  • 利用CodeBuddy CLI 辅助Unity游戏开发,提高开发效率
  • MATLAB计算标准径流指数(Standard Runoff Index,SRI)
  • pion/webrtc v4.1.5 更新详情与改动说明
  • 招聘代做网站a做爰网站
  • Http 上传压缩包需要加0\r\n\r\n
  • 鼠标网站模板欧洲cn2 vps
  • 题解:P14174 【MX-X23-T4】卡常数
  • 吉林市建设厅网站公司app开发收费价目表