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

huggingface的lora与resume方法训练模型(以BERT为列)

文章目录

  • 前言
  • 一、LoRA训练与Resume方法Demo
    • 1、LoraConfig配置文件介绍
    • 2、PEFT的LoRA训练的完整Demo
    • 3、LoRA训练与LoRA的resume训练
      • 1、LoRA训练
      • 2、LoRA的resume训练
    • 4、PEFT的LoRA训练方法
  • 二、权重载入
    • 1、参数
    • 2、文件路径获取
    • 3、config加载更新
    • 4、权重文件加载
      • 1、不同条件权重载入
      • 2、os.path.isfile(weights_file) or os.path.isfile(safe_weights_file)条件载入权重
      • 3、is_peft_available() and isinstance(model, PeftModel)条件载入权重
      • 4、else条件载入权重
    • 5、特定文件重点解释
  • 三、LoRA权重载入(def load_adapter(self, model_id: str, adapter_name: str, is_trainable: bool = False, **kwargs: Any))
    • 1、load_adapter完整源码
    • 2、adapter的config参数处理
    • 3、LoRA权重文件获取(file_name)
    • 4、LoRA权重文件加载
    • 5、载入LoRA权重
      • 1、完整源码(set_peft_model_state_dict)
      • 2、获取config值
      • 3、获得Lora权重值
      • 4、模型加工为模型能加载Lora权重变量
      • 5、模型加载LoRA权重
      • 6、set_peft_model_state_dict返回值
    • 6、load_adapter返回值
  • 四、optimizer、scheduler与状态_load_rng_state载入
  • 五、LoRA训练推理合并模型方法
    • 1、LoRA权重合并Demo
    • 2、LoRA权重合模型变量变化
  • 六、LoRA权重合于模型权重保存
    • 1、保存合并lora权重Demo
    • 2、保存合并权重说明

前言

在huggingface中,很多情况是使用LoRA方法来训练模型。有关LoRA训练获得权重与加载,以及如何LoRA继续resume训练等问题,尚未有一个较好文章说明。因此,本文将详细说明LoRA相关内容。首先介绍了LoRA(Low-Rank Adaptation)的原理及相关内容;其次也对训练相关各种模型权重、LoRA权重、配置文件、优化器、调度器以及训练器状态和随机状态保存方法;接着给出了关于LoRA训练与恢复方法Demo与介绍,包括LoraConfig配置文件介绍和PEFT的LoRA训练;并进一步解读huggingface训练期间的LoRA权重等内容加载源码解读;最后,给出训练完后LoRA权重如何与原始模型合并Demo,以此实现模型推理。而本文是给出LoRA训练Demo与LoRA的resume的Demo及LoRA合并推理和保存内容。

提示:huggingface的lora与resume训练原理与方法!

一、LoRA训练与Resume方法Demo

1、LoraConfig配置文件介绍

在训练之前,我们有必要解读下相关Lora的config文件配置,其源码如下:


                

http://www.kler.cn/news/367171.html

相关文章:

  • 【设计模式-状态模式】
  • nfs服务部署案例
  • 模型 支付矩阵
  • 【我的 PWN 学习手札】setcontext + shellcode
  • ubuntu22.04安装Python的uwsgi
  • 代码随想录算法训练营Day39 | 卡玛网-46.携带研究材料、416. 分割等和子集
  • unordered_map和unordered_set相关知识详细梳理
  • Linux | 配置docker环境时yum一直出错的解决方法
  • [软件工程]—嵌入式软件开发流程
  • 探索Python安全字符串处理的奥秘:MarkupSafe库揭秘
  • 华为配置 之 端口隔离
  • 腾讯云控制台URL刷新URL预热 使用接口刷新
  • PgSQL常用SQL语句
  • windows DLL技术-AppInit DLL技术和DLL的最佳做法
  • Linux 斐波那契数列 递归汇编实现
  • python爬虫:HTTP、Cookie和会话管理详解
  • WPF+MVVM案例实战(六)- 自定义分页控件实现
  • 华为网络管理配置实例
  • [Ansible实践笔记]自动化运维工具Ansible(一):初探ansibleansible的点对点模式
  • TensorFlow面试整理-TensorFlow 基础概念
  • JavaScript part2
  • jenkins 作业添加用户权限
  • 练习LabVIEW第十八题
  • 在xml 中 不等式 做转义处理的问题
  • Nginx16-Lua扩展案例
  • Django从请求到响应