【InternLM实战营---第四节课作业】

本文详细介绍了在InternStudio平台上使用Xtuner进行模型微调的过程,包括环境设置、数据集准备、模型选择、配置文件操作和模型整合,以及将模型上传至OpenXLab并尝试部署的应用实例。
摘要由CSDN通过智能技术生成

一、学习笔记

https://blog.csdn.net/weixin_45609124/article/details/137938882

二、基础作业

  • . 训练自己的小助手认知
    在InternStudio 平台中,跟着老师的教程文档走都是没有问题的,我这里稍微记录下在其他平台上的操作流程,方便日后自己使用。
    1. 微调工具Xtuner环境准备
      # 如果你是在其他平台:
      # conda create --name xtuner0.1.17 python=3.10 -y
      
      # 激活环境
      conda activate xtuner0.1.17
      
      # 拉取 0.1.17 的版本源码
      git clone -b v0.1.17  https://github.com/InternLM/xtuner
      # 无法访问github的用户请从 gitee 拉取:
      # git clone -b v0.1.15 https://gitee.com/Internlm/xtuner
      
      # 进入源码目录
      cd /xtuner
      
      # 从源码安装 XTuner
      pip install -e '.[all]'
      
    2. 数据集准备
      老师在教程中准备数据集时,应该是为了节省大家的时间,选择了将同一条数据循环写入文件10000次,这样会导致微调后的模型过拟合,我们可以在一万条正常的对话数据里混入两千条和小助手相关的数据集,这样模型同样可以在不丢失对话能力的前提下学到XX大佬的小助手这句话。我们也可以了解Xtuner支持的数据集格式,自己动手制作。
      数据集格式可参考官方示例:单轮对话多轮对话
    3. 模型准备
      Xtuner目前支持的模型有InternLM2、InternLM、Llama 3、Llama 2、Llama 、ChatGLM3、ChatGLM2、Qwen、Baichuan、Baichuan2、Mixtral 8x7B、DeepSeek MoE、Gemma。根据自己的硬件条件选择参数大小合适的模型。如果有遇到模型下载问题的小伙伴,可以看一下我的第三节作业。
    4. 快速上手流程
      # 列出所有内置配置文件
      # xtuner list-cfg
      
      # 假如我们想找到 internlm2-1.8b 模型里支持的配置文件
      xtuner list-cfg -p internlm2_1_8b
      
      # 使用 XTuner 中的 copy-cfg 功能将 config 文件复制到指定的位置,方便我们进行修改
      xtuner copy-cfg internlm2_1_8b_qlora_alpaca_e3 /root/ft/config
      
      #编辑配置文件
      pretrained_model_name_or_path  模型存放路径
      alpaca_en_path  数据集存放路径
      evaluation_inputs  验证数据
      
      #常规方式启动
      xtuner train /root/ft/config/internlm2_1_8b_qlora_alpaca_e3_copy.py --work-dir /root/ft/train
      
      #使用 deepspeed 来加速训练
      xtuner train /root/ft/config/internlm2_1_8b_qlora_alpaca_e3_copy.py --work-dir /root/ft/train_deepspeed --deepspeed deepspeed_zero2
      
      # 模型续训
      xtuner train /root/ft/config/internlm2_1_8b_qlora_alpaca_e3_copy.py --work-dir /root/ft/train --resume /root/ft/train/iter_600.pth
      
      # 模型转换
      # xtuner convert pth_to_hf ${配置文件地址} ${权重文件地址} ${转换后模型保存地址}
      xtuner convert pth_to_hf /root/ft/train/internlm2_1_8b_qlora_alpaca_e3_copy.py /root/ft/train/iter_768.pth /root/ft/huggingface
      
      # 进行模型整合
      # xtuner convert merge  ${NAME_OR_PATH_TO_LLM} ${NAME_OR_PATH_TO_ADAPTER} ${SAVE_PATH} 
      xtuner convert merge /root/ft/model /root/ft/huggingface /root/ft/final_model
      
      #使用 --adapter 参数与完整的模型进行对话
      xtuner chat /root/ft/model --adapter /root/ft/huggingface --prompt-template internlm2_chat
      
    5. 小结
      最终将数据集、模型文件、微调配置文件整理为以下结构:
      |-- ft/
          |-- config/
              |-- internlm2_1_8b_qlora_alpaca_e3_copy.py
          |-- model/
              |-- tokenizer.model
              |-- config.json
              |-- tokenization_internlm2.py
              |-- model-00002-of-00002.safetensors
              |-- tokenizer_config.json
              |-- model-00001-of-00002.safetensors
              |-- model.safetensors.index.json
              |-- configuration.json
              |-- special_tokens_map.json
              |-- modeling_internlm2.py
              |-- README.md
              |-- configuration_internlm2.py
              |-- generation_config.json
              |-- tokenization_internlm2_fast.py
          |-- data/
              |-- personal_assistant.json
              |-- generate_data.py
      
    6. 作业截图
      数据集、模型文件、配置文件已准备好结构图
      原神启动,哦,不对,Xtuner启动!!!
      看着满屏的日志,内心还是些许慌张的,生怕突然停掉训练启动
      训练完成后,装换为Huggingface 格式文件格式转换
      进行模型整合模型整合描述
      启动web版本启动web版本
      最终效果效果展示

三、进阶作业

  1. 将自我认知的模型上传到 OpenXLab,并将应用部署到 OpenXLab
    这没什么好说的,官方教程太细了,跟着教程走,一点问题都没有,模型已经成功上传到OpenXLab
    模型上传到 OpenXLab
    没有成功应用部署到 OpenXLab,个人认为是资源的问题,在申请了
    在这里插入图片描述

  2. 复现多模态微调
    从这期的课程中,我们可以知道,多模态模型需要两阶段,第一阶段需要大量数据训练得到Image Projector,这里为了节省时间和算力,老师提供了幼儿园版的Image Projector,我们直接进入第二阶段进行微调即可。官方教程
    复现
    跟着教程走,有惊无险,哈哈哈,搞定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值