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

大模型相关目录

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

  1. 大模型应用向开发路径及一点个人思考
  2. 大模型应用开发实用开源项目汇总
  3. 大模型问答项目问答性能评估方法
  4. 大模型数据侧总结
  5. 大模型token等基本概念及参数和内存的关系
  6. 从零开始的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

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

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

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

在这里插入图片描述

微调模型问答使用

在这里插入图片描述

微调模型增量模型导出

在这里插入图片描述

三、多卡微调

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

四、其他

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TinTin Web3 动态精选:以太坊坎昆升级利好 Layer2,比特币减半进入倒计时

TinTin 快讯由 TinTinLand 开发者技术社区打造,旨在为开发者提供最新的 Web3 新闻、市场时讯和技术更新。TinTin 快讯将以周为单位, 汇集当周内的行业热点并以快讯的形式排列成文。掌握一手的技术资讯和市场动态,将有助于 TinTinLand 社区的开…

促合作 | 遵义医科大学珠海校区老师一行莅临全视通参观交流

近日,遵义医科大学珠海校区(简称“遵医”)护理学系副主任李佳、大学生创新创业中心主任王燕,携同校内多位教师,共赴珠海全视通信息技术有限公司(简称“全视通”)进行参观交流。此次来访旨在深化…

【刷题训练】LeetCode125. 验证回文串

验证回文串 题目要求 示例 1: 输入: s “A man, a plan, a canal: Panama” 输出:true 解释:“amanaplanacanalpanama” 是回文串。 示例 2: 输入:s “race a car” 输出:false 解释:“rac…

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

mysql数据库:使用 bash脚本 定时任务 自动备份数据 1、前言2、为什么需要自动化备份?3、编写备份脚本4、备份脚本授权5、添加定时任务6、重启 crond / 检查 crond 服务状态7、备份文件检查 💖The Begin💖点点关注,收藏…

Flutter学习笔记---flutter环境搭建以及dart语法的学习

Flutter笔记 Flutter环境搭建 获取 Dart SDK | Dart dart-pub | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror Flutter、Dart SDK镜像资源 - 掘金 (juejin.cn) Index of /flutter/dart-archive/channels/stable/release/3.2.6/sdk/ | 清华大学…

在webapp中手动发布一个应用

目录 第一步找到wedapps文件 第二步在wedapps文件自定义创建一个文件夹 第三步在自定义的文件夹里写一个HTMl文件 第四步进bin文件找到startup打开服务器​编辑 第五步打开浏览器输入网址http://localhost:8080//demoApp//index.htmlhttp://localhost:8080//文件和后缀名 第…

微信每天通过好友上限是多少个呢?

微信每天通过好友上限是多少个呢? 1、新号和不活跃的号 微信新号是指注册不满15十五天,或者注册超过15天,但是没有好好养号的的账号。(包括很多长期不活跃的账号,突然使用的情况) 2、正常帐号 &#xf…

ABAP-SE16N查询底表使用自己的布局

ABAP-SE16N查询底表使用自己的布局 调整好列的位置和顺序之后,可以保存自己的布局,点击“布局”按钮,点击“保存布局”: 特定于用户:是只对自己有效 缺省:会影响所有用户 在代码里面是这样的:…

Android和IOS应用开发-Flutter 应用中实现记录和使用全局状态的几种方法

文章目录 在Flutter中记录和使用全局状态使用 Provider步骤1步骤2步骤3 使用 BLoC步骤1步骤2步骤3 使用 GetX:步骤1步骤2步骤3 在Flutter中记录和使用全局状态 在 Flutter 应用中,您可以使用以下几种方法来实现记录和使用全局状态,并在整个应…

java中的String

(1)创建字符串对象 //方式1 String str "abc"; //方式2 String str new String("abc"); 方式1表示:在字符串常量池(String Pool)中先寻找值为 “abc” 的内存地址,如果找不到&…

AI程序员Devin会在6个方面影响人类程序员

讲动人的故事,写懂人的代码 初创公司Cognition最近所发布的世界上首个AI程序员Devin,让人类程序员百感交集。因为Devin能自动干下面的事情: 自己学习不熟悉的技术; 端到端地自己搭建和部署应用程序; 自己找出并修复…

【数据结构】单向链表的创建及4种应用

目录 前言 自定义“单向”链表类 1. 自定义一个链表类,并完成“初始化链表”、“添加元素(头插法/尾插法)”、“计算链表长度”操作; 自定义链表 向链表中插入元素(头插法) 向链表中插入元素&#xf…

D-阿洛酮糖-DAEase酶固定化载体及混合糖液分离

#D-阿洛酮糖-DAEase酶固定化载体及混合糖液分离 ​阿洛酮糖为白色固体晶体,无气味,具有较大的溶解度,柔和的口感,其具有传统甜味剂蔗糖70%的甜度,却几乎不提供任何热量。其与食物中的蛋白质,如鸡蛋蛋白发生…

使用SpaceDesk实现iPad成为电脑拓展屏(保姆级教程)

使用SpaceDesk实现iPad成为电脑拓展屏 SpaceDesk是一个开源的软件, 所以说对学生和平民用户非常的友好, 连接后的画质也非常不错, 而且具有无线和有线两种连接方式. 接下来就开始教程: 1. 安装SpaceDesk电脑版 首先我们要下载SpaceDesk电脑版安装好: SpaceDesk官网 注意: …

Unity PS5开发 天坑篇 之 DEVKit环境部署与系统升级02

上一篇各位大神们已经收到了SONY官方免费寄送的PS5开发机与测试机,恭喜大家成为SONY的开发者, 本篇继续PS5开发机的部署与开发套件使用。 一, PC安装PS5 SDK与系统升级 1. PC/PS5 SDK Manager下载安装包 登录开发者账号后,Development->Resources&a…

深入浅出:Python中的JSON操作和最佳实践

深入浅出:Python中的JSON操作和最佳实践 引言Python中处理JSON的基础读取JSON数据示例: 将Python对象转换为JSON格式示例: 进阶使用技巧高级参数的使用示例: 处理复杂对象:自定义编码器示例: 解析复杂JSON数…

C语言——动态内存分配

前言:通过前面的学习,我们知道C语言中在内存中开辟空间的方法有:变量和数组。既然拥有了开辟空间的方法,我们为什么还要学习动态内存分配呢? int val 20; //在内存中开辟四个字节的空间 int arr[10] { 0 }; //在内…

vue3速查笔记

文章目录 一、创建Vue3.0工程1.使用 vue-cli 创建2.使用 vite 创建 二、常用 Composition API1.拉开序幕的setup2.ref函数3.reactive函数4.Vue3.0中的响应式原理vue2.x的响应式Vue3.0的响应式 5.reactive对比ref6.setup的两个注意点7.计算属性与监视1.computed函数2.watch函数3…

加入波卡去中心化未来计划,申请高达 2000 万美金和 500 万 DOT 激励!

在努力推进去中心化的旅途中,2023 年 11 月 16 日成为了一个标志性的日子。Web3 基金会 —— 一个在区块链技术和去中心化应用发展前沿不断探索和推动的组织,正式宣布推出去中心化未来(Decentralized Futures)计划,同时…

凝思操作系统离线安装mysql和node

PS:下面这就是国产凝思的界面,测试版本是V6.0.80,第一次听说这种系统,于是去官网下载部署包,下面是地址 注意:这个系统如果没有激活,ip都不会有,这样文件都不能传到服务器,xshell这些工具都连不…