大模型学习之书生·浦语大模型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调用有问题

参考

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 19:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 19:54:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 19:54:02       82 阅读
  4. Python语言-面向对象

    2024-01-11 19:54:02       91 阅读

热门阅读

  1. K8S如何扩展副本集

    2024-01-11 19:54:02       40 阅读
  2. 如何在前端优化中处理大量的图像资源?

    2024-01-11 19:54:02       61 阅读
  3. KAFKA高级应用

    2024-01-11 19:54:02       47 阅读
  4. Golang 并发编程详解

    2024-01-11 19:54:02       55 阅读
  5. 苹果电脑安装office,如何在mac上安装office软件

    2024-01-11 19:54:02       64 阅读
  6. golang学习-map

    2024-01-11 19:54:02       57 阅读
  7. Vue3前端 响应式数据 知识点

    2024-01-11 19:54:02       51 阅读
  8. 力扣_数组24—搜索旋转排序数组II

    2024-01-11 19:54:02       47 阅读
  9. 【LeetCode2696】删除子串后的字符串最小长度

    2024-01-11 19:54:02       57 阅读
  10. 47.解释一下Spring AOP里面的几个名词

    2024-01-11 19:54:02       58 阅读
  11. 解密TF-IDF:打开文本分析的黑匣子

    2024-01-11 19:54:02       40 阅读
  12. Unity中打印信息的两种方式

    2024-01-11 19:54:02       50 阅读
  13. 橘子学K8S03之容器的理解

    2024-01-11 19:54:02       46 阅读
  14. MYSQL 锁

    MYSQL 锁

    2024-01-11 19:54:02      58 阅读