文章目录
- 前言
- 一、LoRA训练与Resume方法Demo
- 二、权重载入
- 三、LoRA权重载入(def load_adapter(self, model_id: str, adapter_name: str, is_trainable: bool = False, **kwargs: Any))
- 四、optimizer、scheduler与状态_load_rng_state载入
- 五、LoRA训练推理合并模型方法
- 六、LoRA权重合于模型权重保存
前言
在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文件配置,其源码如下: