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

【项目实战】基于 LLaMA-Factory 通过 LoRA 微调 Qwen2

【项目实战】基于 LLaMAFactory 通过 LoRA 微调 Qwen2

  • 一、项目介绍
  • 二、环境准备
    • 1、环境准备
    • 2、安装LLaMa-Factory
    • 3、准备模型数据集
      • 3.1 模型准备
      • 3.2 数据集准备
  • 三、微调
    • 1、启动webui
    • 2、选择参数
    • 3、训练
  • 四、测试
  • 五、总结

一、项目介绍

在这里插入图片描述

        LLaMA-Factory是一个由北京航空航天大学的郑耀威开发的开源框架,作为一个功能强大且高效的大模型微调框架,通过其用户友好的界面和丰富的功能特性,为开发者提供了极大的便利。
项目官网:https://www.llamafactory.cn/
Github:https://github.com/hiyouga/LLaMA-Factory


二、环境准备

1、环境准备

  • Python 3.10.9
  • NVIDIA GeForce GTX 1650
  • CUDA和cuDNN

2、安装LLaMa-Factory

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

        进入项目目录,安装必要的Python依赖库。可以使用以下命令:

cd LLaMA-Factory
pip install -e ".[torch,metrics]"
#截止2024.11.16,github拉取的最新版本的requirements.txt
transformers>=4.41.2,<=4.46.1
datasets>=2.16.0,<=3.1.0
accelerate>=0.34.0,<=1.0.1
peft>=0.11.1,<=0.12.0
trl>=0.8.6,<=0.9.6
gradio>=4.0.0,<5.0.0
pandas>=2.0.0
scipy
einops
sentencepiece
tiktoken
protobuf
uvicorn
pydantic
fastapi
sse-starlette
matplotlib>=3.7.0
fire
packaging
pyyaml
numpy<2.0.0
av

3、准备模型数据集

3.1 模型准备

        这里我们使用 Qwen2-0.5B 模型进行微调,首先下载模型,这里如果无法从Hugging Face上拉取的话,可以从国内模型库魔塔社区拉去,没有速度限制。

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('qwen/Qwen2-0.5B',cache_dir="model/Qwen")

3.2 数据集准备

        LLaMA-Factory 内置了一些数据集,本次就使用内置的 identity 数据集,用于修改模型的自我意识,数据集格式:

#文件地址 LLaMA-Factory-main\data\identity.json
{
    "instruction": "Who are you?",
    "input": "",
    "output": "I am {{name}} an AI assistant developed by {{author}}. How can I assist you today?"
  },
  {
    "instruction": "What is your name?",
    "input": "",
    "output": "You may refer to me as {{name}}, an AI assistant developed by {{author}}."
  },
  {
    "instruction": "Do you have a name?",
    "input": "",
    "output": "As an AI assistant developed by {{author}}, I got the name {{name}}."
  },

        对于这个数据集进行大量训练后,会修改模型的自我意识,比如修改前:我的名字是通义千问;修改后:我的名字是{{name}}。


三、微调

1、启动webui

        启动webui:llamafactory-cli webui,出现如下提示和页面表示启动成功:

(torch3) D:\AIProject\LLaMA-Factory-main>llamafactory-cli webui
Running on local URL:  http://0.0.0.0:7860

To create a public link, set `share=True` in `launch()`.

在这里插入图片描述


2、选择参数

        主要选择:模型、训练数据集、训练参数(此处不多介绍,按照下图选择)

在这里插入图片描述


3、训练

        点击训练,等待即可,训练结束后会出现训练完毕字样,并且会显示出Loss曲线。
在这里插入图片描述

模型训练过程

在这里插入图片描述


四、测试

        在模型训练完成后,可以通过Evaluate & Predict(通过评估数据集评估性能)、Chat(直接与模型对话)。此处选择后者,更直观的展示模型训练效果。
        模型依旧选择基座模型,检查点选择训练完模型保存的地址,点击加载模型,即可开始与模型对话。

在这里插入图片描述


五、总结

        本文章记录了LLaMA-Factory在本地的部署以及使用,从最后的测试效果发现训练的效果其实并不理想,不过初有成效,初步判断和数据集规模训练轮数以及参数配置等有关,后期将针对这些方面进行相应的调整,争取达到目标效果。


http://www.kler.cn/a/403742.html

相关文章:

  • 实战 | C#中使用YoloV8和OpenCvSharp实现目标检测 (步骤 + 源码)
  • 【软考】系统架构设计师-信息系统基础
  • 原生微信小程序在顶部胶囊左侧水平设置自定义导航兼容各种手机模型
  • debian 如何进入root
  • DDei在线设计器V1.2.43版发布
  • TensorFlow 2.0 windows11 GPU 训练环境配置
  • 2024信创数据库TOP30之蚂蚁集团OceanBase
  • 最新智能AI问答运营系统(SparkAi)一站式AIGC系统,GPT-4.0/GPT-4o多模态模型+联网搜索提问+AI绘画+管理后台,用户会员套餐
  • Excel中批量替换字符大PK:Excel VS. Python
  • c ++零基础可视化——vector
  • WebSocket详解、WebSocket入门案例
  • React渲染流程与更新diff算法
  • AMD(Xilinx) FPGA配置Flash大小选择
  • Linux:权限相关知识详解
  • 基于yolov8、yolov5的茶叶等级检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • hhdb数据库介绍(9-26)
  • 当mysql的slave无法同步master数据时,如何基本不断业务重置主从同步关系
  • MySQL社区版的启动与连接
  • 数据集-目标检测系列- 花卉 鸡蛋花 检测数据集 frangipani >> DataBall
  • TensorFlow 2.0 windows11 GPU 训练环境配置
  • Unity3D空中突袭(1)场景导入
  • 全面认识AI Agent,一文读懂AI智能体的架构指南
  • Qlik Sense QVD 文件
  • i春秋-Look(sql字符集、超短sql注入、写入shell)
  • [毕业设计]最全计算机专业毕业设计选题推荐汇总(源码+论文)
  • 稳联技术通讯Modbus转 EtherNet IP 网关 在机场行李运输系统中的应用