AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

2023-01-14 0 1,098

倜傥 丽翔 凹非寺物理位 | 社会公众号 QbitAI

从AI写字到NLP大数学模型,AIGC的破冰生产成本被纸制打留下来了!

话不多说,间接看结论:

Stable Diffusion 2.0体能训练/松动/逻辑推理,显卡耗用最少可节约5.6倍,使硬体生产成本直降到1/46,带队标识符方可投入使用;1750亿模块大数学模型BLOOMFPS逻辑推理,显卡耗用节约4倍,硬体生产成本直降到Avold众所周知带队标识符同时实现手动搜寻最差博戈达思路,明显减少分布式系统体能训练上手准入门槛,原生植物全力支持Hugging Face、Timm等炙手可热AI数学模型库。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

要晓得,在AIGC伤风败俗的一面,持续上升的生产成本所苦着整座金融行业。

上周五,第一批AI写字子公司众所周知StockAI不得不正式宣布停用网络平台。按理说,创办人则表示:

子公司驱动生产成本太高了,目前的收入难以为继。

即便如ChatGPT身后有OpenAI和微软撑腰,也在网络平台开放几周后发出公告,开始限制用户每日使用次数。

言下之意无非四个字:烧不起了

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

总而言之,减少AI大数学模型破冰生产成本,是目前金融行业内亟需解决的问题。

与此同时,开源AI大数学模型解决方案Colossal-AI在过去一年迅速蹿红,GitHub上已经收获7k+Star。

如上降本方案,便出自它之手。

具体是怎么实现的?往下看,

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

Stable Diffusion2.0低生产成本体能训练/松动/逻辑推理

相较于1.0版本,Stable Diffusion 2.0不仅提升了数学模型生成图像像素,还引入了Depth2img数学模型、text-guided修复数学模型等,功能更加完善。

这波上新其实让用户们既惊喜又措手不及。

(毕竟1.0都还没玩明白呢)

但话说回来,还是老问题,AIGC数学模型破冰的生产成本高啊。

以Stable Diffusion为例,其背后的Stability AI维护超过 4000 个英伟达 A100 的 GPU 集群,并已为此支出超过 5000 万美元的运营生产成本。

面对快速迭代的数学模型、算法和下游任务,如何减少应用生产成本成为AIGC真正走向破冰的核心问题。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

Stable Diffusion 2.0基于简单易用的PyTorch Lightning框架搭建。

作为PyTorch Lightning的官方大数学模型解决方案,Colossal-AI第一时间进行跟进。

具体内容有以下几点:

显卡耗用可节约5.6倍,硬体生产成本最少降到1/46全力支持DreamBooth单GPU快速个性化松动逻辑推理显卡耗用节约2.5倍而且该方案也将于近期合并进入Hugging Face,进一步方便用户使用。

体能训练

为了加快体能训练速度,减少体能训练生产成本,使用更大的batch size已成为被广泛使用的有效手段。但GPU有限的显卡容量,严重限制了batch size大小,推高了体能训练硬体准入门槛。

通过一系列显卡优化技术,Colossal-AI使得Stable Diffusion平均在每个GPU上使用大batch size 16体能训练的显卡需求,从64.5GB减少到了11.6GB、节约5.6倍,还可扩展至单GPU或多GPU博戈达。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

相比使用最先进的A100 80GB,目前仅需3060等消费级显卡方可满足需求,硬体生产成本最高直降到1/46

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

由此可以让更多用户在消费级GPU上,低生产成本地开展Stable Diffusion的相关研究与应用破冰。

背后显卡优化

Flash Attention

早在Stable Diffusion 1.0版本,Colossal-AI就率先引入了Flash Attention技术,成功将attention的速度提升 104%,将端到端体能训练的峰值显卡减少 23%

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

在Stable Diffusion 1.0版本,整座Diffusion Model只有少量attention层,Flash attention还没有体现出其性能优势。

在Stable Diffusion 2.0中,由于将大量卷积层替换为attention层,进一步发挥了Flash Attention的显卡优化潜力。

ZeRO + Gemini

Colossal-AI全力支持使用零冗余优化器(ZeRO)的方法来消除内存冗余,与经典的数据博戈达性思路相比,可极大提高内存使用效率,同时不牺牲计算粒度和通信效率。

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

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

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

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

