【ai绘画】当我们在训练ai的时候,究竟在训练什么?ai训练前置知识(一)-凯发ag旗舰厅 二维码
发表时间:2023-09-23 15:41 本篇文章写于2023年9月,一些新的训练方法并没有在本篇专栏~ 包括 dreambooth、lora这两种比较新的训练方法,以后会写新的专栏继续介绍~ 看了这么多教程,从来没有人讲过这些东西,自己写一个。 可能很多人已经下载到别人分享的、各种地方来源的一些“模型”了,但是他们种类繁多——有pt文件,有图片格式的文件:甚至大小差别都很大,有的几十kb,有的要80、90mb左右。 那他们究竟都是什么,有什么区别? 首先我们要知道,目前来说一般用户可以训练的有两种小模型: 一个叫embedding(textual inversion),另外一个叫hypernetwork。分辨方法就看大小,小的就是embedding,大的就是hypernetwork 当然,还有一个最主要的巨大无比的模型(novelai泄露的那种、我们常说的4g、7g模型)这个是一般人甚至是实验室的计算资源无法训练的,我们暂且不提。 一. textual inversion 首先从textual inversion开始介绍。这个是目前所有训练教程都在教的一个东西,也是最好训练的,最常见的一种 这个方法训练出来的模型是embedding,大小约几十到几百kb,文件类型可以是.pt,.png,.webp等等。 使用这个模型的方法就是放在embedding文件夹里,然后在生成图片的时候就可以输入对应的tag来使用了。 这个textual inversion究竟是怎么工作的呢?来一起看下面这张图。(看不懂也不要紧) 我们在生成一张图片的时候,要提供prompt(也就是tag)。 然后这些词会通过一系列的复杂操作,变成连续向量的形式来指导ai去生成对应的图片。 embedding训练的过程,就是像在写一本词典。在这本“词典”中,添加一个词的解释 ——用他来翻译ai所不认识的词。来告诉ai:这个词、就是指的这个人物、东西、或者一个风格! 训练的过程就是从一堆给定的图片中寻找一个向量,来表示你给的词语。 然后再当读取到这个词语的时候,ai就知道了:哦 原来这个词对应的是这个东西 这个过程并不会触及到大模型的网络的任何参数以及权重,完完全全是作用在从输入的词到翻译成连续向量的过程上。这也是为什么这个训练出来的模型会如此之小、一张家用显卡在一个小时左右就可以轻松训练出来1w步数左右的模型。 这就是“文本反演”(textual inversion)——在文本编码器的嵌入空间(embedding)中找到新的伪词,使它可以捕获高级语义和精细视觉细节。[1] 二. hypernetwork 超网络是一种在不接触任何权重的情况下微调模型的概念。简单说就是用一个网络来生成另外一个网络的参数 [2] 工作原理是:用一个hypernetwork输入训练集数据,然后输出对应模型的参数,最好的输出是这些参数能够使得在测试数据集上取得好的效果。 也就是说,他会对整个模型进行微调、无论是什么tag全部起作用。 具体的东西过于技术了,有兴趣的朋友可以看引用的这篇论文,我就不再过多介绍了(其实是我太菜不敢教别人) 三. 对比与区别 说了这么多,那么如何选择训练哪种? 我自己的评价是,如果只是想学个人物、简单的画风、一律推荐用textual inversion。他能做到只影响部分、甚至是多种不同人物、画风混合等等操作。而且他训练简单方便、快捷。 hypernetwork训练经常就过拟合,寄了,不是很好训练。 四. 引用 [1] gal r, alaluf y, atzmon y, et al. an image is worth one word: personalizing text-to-image generation using textual inversion[j]. arxiv preprint arxiv:2208.01618, 2022. [2] ha d, dai a, le q v. hypernetworks[j]. arxiv preprint arxiv:1609.09106, 2016. |