【大模型微调】魔搭社区GPU进行LLaMA-Factory微调大模型自我认知

news2025/7/20 18:59:54

文章概要:
本文是一篇详细的技术教程,介绍如何使用魔搭社区(ModelScope)的GPU资源来进行LLaMA-Factory的模型微调。文章分为11个主要步骤,从环境准备到最终的模型测试,系统地介绍了整个微调流程。主要内容包括:

  1. 环境准备和硬件资源配置
  2. LLaMA-Factory的安装和部署
  3. 可视化界面的配置和启动
  4. 基座模型的下载和测试
  5. 自我认知数据集的修改
  6. 微调参数的设置和训练过程
  7. 模型评估和优化
  8. 最终模型的导出和测试

文章目的

  1. 帮助开发者快速上手LLaMA-Factory工具,学习如何利用魔搭社区的免费GPU资源进行大模型微调
  2. 详细讲解模型微调的完整流程,包括环境配置、模型训练、参数调优等关键步骤
  3. 提供实用的技术细节和注意事项,如显存管理、训练参数调整等,帮助读者避免常见问题
  4. 指导读者如何进行模型的自我认知微调,实现个性化的AI助手定制

1. 准备硬件资源、搭建环境

  1. 访问魔搭社区官网:https://modelscope.cn,完成注册和登录
  2. 进入我的Notebook页面,依次选择:魔搭平台免费实例 -> 阿里云弹性加速计算EAIS -> 方式二 GPU环境
  3. 选择GPU实例类型和配置,确认配置并启动实例
  4. 点击「打开notebook」进入JupyterLab环境

在这里插入图片描述

2. LLaMA-Factory 安装部署

LLaMA-Factory 的 Github地址:https://github.com/hiyouga/LLaMA-Factory

  • 克隆仓库
    git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
    
  • 切换到项目目录
    cd LLaMA-Factory
    
  • 创建 Conda 虚拟环境(一定要 3.10 的 python 版本,不然和 LLaMA-Factory 不兼容)
    conda create -n llama-factory python=3.10
    
  • 激活虚拟环境
    conda activate llama-factory
    
  • 在虚拟环境中安装 LLaMA Factory 相关依赖
    pip install -e ".[torch,metrics]"
    
    注意:如报错 bash: pip: command not found ,先执行 conda install pip 即可
  • 检验是否安装成功
    llamafactory-cli version
    

3. 配置本地远程访问LLama-Factory 的可视化微调界面

  1. 修改LLaMA-Factory/src/llamafactory/webui/interface.py文件中share=gradio_shareshare=True
  2. 下载文件 https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_linux_amd64
  3. 重命名文件为 frpc_linux_amd64_v0.3
  4. 移动文件至 /root/.cache/huggingface/gradio/frpc
  5. 进入文件夹,输入以下命令给予权限:chmod +x frpc_linux_amd64_v0.3

4. 启动 LLama-Factory 的可视化微调界面 (由 Gradio 驱动)

llamafactory-cli webui --share
  • 点击显示的公网地址即可进入可视化界面
    在这里插入图片描述

5. 从 modelscope 上下载基座模型

  • 创建文件夹统一存放所有基座模型
    cd LLaMA-Factory
    mkdir models
    cd models
    
  • 执行下载命令
    git lfs install
    git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git
    
  • 如果要下载其他模型,可以替换git地址即可

注意:由于网络环境等原因,文件下载后往往会存在文件不完整的很多情况,下载后需要先做一下校验,校验分为两部分,第一先检查一下文件大小和文件数量是否正确,和原始的huggingface显示的做一下肉眼对比,进入文件夹通过du -sh *查看文件和文件大小情况
在这里插入图片描述

6. 可视化页面上加载模型测试,检验是否加载成功

  • 选择模型 Qwen2.5-1.5B-Instruct
  • 输入下载的模型路径 models/Qwen2.5-1.5B-Instruct
  • 选择chat模式,点击加载模型,加载完后就可以进行聊天测试了

