当前位置: 首页 > news >正文

第十六章:基于开源大模型使用huggingface在deepspeed与accelerator下继承源码权重保存而实现resume与infer

文章目录

  • 前言
  • 一、huggingface的_save_checkpoint函数不同阶段保存内容介绍
    • 1、_save_checkpoint函数
    • 2、save_model函数
    • 3、_save函数
    • 4、save_pretrained函数
    • 5、resume说明
  • 二、模型训练Resume相关内容重载
    • 1、Resume的一次性权重载入(deepspeed_load_checkpoint)
    • 2、Resume的optimizer.pt与scheduler.pt选择性载入
    • 3、Resume的state状态载入(trainer_state.json)
    • 4、Resume随机状态载入(rng_state.pth)
    • 5、小节总结
  • 三、模型训练权重customer保存源码继承
    • 1、模型推理加载方法
      • 1、第一阶段推理加载方法
      • 2、第二阶段推理加载方法
    • 2、继承custormer保存内容完整Demo
      • 1、huggingface的deepspeed方式保存内容
      • 2、customer的optimizer.pt与scheduler.pt保存
      • 3、映射层训练相关内容保存
      • 4、LoRA训练相关内容保存
  • 总结

前言

本篇文章继续升级使用huggingface来灵活保存相关内容为模型推理使用。我使用llava开源模型对特征提取vit的lora、映射层微调、大语言模型lora训练等相关内容保存,而实现推理与resume功能。基于此,本篇文章会给出llava不同推理需要使用文件内容介绍、 deepspeed训练的resume加载相关内容与如何保存其相关内容等方法。最终,本篇文章升级deepspeed与accelerator方法下自由个性化的相关内容实现resume训练与推理过程。

本篇文章会给出Demo继承huggingface在deepspeed方法的LoRA方式与accelerator实现resume与推理。

一、huggingface的_save_checkpoint函数不同阶段保存内容介绍

假设:我以LLAVA模型举例,在训练时候调用deepspeed方法的LoRA方式与accelerator加速方法,那么我们可以看到模型在保存权重相关内容。

首先,是调用trainer类中_save_checkpoint,该_save_checkpoint包含save_model函数(位于trainer类中),而save_model函数中有一个_save函数(也位于trainer类中),而_save函数中有个 self.model.save_pretrained( output_dir, state_dict=state_dict, safe_serialization=self.args.save_safetensors )函数调用,该 self.model.save_pretrained就是peft_model.py文件的类class PeftModel(PushToHubMixin, torch.nn.Module)

http://www.lryc.cn/news/388093.html

相关文章:

  • ZooKeeper 入门:初学者指南
  • 【数据结构(邓俊辉)学习笔记】二叉搜索树04——AVL树
  • SpringMVC基础详解
  • SQL SERVER 设置端口
  • 华芯微特2024慕尼黑上海电子展预告
  • DETR End-to-End Object Detection with Transformers
  • 【后端面试题】【中间件】【NoSQL】ElasticSearch 节点角色、写入数据过程、Translog和索引与分片
  • 【TB作品】玩具电子琴,ATMEGA128单片机,Proteus仿真
  • 1974Springboot医院远程诊断管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
  • SQL游标的应用场景及使用方法
  • LLama-Factory使用教程
  • Java面试题:讨论在Java Web应用中实现安全的认证和授权机制,如使用Spring Security
  • 如何在Vue3项目中使用Pinia进行状态管理
  • 【初阶数据结构】深入解析队列:探索底层逻辑
  • Go 语言环境搭建
  • javascript v8编译器的使用记录
  • C语言--vs使用调试技巧
  • Spring Boot中的国际化配置
  • WPF的IValueConverter用于校验和格式化TextBox的数字输入
  • SQL Server的守护神:Always On 高可用性详解
  • Eureka入门
  • 高阶面试-netty部分
  • 在 C++的跨平台开发中,如何处理不同操作系统和编译器之间的细微差异,以确保程序能够稳定且高效地运行?
  • 独孤思维:脑子不好使,副业稳赚钱
  • 【数据结构】(C语言):二叉搜索树
  • 泛微开发修炼之旅--23基于ecology自研的数据库分页组件(分页组件支持mysql、sqlserver、oracle、达梦等)
  • 《昇思25天学习打卡营第4天 | mindspore Transforms 数据变换常见用法》
  • 【Python时序预测系列】基于LSTM实现多输入多输出单步预测(案例+源码)
  • git客户端工具之Github,适用于windows和mac
  • ai除安卓手机版APP软件一键操作自动渲染去擦消稀缺资源下载