而Colossal-AI的异构内存空间管理器Gemini全力支持将优化器状态从GPU卸载到CPU,以节约GPU内存占用。

可以同时利用GPU内存、CPU内存(由CPU DRAM或NVMe SSD内存组成)来突破单GPU内存墙的限制,进一步扩展了可体能训练数学模型规模。

带队标识符快速上手

作为PyTorch Lightning的官方合作伙伴,仅需带队标识符方可调用Colossal-AI的上述显卡优化

from lightning.pytorch import trainer, LightningModulefrom lightning.pytorch.strategies import ColossalAIStrategyMystrategy = ColossalAIStrategy(use_chunk=True, enable_distributed_storage=True, placement_policy=auto)trainer = Trainer(accelerator=”gpu”, devices=4, precision=16, strategy=Mystrategy)trainer.fit(model)

DreamBooth松动

在推出Stable Diffusion 2.0加速方案的同时,Colossal-AI还“顺手”发布了DreamBooth数学模型的松动方案。

这是谷歌在今年8月发布的数学模型。它只需3-5张图片,再加上文字表述,就能让指定物体迁移到其他场景或风格中去。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

和Dall-E 2、Imagen等最大的不同是,DreamBooth能对选定对象忠实还原

方案中,用户只需间接运行文件train_dreambooth_colossalai.py,方可在该松动任务上充分发挥Colossal-AI的显卡优化,个性化快速松动自己的图文数学模型,极大减少使用准入门槛。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

逻辑推理

由于数学模型逻辑推理对数值精度不敏感,这为同时实现低精度的低生产成本逻辑推理提供了可能。

对于Stable Diffusion 2.0数学模型,可以通过添加带队标识符,全力支持数学模型的Int8量化逻辑推理,显卡耗用节约2.5倍,仅需3.1GB,且不造成明显性能损失。

model = replace_module(model)

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

用RTX3090逻辑推理1750亿BLOOM数学模型

AI写字伤风败俗的另一边,NLP大数学模型的趋势也还在延续。

今年7月,Hugging Face发布了1750亿模块开源数学模型BLOOM,它动用384块A100炼成。

如果间接使用常见的FP32/FP16进行逻辑推理,在单节点8张GPU使用数学模型博戈达,每张GPU需要耗用至少87.5GB/43.8GB的显卡

如此大的显卡占用,即使是最先进的8卡A100(80GB/40GB)服务器,也无法间接部署逻辑推理服务,而多节点逻辑推理又会带来沉重的额外生产成本和通信开销。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

基于这一现状,Colossal-AI同时实现了高效的Int8量化和数学模型博戈达逻辑推理,可以将1750亿模块的BLOOM等大数学模型的逻辑推理服务,部署到3090/4090等消费级显卡的8卡服务器,同时不产生明显的CPU内存占用提升及性能损耗。

相比原有的A100方案,可将硬体部署生产成本减少到原有的Avold众所周知

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

通过对数学模型进行Int8量化,Colossal-AI可将数学模型总体显卡占用从352.3GB(FP16)减少到185.6GB, 同时使用Colossal-AI的数学模型博戈达技术,将每张显卡的占用减少到了23.2GB

在数学模型博戈达中,为了不增加CPU内存占用,Colossal-AI在主进程中进行数学模型的量化和切分工作,其余的每个进程中分别使用lazy_init获得几乎不占显卡和内存的meta model,再通过gloo backend在进程之间传递数学模型模块。

通过上述方案,在没有分段加载数学模型模块的情况下,便可以使得CPU内存占用峰值,达到理论上的较优水平。相较于将数学模型按层切分的“类流水线”分布方式,数学模型博戈达可以提高非密集请求下的显卡使用效率。

带队标识符手动博戈达

大数学模型的分布式系统混合部署是一个非常复杂的问题。

目前常见的分布式系统大数学模型体能训练方案,都依赖于用户人工反复尝试以及系统专家基于经验进行配置部署。

然而,这对于绝大多数AI开发者来说很不友好,因为大家都不希望把过多时间精力花费在研究分布式系统系统和试错上。

由此,Colossal-AI的高效易用手动博戈达系统,可以说是解大家燃眉之急了。

仅需增加带队标识符,它就能提供cluster信息以及FPS体能训练数学模型方可获得分布式系统体能训练能力,并且原生植物全力支持包括Hugging Face,Timm等炙手可热AI数学模型库