7. 修改自我认知数据集

  • 使用编辑器打开文件 LLaMA-Factory/data/identity.json
  • 批量替换 {{name}} 为需要的助手名称,比如小梦助手
  • 批量替换{{author}} 为开发者名称,比如LChuck茶客
  • 保存文件
    在这里插入图片描述

8. 在页面上进行微调的相关设置,开始微调(整个微调过程大概1-2小时)

  • 选择微调算法 LoRA
  • 添加数据集 identity
  • 修改其他训练相关参数,如学习率、训练轮数、截断长度、验证集比例等
    • 学习率(Learning Rate):决定了模型每次更新时权重改变的幅度。过大可能会错过最优解;过小会学得很慢或陷入局部最优解
    • 训练轮数(Epochs):太少模型会欠拟合(没学好),太大会过拟合(学过头了)
    • 最大梯度范数(Max Gradient Norm):当梯度的值超过这个范围时会被截断,防止梯度爆炸现象
    • 最大样本数(Max Samples):每轮训练中最多使用的样本数
    • 计算类型(Computation Type):在训练时使用的数据类型,常见的有 float32 和 float16。在性能和精度之间找平衡
    • 截断长度(Truncation Length):处理长文本时如果太长超过这个阈值的部分会被截断掉,避免内存溢出
    • 批处理大小(Batch Size):由于内存限制,每轮训练我们要将训练集数据分批次送进去,这个批次大小就是 Batch Size
    • 梯度累积(Gradient Accumulation):默认情况下模型会在每个 batch 处理完后进行一次更新一个参数,但你可以通过设置这个梯度累计,让他直到处理完多个小批次的数据后才进行一次更新
    • 验证集比例(Validation Set Proportion):数据集分为训练集和验证集两个部分,训练集用来学习训练,验证集用来验证学习效果如何
    • 学习率调节器(Learning Rate Scheduler):在训练的过程中帮你自动调整优化学习率
  • 页面上点击启动训练,或复制命令到终端启动训练
    • 实践中推荐用 nohup 命令将训练任务放到后台执行,这样即使关闭终端任务也会继续运行。同时将日志重定向到文件中保存下来
  • 在训练过程中注意观察损失曲线,尽可能将损失降到最低
    • 如损失降低太慢,尝试增大学习率
    • 如训练结束损失还呈下降趋势,增大训练轮数确保拟合
      在这里插入图片描述
Tips:使用nvidia-smikill命令

当训练模型时,如果中断了训练进程,可能会导致显存被占满。此时可以使用以下命令查看和释放显存:

  • 使用nvidia-smi查看GPU使用情况
    在这里插入图片描述
  • 使用ps aux | grep python查看进程号
    在这里插入图片描述
  • 使用kill -9 <进程号>结束进程,释放显存

9. 微调结束,评估微调效果

  • 观察损失曲线的变化;观察最终损失
    在这里插入图片描述

  • 在交互页面上通过预测/对话等方式测试微调好的效果

  • 检查点:保存的是模型在训练过程中的一个中间状态,包含了模型权重、训练过程中使用的配置(如学习率、批次大小)等信息,对LoRA来说,检查点包含了训练得到的 B 和 A 这两个低秩矩阵的权重

  • 若微调效果不理想,你可以:

    • 使用更强的预训练模型
    • 增加数据量
    • 优化数据质量(数据清洗、数据增强等,可学习相关论文如何实现)
    • 调整训练参数,如学习率、训练轮数、优化器、批次大小等等

10. 导出合并后的模型

  • 为什么要合并:因为 LoRA 只是通过低秩矩阵调整原始模型的部分权重,而不直接修改原模型的权重。合并步骤将 LoRA 权重与原始模型权重融合生成一个完整的模型
  • 先创建目录,用于存放导出后的模型
mkdir -p export
  • 在页面上配置导出路径,如expert/Qwen2.5-1.5B-Instruct-LoRA-v1,导出即可。

11. 测试微调完的模型

选择模型 Qwen2.5-1.5B-Instruct

  • 输入下载的模型路径 expert/Qwen2.5-1.5B-Instruct-LoRA-v1
  • 选择chat模式,点击加载模型,加载完后就可以进行聊天测试了
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2392467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】哈希表的实现

