大模型学习之书生·浦语大模型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

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

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

相关文章

金三银四-JVM核心知识高频面试题

又要快到一年一度的金三银四,开始复习啦~! 每天一点点。。 目录 一、JVM中的垃圾收集器有哪些,它们的工作原理是什么? 二、JVM中的类加载器有哪些,它们各自的作用是什么? 三、JVM中垃圾回收的…

Linux第24步_安装windows下的VisualStudioCode软件

Windows下的VSCode安装后,还需要安装gcc编译器和g编译器。 gcc:编译C语言程序的编译器; g:编译C代码的编译器; 1、在Windows下安装VSCode; 双击“VSCodeUserSetup-x64-1.50.1.exe”,直到安装完成。 2、…

c++学习笔记-STL案例-演讲比赛管理系统1

目录 1演讲比赛需求 1.1 比赛规则 1.2 程序功能 2.项目创建 2.1 创建新项目 2.2 添加文件 3.3 文件添加成功 3.创建管理类 3.1 功能描述 3.2 创建文件 4 菜单功能 4.1 功能描述 4.2 添加成员函数 4.3 菜单功能实现 4.4 main()函数中调用 4.5 实现结果 5 退出系…

C++力扣题目104--二叉树的最大深度

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 思路 看完本篇可以一起做了如下…

【C++11/C++17】左值与右值

左值和右值是C中的两个重要概念,它们涉及到变量的存储位置和生命周期。 左值(Lvalue) 左值表示一块具有确定地址的内存单元。它表示一个具体的、明确存在的存储单元。可以被取地址运算符(&)获取其地址。变量、数…

pytorch详细探索各种cnn卷积神经网络

目录 torch.nn.functional子模块详解 conv1d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv2d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv3d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv_transpose1d 用法…

electron+vue编辑Office Word?

Electron 桌面应用是基于 Chromium 内核的,而谷歌Chrome取消了对PPAPI插件支持后,在线Office方案纷纷失效,只能更换国产浏览器在低版本浏览器苟延残喘,不能用于electronvue项目。 经过小编不断的寻找,终于找到一款至今…

redis主从复制、哨兵与集群

目录 一、概述 二、redis主从复制 1、概念 2、主从复制的作用 3、主从复制流程 4、搭建Redis 主从复制实验 ①在三台服务器上安装redis (1)关闭防火墙和安全机制 (2)修改内核参数 (3)安装redis …

自旋框的使用

1. 自旋框 实例化 //实例化单精度自旋框QSpinBox* spinBox new QSpinBox(this);//实例化双精度自旋框QDoubleSpinBox* doubleSpinBox new QDoubleSpinBox(this);1.1 单精度自旋框 QSpinBox 1.1.1 单精度自旋框的基本函数 QSpinBox_QDoubleSpinBox Dialog.cpp #include "…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势(一)网络安全风险类型(二)网络安全保险的作用(三)与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

vue中常用的指令修饰符

vue中常用的指令修饰符有哪些 在Vue.js中,指令修饰符用于在指令后面以点号(.)形式添加特殊后缀,以表示对指令的特定行为或修饰。 以下是一些常用的Vue.js指令修饰符: 1. v-on ()指令修饰符&am…

vue/vue3/js来动态修改我们的界面浏览器上面的文字和图标

前言&#xff1a; 整理vue/vue3项目中修改界面浏览器上面的文字和图标的方法。 效果&#xff1a; vue2/vue3: 默认修改 public/index.html index.html <!DOCTYPE html> <html lang"en"><head><link rel"icon" type"image/sv…

报考PMI-ACP总费用是多少?费用明细!

ACP认证是由美国项目管理协会&#xff08;PMI&#xff09;推出的针对敏捷项目管理专业人士的资格认证&#xff0c;由于其高含金量受到了不少小伙伴的追捧。那么这个证书考试费多少钱呢&#xff1f;贵不贵呢&#xff1f;我们来一起探讨下。 PMI-ACP认证考试费用分为三个部分&am…

PostgreSQL 低级错误集锦 (不定时更新)

低级错误真的浪费时间且菜&#xff0c;希望不再犯低级重复错误。 1.to_date()函数日期转换报错 SQL语句&#xff1a; SELECT job_date FROM data_check WHERE data_type S; 查询结果&#xff1a; job_date | ---------- 2023-01-28| 我希望用update语句更新job_date字段&…

golang中的字符串拼接

go中常见的字符串拼接方法 假设我们现在要实现这样一个拼接函数&#xff1a; 将字符串重复n次拼接起来&#xff0c;返回一个新字符串。 方法一&#xff1a;使用运算符 func simpleSplice(s string, n int) string {newStr : ""for i : 0; i < n; i {newStr s}…

一种基于嵌入式的卫星基带信号处理系统的制作方法

一种基于嵌入式的卫星基带信号处理系统的制作方法 随着卫星通信技术的不断发展&#xff0c;卫星基带信号处理系统的性能和稳定性要求也越来越高。传统的卫星基带信号处理系统通常采用分立器件和通用处理器&#xff0c;存在着体积庞大、功耗高、集成度低等问题。为了解决这些问题…

C++_vector类

目录 一、vector的模拟实现 1、vector的组成结构 2、vector尾插数据 2.1 析构函数 3、迭代器实现 4、resize 5、删除数据 5.1 迭代器失效 6、指定位置插入数据 6.1 迭代器失效 7、迭代器构造和resize构造 8、深浅拷贝 结语&#xff1a; 前言&#xff1a; vect…

Linux踢掉远程用户

在Linux系统中&#xff0c;要踢掉远程用户&#xff0c;可以使用以下步骤&#xff1a; 首先&#xff0c;使用 who 或 w 命令查看当前登录的用户及其相关信息&#xff0c;包括IP地址和终端&#xff08;TTY&#xff09;。例如&#xff0c;输入 who 或 w 后回车。找到要踢掉的用户…

vue前端开发自学demo-input标签数据双向绑定

vue前端开发自学demo-input标签数据双向绑定&#xff01;今天为大家 展示的内容是&#xff0c;前端开发常见的&#xff0c;form表单里面的&#xff0c;一些输入数据的元素&#xff0c;动态绑定数据的案例。比如input,以及checkbox的状态绑定案例。 首先&#xff0c;老规矩&…

掌握私域运营的四大原则,助你打造精准营销

随着互联网的发展和竞争的加剧&#xff0c;企业越来越重视私域运营的重要性。私域运营可以帮助企业与用户建立更紧密的联系&#xff0c;提高用户忠诚度和粘性&#xff0c;从而为企业带来更多的商业价值。在进行私域运营时&#xff0c;以下四大原则是必须要知道的。 第一、价值…