AI画画模型成本被打下来了!预训练成本降85%,单张RTX 2070可微调

明敏 发自 凹非寺

量子位 | 公众号 QbitAI

火爆全球的Stable Diffusion,预训练和微调成本,正式被打下来了!

现在,预训练的速度被提升到6.5倍,成本直降85%;

微调只需RTX 2070/3050即可搞定,硬件成本直降近九成。

这就是国产项目Colossal-AI最新开源的加速方案。

开源地址:https://github.com/hpcaitech/ColossalAI

今年,Stable Diffusion可谓火爆圈内圈外,而且最近凭借免费开源还效果好的特点,进一步出圈,让人看到了AIGC的巨大潜力和前景。

艺术圈和AI圈大神都争相拿它创作,GitHub star数已达33.5k,背后公司估值甚至飙升至10亿美金。

Stable Diffusion由此也成为扩散模型中最火出圈的项目。

BUT,它唯一的缺点是,训练成本真的很高!

仅Stable Diffusion v1 版本的模型单次训练便需要150000个A100 GPU Hour;

微调至少需要RTX 3090/4090这类高端消费级显卡。

其背后公司Stability AI为了维护运营和算力需求,拥有一个由4000块A100组成的GPU集群,光成本就超过5000万美元(折合人民币约3.6亿)。

实际上,由于扩散模型本身原理机制特殊,导致它本身对硬件显存、计算速度的要求都很高,而且使用的数据库也是千亿量级的。

所以想要提升训练速度、降低成本,还真不是件容易事。

那么,Colossal-AI到底是如何实现的?

从显存入手

首先来解释,为什么扩散模型对硬件的要求高。

扩散模型主要包括两个过程:前向扩散和反向生成。

前向扩散是对一张图像逐渐添加高斯噪声,直至变成随机噪声。

反向生成是去噪声过程,将一个随机噪声使用多个U-Net进行逐渐去噪,直至生成一张图像,这也是扩散模型的训练过程。

相比于传统端到端深度学习模型,扩散模型的训练过程显然更为复杂。

其中Stable Diffusion除了扩散模型本身,还包含一个Frozen CLIP Textcoder 来输入文本提示词(text prompts)、一个自动编码器(Autoencoder)将高分辨率图像压缩到潜在空间(Latent Space),并且还要在每个time step计算loss。

这样一来,训练方案对显存开销、计算速度都提出了极大挑战。

针对如上问题,Colossal-AI分别从预训练、微调两个步骤上进行了优化。

预训练阶段,主要做的就是降低显存开销。

一般来说batch size越大,训练速度越快,扩散模型亦是如此。

通过ZeRO、Gemini、Chunk-based内存管理等策略以及Flash Attention模块优化Cross-attention计算,Colossal-AI可以让用户在8GB显存的普通消费级显卡(如RTX 2070/3050)上训练扩散模型。

如果在A100上,则能将单卡Batch Size直接扩大到256。

对比Stable-diffusion-v1 FP32的Distributed Data Parallel (DDP) ,训练可以提速6.5倍。

由此可以大幅缩短训练时长,从而降低高达数百万美元的训练成本。

在微调上,对于大多数AIGC玩家而言,都倾向于选择使用开源的预训练模型权重来进行微调个性化下游任务。

一方面是由于扩散模型本身复杂,另一方面是Stable Diffusion预训练采用的是LAION-5B数据集,包含5850亿个图片文本对,需要240TB储存空间。

但现有的很多开源微调方案中,使用的训练并行方式主要为DDP,这导致训练过程中占用的显存很多。

即使微调也至少需要RTX 3090/4090这类最高端的消费级显卡。

加之,现阶段很多开源的训练框架都没有给出完整的训练配置与脚本,还需要自己来做一些补全和调试工作。

基于现状,Colossal-AI提出了首个同时开源完整训练配置参数和训练脚本的方案。

这种方案一方面可以让用户不再局限于现有的权重推理,更加灵活地训练出针对新下游任务的最新版细分模型,扩大应用范围;

另一方面,由于引入了显存优化等技术,方案支持在普通个人电脑的单张显卡(如GeForce RTX 2070/3050 8GB)上快速完成微调任务。

要知道,RTX 2070现在的价格可比3090/4090便宜了将近9成。

此外,对于速度不敏感的任务,还可以进一步使用Colossal-AI NVMe,即利用低成本的硬盘空间降低显存消耗。

优化秘籍是啥?

所以显存开销是通过哪些技术降下去的?

主要基于三个方面:

  • ZeRO+Gemini
  • Flash Attention
  • FP16、acitvation checkpoint等常见优化技术

先来看ZeRO+Gemini。

ZeRO是零冗余优化器。

这种方法主要通过切分优化器状态、梯度、模型参数,使GPU仅保存当前计算所需的部分,从而来消除数据并行、模型并行中存在的内存冗余。

