Datawhale2024第四期方向1AIGC粗略描述
文章目录
前言
由于我并不擅长诸类事物,因此,我仅能凭借自己薄弱所见所闻、所知所想来编写这段笔记。若出现可笑错误,还请各位可以点出,若能消耗些时间的话。
本笔记所引用或观点涉及或借鉴的网址,我将会放在“来源”部分。
第一部分:AIGC闲谈
这里是我的一些闲聊,各位若不愿,也可以跳过()
什么是AIGC?
AIGC(Artificial Intelligence Generated Content)是人工智能生成内容的缩写。它指的是利用人工智能技术自动生成文本、图像、音频、视频等多种形式的内容。也就是说,AI绘画是AIGC的一部分。
对AIGC的回顾
我依稀还记得,AIGC方面的技术的“井喷”,应该是从两年前开始的。这方面的成就,在短暂的两三年间为世人知晓。我最初注意到的,是TTS的VITS模型。那时候算是AI在普通大众间的“起步”时期。
但没想到的是,先前两个月还只能看见抽象而不可名状的AI图像,不久之后SD闪亮公布于世(当然,那时候更加令人注目的,应该是Novel AI。“该功能基于Stable diffusion模型,于2022年10月3日正式推出,具有文本生成图片功能与图片生成图片功能,图片风格以一种日本绘画风格二次元为主。”来自原文),带来了对“旧”AI绘画的致命打击(当然,这只是夸张的说法。毕竟都需要慢慢发展过来)。当时我也是乘上了这阵风进行了一些探索,不过不是在Novel AI,因为那时候的我没有手段使用,而是在国人自主搭建的一些SD网站上(纪念当时免费而先锋的大乘算法)使用。也算是在班级里走上了“开眼看世界”的道路。
不久后(2022和2023的交界处时间),ChatGPT又席卷天下(尽管说貌似2020年的GPT-3已经引发一次热潮,但我没有记忆(不是)),接着又是一次争先恐后的大语言模型的发布(当然,有一些是换皮,本质上是旧的,比如说使用了GPT-2的内核)。
最近数月(指今年4月左右起),Suno,AI创作音乐又霸占了不少的热门。而Sora,以及类似的视频生成AI,也是饱受关注。
发展是否是一直加速,不敢肯定,因为我认为大抵还是有周期性爆发的可能性的。只能说,发展,的确是越发让人眼花缭乱,虚拟世界,也是越发让人痴迷、狂喜以及恐惧、崩溃,甚至到了令人痴愚的程度。当然,这也得看人。放在以前,你说上网,若未玩游戏,未逛贴吧一类网址,或许便只是信息收集,但现在,完全是打开了另一扇大门——全新的,该遍及或者需要遍及而受限的AIGC的大门。灵感,越发成为了宝贵的财富。
这对于普通人来说究竟是惊喜还是潘多拉魔盒(对于顶尖部分的技术人员,他们负责是进步与部分调节,大抵罢),还需要看趋势。
对于AI绘画方面的排斥
这是再正常不过的事情。 至于怒火,我认为有两派,一派,是担心抢饭碗的,另一派,是煽风点火的(这不是废话吗)。现实中的纷争,也大抵是这样,而部署到网络上,便可以肆意的扩大。对于这部分,我不进行讨论,因为没有必要,也没有时间与空间。
但是对于AI图片下毒方面的,我想提一嘴。这个具体事件可以直接到“来源”里找链接。同时也有一名up部分说的很有道理,大致就是对抗式学习(大抵类似于对抗式神经网络。题外:刚看完侦探AI和犯人IA不久,就看到下毒,就想到了()),如果没有能力识别下毒,那么算法就还是不成熟的。
第二部分:官方的消息与准备环境
定义官方
这里的官方,指的是Datawhale和阿里云(包括了天池)。
前提步骤的简要安排(再具体请参照Datawhale上方的教程)
1、报名赛事:报名赛事为“可图Kolors-LoRA风格故事挑战赛”,当然,这个按照Datawhale的说法,是推荐性,目的为增加体验。
2、获得可用GPU算力:按照推荐,使用阿里云的交互式建模 PAI-DSW,当然,如果以前领取过,便只能另找算力(不过既然都会领取阿里云的,大抵也是知晓还有别的什么GPU算力网站了罢),当然,如果你的个人电脑拥有足够强的算力与充足的显存的话,也可以“自我消化”(不过大抵损伤会比较大罢)。因为微调对算力的需求与推理对算力的需求完全是两个层面的事物。
3、启动算力:如果使用的是阿里云的试用资源,那么请按照Datawhale教程部分进行连接,因为教程中已经解决了大量的可能出现的问题,这比我再只言片语描述好用。如果是本地的话,一般来说使用了.ipynb文件,那么请先安装Jupyter Notebook,若使用了其他佬的一键部署包的话,或许就有直接训练的模块。如果是使用其他的算力资源(比如说来自算力互联或算力云的话)一般来说两种思路,一个是租赁只安装了基本环境的算力,将官方给出的.ipynb文件等文件上传,另一个是使用社区镜像中的训练包。正常开启实例,完成这一步。
另外:
为什么使用Linux为主,而不使用更加大众的Windows系统?
开源软件库 :Linux拥有丰富的开源工具包,如TensorFlow, PyTorch, Scikit-learn等深度学习框架,这些都在Linux上有很好的兼容性和社区支持(虽然不能说Windows没有这些框架,但Linux可以很好的将自身与Git等融合在一起)。
性能和稳定性 :Linux通常是服务器级的操作系统,优化了内存管理、多任务处理和I/O效率,能提供更高的并发性和稳定性,这对于需要大量计算资源的AI项目来说非常重要(比如一个Windows系统就可以吃你很多的性能)。
安全性 :Linux有更强的安全特性,适合处理敏感数据,而Windows相对容易受到病毒和恶意软件攻击(安全也是要与时俱进的,不修补也不会一直安全)。
开源社区活跃 :Linux有一个庞大的开发者社区,遇到问题时更容易找到解决方案,并且可以直接查看源码,进行定制或优化。
成本考虑 :虽然Windows有专业版供企业级使用,但对于大规模分布式计算,Linux通常是免费且更经济的选择(我们要相信Windows Server是幸福的)。
来自天池的说明
是开源的 Diffusion 引擎,旨在将基于 Diffusion 的丰富图像及视频模型集中到一起,实现开源生态互联,从而充分发挥其强大的生成能力,目前 DiffSynth-Studio 已经支持了 Stable Diffusion、ControlNet、AnimateDiff、IP-Adapter、混元 DiT、Kolors、ExVideo 等模型,且提供了简洁易用的训练框架,该框架可以轻松地实现 Kolors 等模型的 LoRA 训练。 DiffSynth-Studio
是专为大模型训练设计的一站式多模态数据处理系统,在图像处理上,Data-Juicer 提供了丰富的算子,包括图像自动化标注、图像有害内容识别与过滤、水印检测、图像美学评估等。用户可以方便地使用 Data-Juicer 处理和过滤图像,获得高质量的训练数据,从而实现惊艳的图像生成效果。 Data-Juicer
在模型训练方法上,参赛选手可以从多个角度入手提升模型生成的图像质量,我们提供了一些训练经验,供选手参考:
使用高质量数据集训练模型,例如
1、对图像数据集进行美学评估并过滤掉低美感图像
2、为图像数据生成对应的描述文本,提高训练数据中的文图相关性
调整训练脚本中的参数,例如
1、对于特定风格的 LoRA 训练,LoRA rank 调大后(例如 16)通常效果稍好
2、对于特定实体的 LoRA 训练,LoRA rank 调小后(例如 4)通常效果更稳定
搭建更强大的工作流,例如
1、采用低分辨率生成加高分辨率润色的方式,分两阶段生成高清大图
文件说明:
baseline.ipynb:LoRA 训练脚本
ComfyUI.ipynb:ComfyUI 脚本
kolors_example.json:ComfyUI 工作流(不带 LoRA)
kolors_with_lora_example.json:ComfyUI 工作流(带 LoRA)
第三部分:运行程序与报错(不是)
你已经开启了实例并且进入,那么是时候报错了(不是)!
LoRA:我们为了什么?
该部分的目的为LoRA模型的训练。
定义:参数高效的微调技术
LoRA (Low-Rank Adaptation)为用于微调大型预训练模型的技术。“在不改变原始预训练权重的基础上,通过引入可训练的低秩分解矩阵来调整模型参数,以适应特定任务或领域。”来自deepthinker\爱松鼠的狐狸
作用:以小搏大,减少风险
对比于Checkpoint 的动辄2G+的大模型来说,LoRA模型的大小便算小了(当然,LoRA也或许有很大的。而且Checkpoint一次生成只要一个,而LoRA模型却是可以塞很多,或许你一次使用的LoRA模型的总容量大于Checkpoint的也是很有可能的。不过这些话都是留给推理的。在训练上,连GPU都可以算是一笔小的开支(计算了所有的价值的时候))
但是就算是小,它对整体的影响也是有目共睹的。这个可以看“额外话题”中的“LoRA人物模型的认知”部分。
在减少风险方面,可以认为总的上是减少了资金损失的风险。因为模型出现欠拟合或过拟合(当然,欠拟合容易调,但过拟合就可怕了,对于一个本身庞大的模型来说)就需要继续或重新微调。因此使用LoRA这样的小模型,相当于是将风险打包出去了。一锅汤烧坏了大不了最坏打算是倒掉,但一个厂的汤都按照这样的错误烧了,无论怎样,都会造成巨大的损失(当然,这个比喻不太合理,我只是想说大模型与小模型的微调后果而已)
同时,对一个大模型直接进行微调,在算力上的消耗必然是高于一个小模型的(使用了相对大小二字),而效果大抵又不如那个小模型的效果。
原理:矩阵分解
详情也请直接查阅“来源”中的文章URL。
baseline代码:从使用到理解的伟大飞跃
因为感觉按照notebook上的代码基本就可以正常过下来,而非正常情况在静态的该笔记上也无法逐一排除,不如引流到Q&A上,因此,这里不会详细。
第一步:安装
pass
第二步:下载数据集
理论上讲,LoRA训练甚至可以做到极致的压缩同时保证模型质量,我曾见过5图稳定一个角色的(当然,还有强者可以1图出大模型,不过现在讨论的是LoRA)。不过现在还只是初始阶段,所以也就不去深究它的数据质量了。
第三步:处理数据
pass
第四步:训练模型
pass
推理:运行模型尝试效果
按照代码上的要求即可,上方的词语可以自行查阅,或者看下方推荐的两篇文章的解释。互联网时代,有手不是最重要的,重要的是要动手。
第四部分:关闭实例
如果不心疼计算时或者是按量付费的金钱惩罚的话,你甚至可以开到它倒闭()。当然,我们需要及时关闭,这既是对自己钱包的保护,也是对公共资源的合理使用(虽然说没有负载的话,应该说只是占用了一个算力,对本身的伤害应该不大。甚至算是给它带薪休假罢)。
第五部分:问题们,找具体
可以参考Datawhale的Q&A部分,因为,它是活动的,你出现的问题大概率也会被别人复现,总有概率在上方出现并被解答,就算没有,也可以自己去提问,不是吗?网址一致放在最下方“来源”。
第六部分:额外话题
Civit AI众称C站,是一个AIGC模型的集中地,我们所需的,仅是VPN与一个该网站的账号即可。
使用LoRA模型,尤其是人物的LoRA模型时,大抵并不是单纯输入LoRA模型关键词即可的,还需要将该人物的具体特征输入(也许是我的错误使用?)。我认为,这里LoRA模型主要还是将你输入的关键性特征(模糊)转化生成具体的符合该角色特征的形式。比如说对于爱丽丝·威震天来说,一个发带,若没有LoRA模型的支撑,那么它将有n多种变化形式,而具有了LoRA模型后,这个发带的基本样式就基本固定了。
第七部分:短暂的名词解释与总结
prompt:提示词。描述文本、风格、属性与条件,分为正向提示词和反向提示词。所谓的“大召唤术”(当然,这已经是SD刚热门时的梗的)。
以及,我认为,名词解释,仅仅进行英译中的翻译是远远不够的。需要学习的,不是它叫什么,而是为什么这里是它,因此,我们应该需要主动去查找,或是借助AI工具进行信息的搜索与分析。当然,在更多情况下,我们或许并不是真正需要去弄懂该项目代码的每一步,大多数人还是仅仅需要的,是一个工具,而大多数人,连工具也找不到、用不到、不敢用、懒得用,最后导致了不会用。
第八部分:来源
LoRA模型解释与实现原理: https://www.deepthinker.top/article/ddbbd031-07e4-4ee4-9e29-6a027f424bf0
AI下毒与AI绘画的对抗: 【深夜面馆】“AI毒丸计划”VS“AI绘图”,一场悄然发生的行业变革【孙工】_哔哩哔哩_bilibili
AI绘图推理的本地部署: 【AI绘画·24年4月最新】Stable Diffusion整合包v4.8发布!解压即用 防爆显存 三分钟入门AI绘画 ☆更新 ☆训练 ☆汉化 秋叶整合包_哔哩哔哩_bilibili
AI绘图SD从原理到训练: 【AI绘画】深入理解Stable Diffusion!站内首个深入教程,30分钟从原理到模型训练 买不到的课程_哔哩哔哩_bilibili
C站: https://civitai.com/
阿里云天池可图叙事比赛: 可图Kolors-LoRA风格故事挑战赛_创新应用大赛_天池大赛-阿里云天池的赛制 (aliyun.com)
魔搭社区: https://www.modelscope.cn/
Datawhale的问题汇总: QA & 其他彩蛋 - 飞书云文档 (feishu.cn)
推荐笔记1: Datawhale AI夏令营第四期 魔搭-AIGC方向 task01笔记-CSDN博客
推荐笔记2: Datawhale AI夏令营第四期魔搭-AIGC文生图方向Task1笔记-CSDN博客