文章目录 1. 哈希的介绍1.1 直接定址法1.2 哈希冲突1.3 负载因子1.4 哈希函数1.4.1 除法散列法/除留余数法1.4.2 乘法散列法1.4.3 全域散列法 1.5 处理哈希冲突1.5.1 开放地址法1.5.1.1 线性探测1.5.1.2 二次探测1.5.1.3 双重探测1.5.1.4 三种探测方法对比 1.6.3 链地址法 2. 哈…

永磁同步电机控制算法--基于电磁转矩反馈补偿的新型IP调节器

一、基本原理 先给出IP速度控制器还是PI速度控制器的传递函数&#xff1a; PI调节器 IP调节器 从IP速度控制器还是PI速度控制器的传递函数可以看出&#xff0c;系统的抗负载转矩扰动能力相同,因此虽然采用IP速度控制器改善了转速环的超调问题&#xff0c;但仍然需要通过其他途…

RabbitMQ 应用 - SpringBoot

以下介绍的是基于 SpringBoot 的 RabbitMQ 开发介绍 Spring Spring AMQP RabbitMQ RabbitMQ tutorial - "Hello World!" | RabbitMQ 工程搭建步骤: 1.引入依赖 2.编写 yml 配置,配置基本信息 3.编写生产者代码 4.编写消费者代码 定义监听类,使用 RabbitListener…

基于递归思想的系统架构图自动化生成实践

文章目录 一、核心思想解析二、关键技术实现1. 动态布局算法2. 样式规范集成3. MCP服务封装三、典型应用场景四、最佳实践建议五、扩展方向一、核心思想解析 本系统通过递归算法实现了Markdown层级结构到PPTX架构图的自动转换,其核心设计思想包含两个维度: 数据结构递归:将…

OpenGL Chan视频学习-9 Index Buffers inOpenGL

bilibili视频链接&#xff1a; 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函数网站&#xff1a; docs.gl 说明&#xff1a; 1.之后就不再单独整理网站具体函数了&#xff0c;网站直接翻译会…

Nginx安全防护与HTTPS部署实战

目录 前言一. 核心安全配置1. 隐藏版本号2. 限制危险请求方法3. 请求限制&#xff08;CC攻击防御&#xff09;&#xff08;1&#xff09;使用nginx的limit_req模块限制请求速率&#xff08;2&#xff09;压力测试验证 4. 防盗链 二. 高级防护1. 动态黑名单&#xff08;1&#x…

JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码

智慧医院重症监护系统源码 ICU重症监护系统源码 开发语言&#xff1a;JavaVUE ICU护理记录&#xff1a;实现病人数据的自动采集&#xff0c;实时记录监护过程数据。支持主流厂家的监护仪、呼吸机等床旁数字化设备的数据采集。对接检验检查系统&#xff0c;实现自动化录入。喜…

python:机器学习(KNN算法)

本文目录&#xff1a; 一、K-近邻算法思想二、KNN的应用方式&#xff08; 一&#xff09;分类流程&#xff08;二&#xff09;回归流程 三、API介绍&#xff08;一&#xff09;分类预测操作&#xff08;二&#xff09;回归预测操作 四、距离度量方法&#xff08;一&#xff09;…

【笔记】2025 年 Windows 系统下 abu 量化交易库部署与适配指南

#工作记录 前言 在量化交易的学习探索中&#xff0c;偶然接触到 2017 年开源的 abu 量化交易库&#xff0c;其代码结构和思路对新手理解量化回测、指标分析等基础逻辑有一定参考价值。然而&#xff0c;当尝试在 2025 年的开发环境中部署这个久未更新的项目时&#xff0c;遇到…

小程序 - 视图与逻辑

个人简介 👨‍💻‍个人主页: 魔术师 📖学习方向: 主攻前端方向,正逐渐往全栈发展 🚴个人状态: 研发工程师,现效力于政务服务网事业 🇨🇳人生格言: “心有多大,舞台就有多大。” 📚推荐学习: 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js实战 🍒T…