和经典的数据并行策略相比,它能极大提高内存使用效率,同时不牺牲计算粒度和通信效率。

与此同时,Colossal-AI还引入了Chunk机制进一步提升ZeRO性能。

将运算顺序上连续的一组参数存入一个Chunk中(Chunk即一段连续的内存空间),每个Chunk的大小相同。

Chunk方式组织内存可以保证PCI-e和GPU-GPU之间网络带宽的高效利用,减小了通信次数,同时避免潜在的内存碎片。

Chunk机制

Gemini是Colossal-AI的异构内存空间管理器。

它支持将优化器从GPU卸载到CPU,以节省GPU内存占用。

打破GPU内存墙的限制,可以实现同时利用GPU内存和CPU内存(由 CPU DRAM 或 NVMe SSD内存组成),从而进一步扩展可训练模型规模。

通过ZeRO+Gemini提升硬件的模型容量

第二方面是Flash Attention机制。

LDM(Latent Diffusion Models)是改善扩散模型效率的一种方法,它通过在模型框架中引入交叉注意力机制(Cross-Attention)来实现多模态训练,使得扩散模型可以更灵活地实现对class-condition, text-to-image, layout-to-image的支持。

但是Cross-Attention层对比原始扩散模型的CNN层增加了额外的计算开销,极大增加了训练成本。

相比之下,Flash Attention是针对长序列Attention的加速版本。

它使用Flatten来减少GPU高带宽内存(HBM)之间的内存读/写次数,Flash Attention同时针对块状稀疏的Attention,设计了一个近似的注意力算法,比现有任何attention方法都要快。

它能将Attention的速度提升104%,将端到端训练的峰值显存减少23%。

Flash Attention

除了以上两方面,Colossal-AI还集成了FP16、activation checkpoint等常见优化技术。

例如,activate checkpoint通过用计算换取内存来工作。

它避免存储整个计算图的所有中间激活用于反向计算,在检查点部分不保存中间激活,而是在反向传递中重新计算它们,进一步降低了显存。

而FP16在基本不影响精度前提下,将原本的32位浮点数运算转为16位,降低显存使用,提升计算效率。

上手也超简单

到了实操环节,Colossal-AI只需少量代码,即可快捷启动扩散模型训练。

不同于常见PyTorch开源项目,Stable Diffusion是基于PyTorch Lighting搭建的。

PyTorch Lightning为流行的深度学习框架PyTorch提供了简洁易用、灵活高效的高级接口,为广大AI研究人员提供了简洁易用的高层次抽象,从而使深度学习实验更易于阅读和再现,

受PyTorch Lightning的邀请,Colossal-AI已集成作为PyTorch Lightning的官方大模型解决方案。

以Stable Diffusion为例,启动代码如下(Python):

from colossalai.nn.optimizer import HybridAdamfrom lightning.pytorch import trainerclass MyDiffuser(LightningModule):…def configure_sharded_model(self) -> None:# create your model hereself.model = construct_diffuser_model(…)…def configure_optimizers(self):# use the specified optimizeroptimizer = HybridAdam(self.model.parameters(), self.lr)…model = MyDiffuser()trainer = Trainer(accelerator=”gpu”, devices=1, precision=16, strategy=”colossalai”)trainer.fit(model)

除此之外,Colossal-AI和PyTorch Lightning也对OPT、HuggingFace等热门模型和社区提供了良好支持及优化。

低成本微调

在微调方面,Colossal-AI提供了基于HuggingFace上开源的Stable Diffusion模型权重进行微调的功能。

用户只需简单修改Dataloader载入自己的微调数据集并读取预训练权重,再修改参数配置yaml文件并运行训练脚本,便可在个人电脑微调属于自己的个性化模型。

model:target: ldm.models.diffusion.ddpm.LatentDiffusionparams:your_sub_module_config:target: your.model.import.pathparams:from_pretrained: ‘your_file_path/unet/diffusion_pytorch_model.bin’…lightning:trainer:strategy:target: pytorch_lightning.strategies.ColossalAIStrategyparams:…python main.py –logdir /your_log_dir -t -b config/train_colossalai.yaml

快速推理

Colossal-AI同时支持原生Stable Diffusion推理管道。

在完成训练或精调后,只需直接调用diffuser库并加载自己保存的模型参数,即可直接进行推理,无需进行其他改动。

这样可以方便新用户熟悉推理流程,并让习惯使用原版框架的用户快速上手。

from diffusers import StableDiffusionPipelinepipe = StableDiffusionPipeline.from_pretrained(“your_ColoDiffusion_checkpoint_path”).to(“cuda”)image = pipe(‘your prompt’, num_inference_steps=50)[“sample”][0]image.save(‘file path’)

上述推理流程生成的作品

One More Thing

