大模型学习之书生·浦语大模型4——基于Xtuner大模型微调实战

在这里插入图片描述

基于Xtuner大模型微调实战

在这里插入图片描述

Fintune简介

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

  • 海量数据训练的base model
  • 指令微调Instructed LLM

增量预训练微调

在这里插入图片描述
增量数据不需要问题,只需要答案,只需要陈述类的数据

指令跟随微调

在这里插入图片描述

  • 指定角色
  • 指定问题给对应的user
  • 指定答案给assistant

在这里插入图片描述

  • LIaMa2
  • InternLM
    不同的模型有不同的模板

在这里插入图片描述
只对答案部分进行损失计算

LoRA & QLoRA

在这里插入图片描述

  • LoRA在原本模型旁新增两个小的分支,旁路分支的参数Adapter
  • 参数远远小于原本模型的参数

在这里插入图片描述

  • 全参数训练:加载到显存中会占用大量的内存
  • LoRA:只加载部分参数
  • QLoRA:先进行量化再加载

XTuner

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

快速上手

在这里插入图片描述

自定义训练

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
训练好之后得到Adapter参数文件,在启动的时候,既要加载原始基座模型,同时也要加载训练好的Adapter模型文件

在这里插入图片描述

  • 类似于gpt中的Plugin,专业的工具类模型

数据处理引擎

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

  • 集成了很多映射函数,省掉开发的很多工作

在这里插入图片描述

  • 支持数据拼接,增强并行性,充分利用大显存

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

  • json格式数据集

8GB显存玩转LLM

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

  • 默认开启Flash Attention
  • 集成了DeepSpeed

在这里插入图片描述

动手实践环节

在这里插入图片描述

创建服务器

在这里插入图片描述
并配置本地公钥

创建虚拟环境

在这里插入图片描述

微调

准备配置文件

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

  • 采用qlora_oasst1_e3
模型下载

在这里插入图片描述

数据集下载

在这里插入图片描述

修改配置文件

在这里插入图片描述

  • 修改模型路径
  • 修改数据集路径
  • max_epochs = 1 节省时间及算力
超参

在这里插入图片描述

开始微调

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

  • 训练非常耗时
  • 可以使用deepspeed加速
  • 可以使用tmux起训练,避免中断
将得到的模型文件转换成HuggingFace模型

在这里插入图片描述

部署与测试

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

  • 注意不同的模型有不同的template
Demo
  • 修改模型文件
    在这里插入图片描述
    在这里插入图片描述
  • 对比微调前和微调后的模型
    在这里插入图片描述
  • 启动参数

自定义微调在这里插入图片描述

  • 数据集 Medication QA
准备数据

在这里插入图片描述

转化为XTuner数据格式

在这里插入图片描述

  • 可以利用gpt帮忙写代码
    在这里插入图片描述
    在这里插入图片描述
划分训练集和测试集

在这里插入图片描述

开始自定义微调

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

  • 修改配置文件:模型文件路径,数据集路径

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

  • 启动训练
  • 加入deepspeed加速
  • 将得到的模型转成huggface格式

用MS-Agent赋予LLM Agent能力

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MS-Agent包含大量这样的数据,可以基于这样的数据训练具有这样能力的LLM
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 下载Adapter
    在这里插入图片描述
  • 添加请求服务的API插件
    在这里插入图片描述
  • 俩模型可以merge
  • 也可以adapter参数
    在这里插入图片描述
    在这里插入图片描述
  • 注释掉该语句

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

  • API调用有问题

参考

  • Xtuner

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

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

相关文章

什么是Modbus协议?

Modbus协议是一种在工业自动化领域广泛应用的通信协议,它允许不同设备之间进行可靠的数据交换和控制。该协议最初由Modicon公司于1979年创建,旨在提供一种简单而有效的方法,使PLC(可编程逻辑控制器)和其他自动化设备能…

前端绕过无限Debug

1.准备 burp : https://pan.baidu.com/s/1aqCywnF_S-HzIWVGLjiW-A 提取码: mpen BurpLoaderKeygen:链接: https://pan.baidu.com/s/1Vck_hFMT2YXP1cbmYfFqsA 提取码: qggp 点击Next后把Request粘贴到LoaderKeygen中,然后把Response粘贴到Burp Suite中 注&#xff1…

2024年【熔化焊接与热切割】考试内容及熔化焊接与热切割免费试题

题库来源:安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试内容是安全生产模拟考试一点通总题库中生成的一套熔化焊接与热切割免费试题,安全生产模拟考试一点通上熔化焊接与热切割作业手机同步练习。2024年【熔化焊接与热切割】考试内容及熔化…

in <module> input = brower.find_element(‘kw‘)

1. 概念名称&#xff1a; in <module> input brower.find_element(kw) 2. 概念定义&#xff1a; 这行代码使用了Selenium WebDriver的find_element方法来定位页面上的一个元素 3. 我对概念的理解&#xff1a; find_element方法用于查找页面上的元素&#xff0c;但这里的…

Mysql是怎样运行的--下

文章目录 Mysql是怎样运行的--下查询优化explainoptimizer_trace InnoDB的Buffer Pool&#xff08;缓冲池&#xff09;Buffer Pool的存储结构空闲页存储--free链表脏页&#xff08;修改后的数据&#xff09;存储--flush链表 使用Buffer PoolLRU链表的管理 事务ACID事务的状态事…

Triumphcore FPGA调测试记录

