00:00
各位小伙伴们大家好,接下来我们来看一下dream boss进行模型训练的整个过程,那dream boss去训练stableion的代码都在脚本dream bos格子衫文件当中,在这个文件当中我们就实现了整个的一个模型训练过程,那下面我们就给大家来分析一下我们这个文件当中是如何来进行模型训练的,那首先呢,我们要介质一些全局变量,那我们来看一下我们设置了有哪些全局变量,那这一部分哈,全局变量的设置呢,是为了在user环境当中进行模型训练,模型转换以及保存啊,提供必要的环境设置和路径的定义,那主要的实现步骤哈,我们就给大家来一行一行框分析一下,那在这里首先我们要导入必要的工具包,那就是我们的system啊,还有OS这两个模块,那导入这两个模块之后,我们将minIoTa的环境。
01:00
境添加到系统的环境变量当中,那这里我们是设置系统的环境变量,设置好环境变量之后,然后呢,我们再把hugging face的缓存路径指定好,也就说在我当前的这个cash路径下,就是我们的缓存路径,设置好缓存路径之后,接下来我们来获取当前的工作路径,并把这个工作路径啊存放在这个DB script work pass,这就是我们当前的工作路径,这是我们在这里去设置我们的工作路径好,设置好工作路径之后,然后我们再去定义一下我们的训练脚本,转换脚本以及反向转换脚本。首先我们来看一下第一个是我们的trainer,那trainer就是指定我们的训练脚本是使用tra boss.py来完成的,那这里面就定义了模型训练的整个过程,那这个脚本我们赋值给trainer啊,用它来进行模型。
02:00
练,然后再一个就是我们的转换脚本,那转换脚本是将我们的模型从stable diion的格式转换为的格式,也就说我们通过convert-V3来完成。当我们训练完成我们的模型之后,我们需要再从user的格式转换成stableion的格式,那我们就需要使用这个bank convert.py文件,那我们把它复制给这个变量,所以当我们要使用训练脚本、转换脚本和反向转换脚本的时候,就直接指定这三个变量就可以了,就是我们在这里定义的这几个脚本,获取到这些脚本之后,接下来我们再定义一下原模型路径和目标模型路径,那这是我们在训练前哈,将我们的预训练模型从SD模式,也就说stable diion使用的模式转换成我们的diion使用的模式。这两个文件夹当中分别。
03:00
存储预训练模型的stable diffusion的格式和预训练模型的diusion的结果。好,这是我们在这里设置的原模型路径和目标模型路径,设置好这些之后,大家来想想,当我训练完之后,我是不是把我的模型保存下来,那保存路径我们就定义在output Di当中,然后是在这个result文件夹下保存我们最终的训练结果以及产生的一些图片的效果,这是最终的保存路径。那在这里大家想我这个保存路径是不是有可能不存在呀?当这个路径不存在的话,我就创建一下模型保存路径,创建好之后,当我训练完我的模型,我就可以直接把模型权重保存在这里面了。大家注意一下,我们现在保存的是user的模型结构,当你要转换成stableion,可以来进行使用的格式的话,那我们还要使用be。
04:00
可convert.py文件来完成,那这是我们在这里定义的这些全局变量,好,全局变量的介绍我们就给大家说这些,然后呢,接下来我们到我们的Jupiter lab当中来给大家去看一下这一部分的实现,那在Jupiter lab当中哈,在我们的dream boss当中,就在这里dream boss,然后格子衫当中,我们来实现我们整个的模型训练过程,那模型训练过程当中的第一步就是全局变量的一个设置,那刚刚已经给大家说明过了,在这里我们需要设置一些必要的模块,需要来添加我们的环境变量,需要设置当前的工作路径,定一些训练转换脚本和反向转换脚本,还要指定原模型路径和目标模型路径,最后呢,定一下模型保存路径就可以了,那我们设置好这些全局变量之后,到后面再需要使用它的时候,我们就指定相应的变量就OK了,好,那我们首先呢来。
05:00
进行一下,把这些全局变量给它设置好,设置好全局变量之后,我们要训练模型,是不是首先得把我们stable DeFion当中的模型转换成DeFion当中需要的模型格式啊?所以下面我们回到PPT当中来给大家去看一下如何将stable的模型格转化为所需要的模型格式。首先呢,我需要指定我们当前的原模型在哪里,也就说我们指我们的原模型的路径,就是在model-SD下面是我们的model safer,这是我们的原模型路径,也就是stableion可以直接用来预测的模型,那这是stableion来进行预测的模型,但是我们现在要把它转换成Di user所需要的模型结构,也就是说我需要从这个saver的形式转成user。
06:00
模型的结果,那这里也就是我们的hugging face的模型,所以在这我指定好这个检查点之后,调用我们的转换方法,前面我们定义好的convert脚本,我们定义这个convert去执行convert脚本,然后它的检查点路径是我们在上面刚刚定义好的这个safer,然后转换为hugging face模型所需要的结果之后,把它保存在我们的model names当中就可以了,也是说把它保存在我们的model-HF当中就OK了,这是我们在这里这个进行模型转换的一个代码实现,那实现的效果呢,就是本来你是一个model shiftr这样的形式,转换完之后大家看一下我在这里就有了什么,哎,就有了schedule,也说采样算法,然后呢,文本嵌入的方法,分词的方法,Unit vae的方法以及model index。接下这个文。
07:00
件,那这些模型的表示就可以在user当中来进行相应的处理了,好,那下面我们再到Jupiter lab当中来给大家去看一下啊,那在这里进行转换的时候,你只要运行这两行代码就可以了,那这里进行转换的时候大概需要几分钟的时间啊,那这里我们就不给大家去运行了,我们直接来看一下原来的时候在我们的weight SD当中是不是有一个model.saver也就是我们的原模型,那我把这个原模型进行转换之后,它会保存在fit-HF当中,那这里面就是我们的Di user可以使用的模型权重来进行微调,那这是我们在这里这个模型转换它的一个内容,那这个模型转换的我们就给大家说这些,然后我们把视频暂停一下,下面我们来看一下提示词的设置。
我来说两句