实际上,如上提到的Colossal-AI不只能用来加速训练扩散模型,它面向各种大模型。

通过多维自动并行、异构内存管理、大规模优化库、自适应任务调度等方法,Colossal-AI可以高效快速部署AI大模型训练和推理,降低应用成本。

自开源以来,Colossal-AI多次在GitHub及Paper With Code热榜上位列世界第一。

经国际专家的严格评审,Colossal-AI已成功入选为SC、AAAI、PPoPP等国际AI与HPC顶级会议的官方教程。

目前,其相关解决方案已经成功在自动驾驶、云计算、零售、医药、芯片等行业知名厂商落地应用。

例如针对生物医药行业的蛋白质结构预测模型AlphaFold,基于Colossal-AI的优化方案,FastFold成功将单张GPU可推理氨基酸序列长度扩增到一万,覆盖99.9999%的蛋白质。

只用笔记本上的消费级显卡就能解析90%蛋白质。

而且还能对训练、推理进行全流程并行加速,目前已助力多家新型药物研发企业缩短开发流程,降低开发成本。

传送门

开源地址:https://github.com/hpcaitech/ColossalAI

参考链接:[1]https://medium.com/@yangyou_berkeley/diffusion-pretraining-and-hardware-fine-tuning-can-be-almost-7x-cheaper-85e970fe207b[2]https://github.com/CompVis/stable-diffusion[3]https://arxiv.org/abs/2205.14135[4]https://arxiv.org/abs/2112.10752[5]https://openai.com/blog/triton/

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#loooy.com)删除。
(0)
上一篇 2022年11月9日 21:18
下一篇 2022年11月9日 21:19

相关推荐

  • 旅游营销论坛(旅游营销论坛有哪些)

    今天小编给各位分享旅游营销论坛的知识,其中也会对旅游营销论坛有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 旅游营销怎么做? 新冠肺炎疫情催生了“宅经…

    2022年11月25日
  • 龙虎榜|以岭药业今日涨停 一机构净买入1.35亿元

    【龙虎榜|以岭药业今日涨停 一机构净买入1.35亿元】财联社11月17日电,以岭药业今日涨停,成交额85.76亿元,换手率15.13%,盘后龙虎榜数据显示,深股通专用席位买入2.5…

    2022年11月17日
  • 《四目神一再会一》:一场时代迷信引发的悲剧.

    文章来源:小黑盒——fw怪 叁佰尊重原创,版权为原作者所有,如有侵权,请联系我们删除 初代版《四目神》于2016年发行,是SEEC继《爱丽丝的精神裁判》后的又一力作 seec的手机…

    2022年11月11日
  • 部落冲突8本(部落冲突8本最强布阵可复制)

    今天小编给各位分享部落冲突8本的知识,其中也会对部落冲突8本最强布阵可复制进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 2021《部落冲突》八本最难打的防…

    2022年11月24日
  • 纳赛尔:如果我能决定,想给梅西和姆巴佩一人一个奖杯

    直播吧12月19日讯 今天凌晨,阿根廷在世界杯决赛点球击败法国,赛后巴黎圣日耳曼主席纳赛尔接受了媒体采访。 纳赛尔说道:“我为卡塔尔感到自豪,我们证明卡塔尔也能组织世界最好的赛事,…

    2023年3月1日
  • 北京国安等再被强制执行3亿 累计被执行超8亿

    天眼查App显示,近日,北京国安足球俱乐部有限责任公司新增被执行人信息,执行标的约3.4亿元,被执行人还包括中赫集团旗下腾赫(北京)数字科技有限公司以及中赫集团股东周金辉、李彩霞等…

    2022年11月19日
  • lol奥拉夫(lol奥拉夫是哪里人)

    本文主要讲的是lol奥拉夫,以及和lol奥拉夫是哪里人相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 lol冰河时代奥拉夫是限定吗 lol冰河时代奥拉夫,只是普通…

    2023年2月28日
  • 小主人吹葫芦丝,被狗子一爪拍地上:什么玩意,狗都听不下去

    ‍嗨,我是小软柿子。 咱就是说,狗狗嫌弃主人,还真的是明目张胆啊… 10月21日,西安的一位网友分享了十分搞笑的一幕。 女儿在家开心地练习吹葫芦丝,结果…… 家里的狗子…

    2022年10月27日
  • 陈实与梁上君子(陈实与梁上君子文言文启示)

    本文主要讲的是陈实与梁上君子,以及和陈实与梁上君子文言文启示相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 陈实与”梁上君子” 原文 陈寔…

    2023年1月3日
  • 坚持质量第一,铆定以质取胜

    本报长沙讯 14日下午,2022年湖南省质量大会在长沙召开,7家组织、1名个人荣获第七届省长质量奖。省委副书记、省长毛伟明强调,要深入贯彻习近平总书记关于质量工作的重要论述,深入实…

    2022年10月10日