从零开始的LLaMA-Factory的指令增量微调

news2024/11/24 14:45:08

大模型相关目录

大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容
从0起步,扬帆起航。

  1. 大模型应用向开发路径及一点个人思考
  2. 大模型应用开发实用开源项目汇总
  3. 大模型问答项目问答性能评估方法
  4. 大模型数据侧总结
  5. 大模型token等基本概念及参数和内存的关系
  6. 大模型应用开发-华为大模型生态规划
  7. 从零开始的LLaMA-Factory的指令增量微调

文章目录

  • 大模型相关目录
  • 一、LLaMA-Factory简介
  • 二、使用准备
  • 二、单卡微调
    • 测试集对微调模型性能评估
    • 微调模型问答使用
    • 微调模型增量模型导出
  • 三、多卡微调
  • 四、其他


一、LLaMA-Factory简介

LLaMA-Factory是开源的大模型微调框架,在模型微调方式、参数配置、数据集设置、模型保存、模型合并、模型测试以及模型试用上,提供了非常完备的开发接口。其框架使用形式分为指令与界面两种。

二、使用准备

1.拉取项目并部署相应环境(微调chatGLM3 6B很流畅,微调Qwen系列可能需要按错误提示对环境进行补包),并激活。

conda activate zwllama_factory
在这里插入图片描述

2.下载模型到本地
在这里插入图片描述

3.自行准备数据集
包括:

  • 自我认知数据集(微调后可能效果也比较一般,需要多次微调,或者配合prompt。)
  • 通用数据集(微调时用不用均可,可保持模型通用能力。且LLaMA-Factory的data文件夹下有alpaca_gpt4_data_zh等已经备好的数据集,不需要刻意定制。)
  • 特定领域数据集
    基本格式如下(alpaca,一种指令微调的格式。当然还有其他格式):
 [
  {
    "instruction": "你好",
    "input": "",
    "output": "您好,我是XX大模型,一个由XXX开发的 AI 助手,很高兴认识您。请问我能为您做些什么?"
  },
  {
    "instruction": "你好",
    "input": "",
    "output": "您好,我是XX大模型,一个由XXX打造的人工智能助手,请问有什么可以帮助您的吗?"
  }
  ]

其中,instruction和input可以都填充进内容,如把问题作为input,把“回答问题这一要求”作为instruction。据说这种指令微调数据集的格式效果比较好。

准备数据及后,应上传所用到的数据集至项目路径下data文件夹
data文件夹下的数据集要想使用,还需在dataset_info.json下进行登记注册。
在这里插入图片描述
其中,file_sha1可通过如下代码计算获得,该字段要求并不严格,有即可,主要为了区分重复文件,作uuid使用。


import hashlib

def calculate_sha1(file_path):
    sha1 = hashlib.sha1()
    try:
        with open(file_path, 'rb') as file:
            while True:
                data = file.read(8192)  # Read in chunks to handle large files
                if not data:
                    break
                sha1.update(data)
        return sha1.hexdigest()
    except FileNotFoundError:
        return "File not found."

# 使用示例
file_path = r'C:\Users\12258\Desktop\xxx.json'  # 替换为您的文件路径
sha1_hash = calculate_sha1(file_path)
print("SHA-1 Hash:", sha1_hash)

二、单卡微调

单卡微调往往针对6B、7B等规模不大的大模型,因此界面化操作完全狗满足需求。
下述指令启动界面:

CUDA_VISIBLE_DEVICES=0 python src/train_web.py

如下图所示配置页面信息
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可见界面微调的本质依旧是后端的指令。
点击开始,开始微调,界面无反应,后端开始加载
在这里插入图片描述
加载完毕后,前端界面出现训练所需时间和损失曲线。
在这里插入图片描述
注意,训练随时可以中断。

测试集对微调模型性能评估

在这里插入图片描述

微调模型问答使用

在这里插入图片描述

微调模型增量模型导出

在这里插入图片描述

三、多卡微调

在这里插入图片描述
在这里插入图片描述

四、其他

在这里插入图片描述
更多信息可以访问开源项目进行了解。

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

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

相关文章

外卖项目:使用AOP切面,完成公共字段自动填充(断点调试详细讲解)

文章目录 一、问题描述二、实现思路三、实现步骤四、断点实操五、代码演示 一、问题描述 我们已经完成了后台系统的员工管理功能和菜品分类功能的开发,在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工或者编…

Sentinel持久化(nacos)

导入依赖 <!--SpringCloud ailibaba sentinel-datasource-nacos --><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency> yml配置 rule-type: naco配置: resource&am…

javaweb遇到的servlet问题,jar包问题

有时候会遇到这种问题&#xff0c;有的地方会报红 这是因为这个找不到这个包&#xff0c;这个项目缺少jar包 在tomcat9之前还不是Jakarta这个名字&#xff0c;我的运行环境与服务器是jdk17与tomcat10 解决方法&#xff1a; 在项目结构中&#xff0c;找到模块&#xff0c;再…