# wrap the model using auto_enginemodel, optimizer = auto_engine(model, optimizer, cluster_info)# normal training loop…

因此,Colossal-AI可以极大地减少AI开发者的使用分布式系统技术体能训练和松动大数学模型准入门槛。同时,手动博戈达系统可以从更细粒度搜寻并行思路,找到更加高效的博戈达方案。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

Graph Tracing

Colossal-AI是首个基于PyTorch框架使用静态图分析的手动博戈达系统

习系统领域被长期研究的问题。

Colossal-AI使用基于torch.FX Tracer的ColoTracer,在tracing过程中推导并记录了每个tensor的元信息,例如tensor shape,dims,dtype等,可以为后续的手动博戈达思路搜寻提供帮助。

因此Colossal-AI具有更好的数学模型泛化能力,而不是依靠数学模型名或手动修改来适配博戈达思路。

细粒度分布式系统体能训练思路搜寻

Colossal-AI会在满足内存财政预算的限制下,以最快运行时间为目标,为每个op进行思路搜寻,最终得到真实体能训练时的思路,包括每个tensor的切分思路,不同计算节点间需要插入的通信算子类型,是否要进行算子替换等。

现有系统中的张量博戈达、数据博戈达,NVIDIA在Megatron-LM等博戈达系统中使用的column切分和row切分博戈达等混合博戈达,都是手动博戈达可以搜寻到的思路的子集。

除了这些可以手动指定的博戈达方式外,Colossal-AI的手动博戈达系统有能力为每个op指定独特的博戈达方式,因此有可能找到比依赖专家经验和试错配置的手动切分更好的博戈达思路。

分布式系统tensor与shape consistency系统

与PyTorch最新发布的DTensor类似,Colossal-AI也使用了device mesh对集群进行了抽象管理。

具体来说,Colossal-AI使用sharding spec对tensor的分布式系统存储状态进行标注,使用shape consistency manager手动地对同一tensor在不同sharding spec间进行转换。

这让Colossal-AI的通用性和易用性极大地提升,借助shape consistency manager可以没有负担地切分tensor,而不用担心上游op的output与下游的input在集群中的存储方式不同。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

相较于PyTorch DTensor,Colossal-AI有以下3个优势:

Colossal-AI的device mesh可以profiling到集群性能指标,对不同的通信算子进行耗时估算。Colossal-AI的shape consistency会贪心地搜寻sharding spec间的转换方式,而不是朴素地逐dimension进行转换,这样能找到更高效的转换路径,进而使得sharding spec间的转换通信开销更小。加入了all_to_all操作,使得Colossal-AI的扩展性更强,这在大规模集群上进行体能训练时,可以展现出很大的优势与activation checkpoint结合

作为大数学模型体能训练中必不可少的显卡压缩技术,Colossal-AI也提供了对于activation checkpoint的手动搜寻功能。

相比于大部分将最大显卡压缩作为目标的技术方案,Colossal-AI的搜寻目标是在显卡财政预算以内,找到最快的activation checkpoint方案。

同时,为了避免将activation checkpoint的搜寻一起建模到SPMD solver中导致搜寻时间爆炸,Colossal-AI做了2-stage search的设计,因此可以在合理的时间内搜寻到有效可行的分布式系统体能训练方案。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

关于Colossal-AI

通用深度学习系统Colossal-AI面向大数学模型时代,它可同时实现高效快速部署AI大数学模型体能训练和逻辑推理,减少AI大数学模型应用生产成本。

自开源以来,Colossal-AI已经多次在GitHub热榜位列世界第一,获得GitHub Star超七千颗,并成功入选SC、AAAI、PPoPP等国际AI与HPC顶级会议的官方教程。

AIGC落地门槛骤降:硬件预算一口气降至1/46,一行代码自动并行

Colossal-AI相关解决方案已成功在手动驾驶、云计算、零售、医药、芯片等金融行业知名厂商破冰应用,广受好评。

例如近期伤风败俗的ChatGPT,尚未开源且不具备联网功能。Colossal-AI已成功帮助某世界500强企业,开发具备在线搜寻引擎能力增强的聊天机器人数学模型。

传送门

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

参考链接:https://www.hpc-ai.tech/blog/colossal-ai-0-2-0

举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务