【书生·浦语大模型实战营】第4节笔记:Xtuner微调

参考资料:
https://github.com/InternLM/Tutorial/tree/camp2/xtunericon-default.png?t=N7T8https://github.com/InternLM/Tutorial/tree/camp2/xtuner

https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.mdicon-default.png?t=N7T8https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md

一:Finetune简介

两种Finetune范式
LLM的下游应用中,增量预训川练和指令跟随是经常会用到两种的微调模式:
·增量预训练微调
 1.使用场景:让基座模型学习到一些新知识,如某个垂类领域的 常识
 2.训练数据:文章、书籍、代码等
· 指令跟随微调
 1.使用场景:让模型学会对话模板,根据人类指令进行对话
 2.训练数据:高质量的对话、问答数据

全参 VS Lora VS QLora

二:XTuner实战

1. XTuner 微调个人小助手认知

  • 目标:使用XTuner工具包通过QLoRA方式微调个人小助手模型。
  • 效果对比:微调后的模型能更符合需求。

2. 开发机准备

  • 创建开发机:在InternStudio中配置开发机,选择Cuda11.7-conda镜像,资源配置为10% A100 * 1。
  • 操作界面:通过Terminal进入终端界面开始操作。

3. 快速上手XTuner

  • 环境安装:安装XTuner,包括克隆源码和安装依赖。
  • 前期准备:明确微调目标,准备数据集和算力资源。
  • 启动微调:选择配置文件,修改后启动训练。

4. 环境安装步骤

  • 克隆环境:用InternStudio平台克隆pytorch环境或在其他平台创建新环境。
  • 安装XTuner:通过pip安装XTuner及其依赖。

5. 前期准备

  • 数据集准备:创建数据集文件夹,编写generate_data.py脚本来生成个性化的数据集。
  • 模型准备:选择并准备微调用的模型,如InterLM2-Chat-1.8B。
  • 配置文件选择:在XTuner配置库中选择合适的配置文件进行复制和修改。

6. 配置文件修改

  • 修改内容:根据项目需求调整模型路径、数据集路径、学习率、训练轮数等参数。
  • 参数调整:可能包括max_lengthbatch_sizeaccumulative_counts等。

7. 模型训练

  • 常规训练:使用xtuner train指令开始训练,可通过--work-dir指定保存路径。
  • 使用deepspeed加速:选择适当的deepspeed优化级别来加速训练。

8. 模型转换、整合、测试及部署

  • 模型转换:将Pytorch模型权重转换为Huggingface格式。
  • 模型整合:将微调出的adapter层与原模型组合。
  • 对话测试:使用XTuner提供的对话代码测试模型。
  • Web demo部署:通过streamlit部署模型为web demo。

9. 小结

  • 流程理解:理解并实践XTuner的完整流程,包括数据集制作、模型微调、配置文件调整、训练、转换和整合。
  • 实践应用:鼓励使用本节课学习的内容去尝试微调自己的模型。

10. 收获

  • 工具和库:熟悉使用InternStudio、XTuner、deepspeed等工具和库。
  • 代码和脚本:掌握如何编写和使用相关Python脚本来生成数据集和进行模型训练。
  • 模型微调:了解如何通过调整参数来优化模型性能。
  • 部署选项:学习了如何将模型部署为终端对话程序和web demo
效果如图:
(训练记录)
(文件结构树)
(对话记录)
(web demo)

三:多模态训练

1. XTuner多模态训练与测试概览

  • 目标:学习使用XTuner微调多模态大型语言模型(LLM)。
  • 资源需求:需要24GB GPU内存和30%的A100 GPU使用率。
  • 效果展示:对比Finetune前后的多模态LLM性能。

2. 多模态LLM原理简介

  • 文本单模态:输入文本,通过文本Embedding模型转换成文本向量,由LLM处理后输出文本。
  • 文本+图像多模态:结合文本和图像输入,通过Image Projector将图像转换为图像向量,与文本向量一起输入LLM。

3. LLaVA方案简介

  • LLaVA:结合文本单模态LLM和Image Projector,形成具有视觉能力的模型。
  • 训练阶段:使用文本+图像问答对训练Image Projector。
  • 测试阶段:利用训练好的Image Projector和文本单模态LLM,根据输入图像生成描述性文本。

4. 快速上手

  • 环境准备
    • 开发机:在InternStudio中创建并配置开发机,选择Cuda11.7-conda镜像。
    • XTuner安装:克隆环境或创建新环境,安装XTuner。

5. LLaVA训练与Finetune

  • Pretrain阶段:使用图片+简单文本数据对训练LLM理解图像特征。
  • Finetune阶段
    • 训练数据构建:创建包含图片相对路径、对话文本的数据集。
    • 配置文件准备:创建并修改配置文件,指定模型、数据路径等参数。
    • 开始Finetune:使用XTuner训练命令启动Finetune。

6. 数据集构建与配置文件

  • 数据集格式:包含id、图片路径和对话文本的JSON格式。
  • 制作问答对:使用GPT生成图片相关问题和答案。
  • 配置文件:包含模型、数据集、评估输入等配置。

7. Finetune前后性能对比

  • Finetune前:模型只能为图片生成标题。
  • Finetune后:模型能够根据图片内容回答问题。

8. 收获

  • 流程理解:掌握使用XTuner进行多模态LLM训练的完整流程。
  • 实践应用:鼓励实践LLaVA方案,增强模型的视觉理解能力。

效果:

四:发布openxlab平台

参考教程:Tutorial/tools/openxlab-deploy at camp2 · InternLM/Tutorial (github.com)

模型中心-OpenXLabicon-default.png?t=N7T8https://openxlab.org.cn/models/detail/hopecommon/try/tree/main

应用中心-OpenXLabicon-default.png?t=N7T8https://openxlab.org.cn/apps/detail/hopecommon/personaltry

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值