ChatGPT Plus/Pro 订阅教程(支持支付宝)

订阅 ChatGPT Plus GPT-4 最简单&#xff0c;成功率最高的方案 1. 登录 chat.openai.com 依次点击 Login &#xff0c;输入邮箱和密码 2. 点击升级 Upgrade 登录自己的 OpenAI 帐户后&#xff0c;点击左下角的 Upgrade to Plus&#xff0c;在弹窗中选择 Upgrade plan。 如果…

[蓝帽杯 2022 初赛]网站取证_2

一、找到与数据库有关系的PHP文件 打开内容如下&#xff0c;发现数据库密码是函数my_encrypt()返回的结果。 二、在文件夹encrypt中找到encrypt.php,内容如下&#xff0c;其中mcrypt已不再使用&#xff0c;所以使用php>7版本可能没有执行结果&#xff0c;需要换成较低版本…

安装 Node.js 和配置 cnpm 镜像源

一、安装 Node.js 方式一&#xff1a;官网下载&#xff08;适合所有系统&#xff09; 访问 Node.js 官网 推荐选择 LTS&#xff08;长期支持&#xff09;版本&#xff0c;点击下载安装包。 根据系统提示一步步完成安装。 方式二&#xff1a;通过包管理器安装&#xff08;建…

MacOS内存管理-删除冗余系统数据System Data

文章目录 一、问题复现二、解决思路三、解决流程四、附录 一、问题复现 以题主的的 Mac 为例&#xff0c;我们可以看到System Data所占数据高达77.08GB&#xff0c;远远超出系统所占内存 二、解决思路 占据大量空间的是分散在系统中各个位置Cache数据&#xff1b; 其中容量最…

行为型:中介者模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、注意事项 1、核心思想 目的&#xff1a;通过引入一个中介对象来封装一组对象之间的交互&#xff0c;解决对象间过度耦合、频繁交互的问题。不管是对象引用维护还是消息的转发&am…

光谱相机在生态修复监测中的应用

光谱相机通过多维光谱数据采集与智能分析技术&#xff0c;在生态修复监测中构建起‌“感知-评估-验证”‌的全周期管理体系&#xff0c;其核心应用方向如下&#xff1a; 一、土壤修复效能量化评估 ‌重金属污染动态监测‌ 通过短波红外&#xff08;1000-2500nm&#xff09;波…

吉林大学操作系统上机实验五(磁盘引臂调度算法(scan算法)实现)

本次实验无参考&#xff0c;从头开始实现。 一.实验内容 模拟实现任意一个磁盘引臂调度算法&#xff0c;对磁盘进行移臂操作列出基于该种算法的磁道访问序列&#xff0c;计算平均寻道长度。 二.实验设计 假设磁盘只有一个盘面&#xff0c;并且磁盘是可移动头磁盘。磁盘是可…

ESP8266+STM32 AT驱动程序,心知天气API 记录时间: 2025年5月26日13:24:11

接线为 串口2 接入ESP8266 esp8266.c #include "stm32f10x.h"//8266预处理文件 #include "esp8266.h"//硬件驱动 #include "delay.h" #include "usart.h"//用得到的库 #include <string.h> #include <stdio.h> #include …

⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化

考试注意事项: 一、单选题(21题) 检索增强生成(RAG)的核心技术结合了什么? A. 图像识别与自然语言处理 B. 信息检索与文本生成 C. 语音识别与知识图谱 D. 数据挖掘与机器学习 RAG技术中,“建立索引”步骤不包括以下哪项操作? A. 将文档解析为纯文本 B. 文本片段分割(…

kali系统的安装及配置

1 kali下载 Kali 下载地址&#xff1a;Get Kali | Kali Linux &#xff08;https://www.kali.org/get-kali&#xff09; 下载 kali-linux-2024.4-installer-amd64.iso (http://cdimage.kali.org/kali-2024.4/) 2. 具体安装步骤&#xff1a; 2.1 进入官方地址&#xff0c;点击…