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

使用LLaMA-Factory对大模型进行微调-详解

书接上回
启动llama Factory可视化页面

llamafactory-cli webui   
如果想后台运行  使用 nohup llamafactory-cli webui &

浏览器访问 http://127.0.0.1:7860/
在这里插入图片描述
配置项主要参数:
参考: https://docs.coreshub.cn/console/compute_platform/help/llama_factory/
模型路径 :

解释: 可以直接填写本地模型路径,也可以在选择模型名称之后默认
示例:  /opt/vllm/models/Qwen1.5-1.8B-Chat  

微调方法

full:   全参数微调,计算成本高(gpu需求大,时间长),所需数据集规模大(小数据集易过拟合)freeze: 冻结微调,冻结大部分参数,只训练模型最后几层(通常是输出层或少量顶层),无法修改模型深层的特征提取逻辑,适配能力有限。适合小数据集,简单任务;  lora:  冻结所有原始参数,在模型的关键层(如注意力层)中插入少量可训练的低秩矩阵(通过矩阵分解减少参数量),仅训练这些新增的低秩矩阵参数,能够间接调整模型的深层行为,适配能力强,适合中等数据集,追求效率与性能平衡的场景 

量化等级

QLoRA: 训练中量化  
GPTQ/AWQ: 推理时量化
8-bit 量化 : 内存减少约 50%,速度提升明显,精度损失较小。
4-bit 量化(INT4):  内存减少约 75%,速度较快,但精度损失较明显。

量化方法

BNB、HQQ、EETQ 是三种不同的模型量化技术,用于压缩大模型参数、降低显存占用并提升推理效率。
微调场景:优先使用 BNB (QLoRA),兼顾显存与精度。
快速部署:选 HQQ,尤其需 vLLM 加速时。
生产推理:需极致性能时,采用 EETQ 编译优化。

训练阶段: Supervised Fine-Tuning
数据路径 数据集选择
在这里插入图片描述
预览命令 下面有个输出目录, 这是训练好的权重存放位置
在这里插入图片描述

其他的用到再说吧!

点击预览命令,可以看到,和上篇中的指令类似
在这里插入图片描述
点击开始,他就运行了,等最后就出现训练完成;

测试:
加载模型 测试
在这里插入图片描述
测试ok
在这里插入图片描述

最后导出
在这里插入图片描述
我们可以只加载新模型测试
在这里插入图片描述
训练效果
看损失取线, 怎么看损失曲线, 一两句说不清楚
损失曲线: 分为 Underfit(欠拟合) ,Overfit(过拟合),Good fit (完美拟合)
在这里插入图片描述
LLaMAFactory 还提供了预测评估功能
(第一次使用有几个依赖 需要安装一下)
在这里插入图片描述
指标最大值为 100
可以看到,各个指标得分都比较低,说明本次微调效果比较差,重新调参训练吧

调整参数重新训练:

llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path /opt/vllm/models/Qwen1.5-1.8B-Chat \--preprocessing_num_workers 16 \--finetuning_type lora \--template qwen \--flash_attn auto \--dataset_dir data \--dataset identity \--cutoff_len 4096 \--learning_rate 0.0005 \--num_train_epochs 50.0 \--max_samples 1000000 \--per_device_train_batch_size 1 \--gradient_accumulation_steps 8 \--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/Qwen1.5-1.8B-Chat/lora/train_2025-07-23-16-53-14 \--fp16 True \--plot_loss True \--trust_remote_code True \--ddp_timeout 180000000 \--include_num_input_tokens_seen True \--optim adamw_torch \--lora_rank 8 \--lora_alpha 16 \--lora_dropout 0 \--lora_target all

这就好很多了
在这里插入图片描述

在这里插入图片描述

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

相关文章:

  • OSG+Qt —— 笔记2- Qt窗口绘制棋盘及模型周期运动(附源码)
  • linux:告别SSH断线烦恼,Screen命令核心使用指南
  • 第四章:大模型(LLM)】07.Prompt工程-(1)Prompt 原理与基本结构
  • 大数据分析-读取文本文件内容进行词云图展示
  • Zephyr 中的 bt_le_per_adv_set_data 函数的介绍和应用方法
  • [机器学习]09-基于四种近邻算法的鸢尾花数据集分类
  • 具身智能赋能轮椅机器人的认知革命与人机共生新范式
  • 【软考架构】第4章 信息安全的抗攻击技术
  • 从「行走」到「思考」:机器人进化之路与感知—决策链路的工程化实践
  • 微电网管控系统中python多线程缓存与SQLite多数据库文件连接池实践总结(含源码)
  • 安川YASKAWA焊接机器人保护气智能节气阀
  • 蓝牙 GFSK RX Core 架构解析
  • Linux下的软件编程——IPC机制
  • 重复(Repeat)和迭代(Iteration)区别、递归(Recursion)
  • 超级云平台:重构数字生态的“超级连接器“
  • 想找出版社出书?这样选就对了!
  • 哈工深无人机目标导航新基准!UAV-ON:开放世界空中智能体目标导向导航基准测试
  • 【论文阅读】-《GeoDA: a geometric framework for black-box adversarial attacks》
  • 基于Flink CDC实现联系人与标签数据实时同步至ES的实践
  • 后台管理系统-6-vue3之mockjs模拟和axios请求数据
  • python UV虚拟环境项目搭建
  • 和芯星通携手思博伦通信,测试验证系列导航定位芯片/模块符合GB/T 45086.1标准
  • 学习stm32 感应开关盖垃圾桶
  • 用 Python 实现一个“小型 ReAct 智能体”:思维链 + 工具调用 + 环境交互
  • 软件测试覆盖率:真相与实践
  • unity实现背包拖拽排序
  • 1个月征服Java:零基础直达企业级开发——Java面向对象补充知识
  • 汽车近光灯难达标?OAS 软件精准解困
  • 【牛客刷题】正六边形阴影面积计算
  • 深入理解列式存储与向量化引擎