FPGA采用Xilinx pynq Z2开发板。基于V2.5版本开发 OverView uart端口映射 BUG调试记录 2024.1.7 复位状态导致取指时序错误 错误波形&#xff1a; 正确波形 问题代码&#xff1a; 2024.1.9 clock_wizard设置输入时钟是输出时钟的2^n倍&#xff0c;输出时钟的占空比才…

电能质量Python实现全家桶——全网最低价

往期精彩内容&#xff1a; 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…

数据结构之单调栈、单调队列

今天学习了单调栈还有单调队列的概念和使用&#xff0c;接下来我将对其定义并配合几道习题进行讲解&#xff1a; 首先先来复习一下栈与队列&#xff1a; 然后我们来看一下单调栈的定义&#xff1a; 单调栈中的元素从栈底到栈顶的元素的大小是按照单调递增或者单调递减的关系进…

Spring之整合Mybatis底层源码

文章目录 一、整体核心思路1 . 简介2. 整合思路 二、源码分析1. 环境准备2. 源码分析 一、整体核心思路 1 . 简介 有很多框架需要与Spring进行整合&#xff0c;而整合的核心思路就是把其他框架所产生的对象放到Spring容器中&#xff0c;让其成为一个bean。比如Mybatis&#x…

使用requests库测试post请求 操作流程

第一步 谷歌f12或其他抓包工具抓包&#xff0c;这里随机抓一个post请求 url&#xff1a;https://eva2.csdn.net/v3/06981375190026432f77c01bfca33e32/lts/groups/dadde766-b087-42da-8e67-d2499a520ee7/streams/a0119567-bf91-4314-ab75-f683ba6c0c0a/logs 第二步 导包 impo…

uniapp在web端怎么使用svg图标呢

在图标库中添加好项目用到的图标&#xff0c;点击symbol点击生成在线链接 点击生成的在线链接&#xff0c;此时会跳转到一个新窗口&#xff0c;是一个js文件 复制这个js文件的内容 然后在uniapp中新建svg.js文件&#xff0c;把从上面复制的代码粘贴到这个svg.js中 在main.js中引…

在本地测试nginx中localhost不行,需要写成127.0.0.1

在Windows 10系统的命令提示符cmd中&#xff0c;执行命令ping localhost&#xff0c;并没有出现我与其的ip地址“127.0.0.1”&#xff0c;而是“[::1]”。 问题原因 在cmd中ping localhost解析出来的是ipv6的::1的原因是windows有个优先解析列表&#xff0c;当ipv6的优先级高于…

C++学习笔记——对象的指针

目录 一、对象的指针 二、减少对象的复制开销 三、应用案例 游戏引擎 图像处理库 数据库管理系统 航空航天软件 金融交易系统 四、代码的案例应用 一、对象的指针 是一种常用的技术&#xff0c;用于处理对象的动态分配和管理。使用对象的指针可以实现以下几个方面的功…

pythroch abaconda 安装 cuda、版本确定、pytorch 安装

一、简述 公司有一个深度学习的项目&#xff0c;身上也没有其他项目&#xff0c;恰好乘着个机会学一下pytorch 和YOLOv8. 1、下载abaconda https://repo.anaconda.com/archive/ 2、安装 环境变量要✔ 其他一直下一步 3、测试 (base) C:\Users\alber>conda -V cond…

Tensorflow Lite从入门到精通

TensorFlow Lite 是 TensorFlow 在移动和 IoT 等边缘设备端的解决方案&#xff0c;提供了 Java、Python 和 C API 库&#xff0c;可以运行在 Android、iOS 和 Raspberry Pi 等设备上。目前 TFLite 只提供了推理功能&#xff0c;在服务器端进行训练后&#xff0c;经过如下简单处…

C++11_lambda表达式

文章目录 一、lambda表达式1.lambda的组成2.[capture-list] 的其他使用方法2.1混合捕捉 二、lambda表达式的使用场景1.替代仿函数 总结 一、lambda表达式 lambda表达式是C11新引入的功能&#xff0c;它的用法与我们之前学过的C语法有些不同。 1.lambda的组成 [capture-list] …

消息开始事件message start event

一&#xff1a;bpmn 二&#xff1a;java repositoryService.createDeployment().name("消息事件流程").addClasspathResource("bpmn/msg_event_process.bpmn").deploy(); identityService.setAuthenticatedUserId("huihui"); ProcessInstance p…

vue3中ref和reactive联系与区别以及如何选择

vue3中ref和reactive区别与联系 区别 1、ref既可定义基本数据类型&#xff0c;也可以定义引用数据类型&#xff0c;reactive只能定义应用数据类型 2、ref在js中取响应值需要使用 .value&#xff0c;而reactive则直接取用既可 3、ref定义的对象通过.value重新分配新对象时依旧…

放电深度对电池寿命的影响

一、SOC和DOD概念 SOC&#xff1a;State Of Charge. 电池SOC是指荷电状态&#xff0c;是用来反映电池的剩余容量的&#xff0c;其数值上定义为剩余容量占电池容量的比值&#xff0c;常用百分数表示&#xff1b;其取值范围为0~1&#xff0c;当“SOC0”时表示电池放电完全&#…

python爬虫实战(6)--获取某度热榜

1. 项目描述 需要用到的类库 pip install requests pip install beautifulsoup4 pip install pandas pip install openpyxl然后&#xff0c;我们来编写python脚本&#xff0c;并引入需要的库&#xff1a; import requests from bs4 import BeautifulSoup import pandas as p…