踏“时间”与“空间”前来探寻复杂度的奥妙(Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

机器人路径规划:基于广度优先搜索算法的机器人路径规划(提供Python代码)

一、广度优先搜索算法简介 广度优先搜索&#xff08;BFS&#xff09;是一种用于图或树的遍历算法&#xff0c;它从根节点开始&#xff0c;逐层地向下搜索&#xff0c;直到找到目标节点或遍历完整个图。BFS使用队列数据结构来实现&#xff0c;保证了节点的访问顺序是按照层级逐…

拌合楼管理系统(八) c#海康威视摄像头车牌识别

前言: c#调用海康威视SDK实现车牌识别 原本以为海康威视sdk的Demo里面没有车牌识别的实例,后来发现自己肤浅了,官方是有提供的,只是车牌识别是通过安防布警的方式实现的.程序主动监听,触发告警后获取到车牌信息. 一、接口调用的流程&#xff1a; 首先初始化sdk -> 开…

PHP使用PHP_DIO读取串口数据

一、安装PHP_DIO扩展 1. 下载对应版本的dll扩展 根据你的操作系统类型选择对应的扩展名 PECL :: Package :: dio 下载地址&#xff1a; PECL :: Package :: dio 0.2.1 for Windows 以我使用的为例 我本地使用的是phpStudy PHP为7.4.3nts 64位的那就需要下载 注意你的是线程安全…

嵌入式学习42-数据结构-双向链表

知识散记&#xff1a; 1.程序使用时&#xff08;开闭原则&#xff09; …

iOS常见崩溃简介

1. 崩溃 多指在移动设备&#xff08;如iOS、Android设备&#xff09;中或不可移动设备&#xff08;如:Windows、Linux等设备&#xff09;&#xff0c; 在打开或使用应用程序时出现的突然退出中断的情况&#xff08;类似于Windows的应用程序崩溃&#xff09;。 多表现为&#…

全网最详细介绍如何实现图片存储阿里OSS实现资源持久化存储

什么是阿里云OSS 阿里云OSS&#xff08;Object Storage Service&#xff0c;对象存储服务&#xff09;是阿里云提供的一种存储服务&#xff0c;它支持任意类型的数据存储&#xff0c;如图片、视频、日志文件等。OSS以对象&#xff08;Object&#xff09;的形式组织数据&#x…

【导论】数据可信流通 从运维信任到技术信任

信任 信任概念由于其抽象性和结构复杂性&#xff0c;在社会学、心理学、营销学、经济学、管理学等不同 的领域定义是不同的&#xff0c;但是达成共识的观点是&#xff1a;信任是涉及交易或交换关系的基础。 信任的基石 ①身份可确认&#xff0c;②利益可依赖&#xff0c;③能…

docker实战(3)

1, jdk17版本的dockerfile FROM eclipse-temurin:17-jre ADD ./target/ods-poc-0.0.1-SNAPSHOT.jar /home/app/app.jar WORKDIR /home/app ENV TZ Asia/Shanghai ENTRYPOINT ["java","-jar","/home/app/app.jar"] EXPOSE 8083dockerfile 1, …

数据结构的概念大合集02(线性表)

概念大合集02 1、线性表及其逻辑结构1.1 线性表的定义1.2 线性表的基本操作 2、线性表的顺序存储结构2.1 顺序表 3、线性表的链式存储3.1 链表3.1.1 头结点&#xff08;头指针&#xff09;&#xff0c;首指针&#xff0c;尾指针&#xff0c;尾结点3.1.2 单链表3.1.3 双链表3.1.…

Linux第79步_使用自旋锁保护某个全局变量来实现“互斥访问”共享资源

自旋锁使用注意事项:自旋锁保护的“临界区”要尽可能的短。 因此&#xff0c;在open()函数中申请“spinlock_t自旋锁结构变量”&#xff0c;然后在release()函数中释放“spinlock_t自旋锁结构变量”&#xff0c;这种方法就行不通了。如果使用一个变量“dev_stats”来表示“共享…

Nanya(南亚科技)DRAM芯片选型详解

一、DRAM产品选型 普通SDRAM只在时钟的上升期进行数据传输&#xff0c;DDR内存能够在时钟的上升期和下降期各传输一次数据&#xff0c;因此性能翻倍&#xff0c;被称为双倍速率同步动态随机存储器。因此DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。DDR是一种掉…

Pygame AttributeError no attribute ‘display‘问题及其解决方法

目录 前言 错误原因 解决方法 1. 确保正确安装 Pygame 2. 检查 Python 路径和 Pygame 模块位置 3. 修复模块命名冲突 4. 检查代码错误 5. 检查 Pygame 版本兼容性 代码示例 总结 前言 Pygame 是一个非常受欢迎的 Python 游戏开发库&#xff0c;它提供了丰富的功能和…

Linux 学习必备:CentOS 技能提升一站式平台!

介绍&#xff1a;CentOS是一种广泛使用的Linux发行版&#xff0c;特别受到企业用户的青睐。 首先&#xff0c;CentOS的全称是Community Enterprise Operating System&#xff0c;中文意思是“社区企业操作系统”。它起源于Red Hat Enterprise Linux (RHEL)的源代码&#xff0c;…

极智压缩 ——帮你高清无损压缩 JPG/PNG/GIF 图片!

引言 图片太大怎么办&#xff1f;图片该如何压缩&#xff1f;压缩后图片为什么变模糊了&#xff1f;屏幕前的你是不是经常被这些问题所困扰&#xff0c;腾讯云数据万象推出的图片极智压缩服务&#xff0c;可以帮你高清无损压缩 JPG/PNG/GIF 图片&#xff0c;解决你95%以上的图片…

解决虚拟机Linux ens33 没有 IP 地址

解决方法&#xff1a; 先进入 root 模式 sudo su 查看目录 ls /etc/sysconfig 找到上述文件夹 ls /etc/sysconfig/network-scripts/ 用 vim 打开 ifcfg-ens33 这个文件&#xff08;不都是这个名字&#xff0c;按这个方法找到这个文件就行&#xff09; vim /etc/sysconfig/netw…