AI绘画专栏之 SDXL 4G显存就能跑SDXL ?SD1.7或将对F8优化merge(46)

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
函数计算FC,每月15万CU 3个月
简介: AI绘画专栏之 SDXL 4G显存就能跑SDXL ?SD1.7或将对F8优化merge(46)

关于SDXL的生态目前还未完全稳定,但是不得不提到的就是SDXL的在VAE,CLIP,UNET三大组件的巨大提升,其101亿的参数量是原本SD的N倍,那么对于SDXL的生态介绍我们再次重复一遍。4G的显存都能跑SDXL意味着将来大模型Lora将降低其大小,炼丹炉压力更小~

添加描述
SDXL为什么强?
0.1参数训练量为101亿 其中BASE模型35 亿 加REFINER模型66亿 SD的8倍???
0.2对Stable Diffusion原先的U-Net(XL Base U-Net 一共14个模块),VAE,CLIP Text Encoder三大件都做了改进。可以明显减少显存占用和计算量
0.3增加一个单独的基于Latent(潜在)的Refiner(炼制)模型,来提升图像的精细化程度。【新增:对Base模型生成的图像Latent特征进行精细化,其本质上是在做图生图的工作。】
0.4设计了很多训练Tricks(技巧)(这些Tricks都有很好的通用性和迁移性,能普惠其他的生成式模型),包括图像尺寸条件化策略,图像裁剪参数条件化以及多尺度训练等。
0.5先发布Stable Diffusion XL 0.9测试版本,基于用户使用体验和生成图片的情况,针对性增加数据集和使用RLHF技术优化迭代推出Stable Diffusion XL 1.0正式版。
0.6采样方法禁用DDIM (保留意见、非绝对),不需要开启CN,随着CN的支持,可以开启CN的XL版本。所有的环境需要都是XL的生态
0.7直接出1024分辨率图片 1024 * 1024 起步

添加描述
随之而来的就是对大显存的占用,但随着新的PR的提出,或将在4G的测试显存,并在一定的内存占用上解决!!!

A big improvement for dtype casting system with fp8 storage type and manual cast
一个很大的提升对于FP8的内存和手动转换
在 pytorch 2.1.0 之后,pytorch 添加了 2 个新的 dtype 作为存储类型:float8_e5m2、float8_e4m3fn。[1][2]
基于讨论使用 fp8 作为训练/使用 NN 模型的参数/梯度的论文。我认为值得对 fp8 格式进行一些优化。[3][4]
此外,一些扩展也已经支持这个功能[5]
速度提升

由于将 FP8 与 FP16 一起使用,因此计算需要一些额外的操作来强制转换 dtype。
它会降低速度(特别是对于较小的批量)
批量大小
768x768 标清1.x fp16
768x768 标清1.x fp8
1024x1024 SDXL fp16
1024x1024 SDXL fp8
1
8.27 秒/秒
7.85 秒/秒
3.84 秒/秒
3.67 秒/秒
4
3.19 秒/秒
3.08 秒/秒
1.51 秒/秒
1.45 秒/秒
会降低质量吗?几乎不会
什么是FP8 FP16?

Fp16:意味模型用16位浮点数存,相对于Fp32更小更快,但是无法用于CPU,因为有的半浮点精度运算在CPU上不支持。通常为了更快的运算,在GPU上我们也会将Fp32转换成Fp16,这个可以在设置里配置。那么随之而来的一个params是8个byte(字节),FP32就是4个byte,FP8就是一个Byte,FP或者BF16相对已经是比较好的出图质量了。
以下测试结果来自原PR作者琥珀青叶,如果你想要尝试,在源码中切换此PR即可
首先SD1的时候FP16存下来是2G,SDXL因为参数变多了FP16也要5G,这样很多显卡就hold不住了。
所以青叶做了个事情,就是load的时候用FP8放在显存里,这样SDXL存在显存是2.5G。但是在每一层运算的时候把对应的FP8转到FP16,所以整个计算流程看起来是是一致的。同时整个流程的显存占用也下来的。

正常启动测试

开启FP8并开启内存缓存优化
XYZ测试关闭前后对比
起初的静态内存占用为5.3

运行后稳定在6.4左右

开启前后对图片直连影响很小,有细微细节差距
搭配LCM测试

当前所有的PR审核已经通过,或将在测试后在1.7进行升级推出正式版本

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

目录
相关文章
|
2月前
|
人工智能 并行计算 安全
从零到一,打造专属AI王国!大模型私有化部署全攻略,手把手教你搭建、优化与安全设置
【10月更文挑战第24天】本文详细介绍从零开始的大模型私有化部署流程,涵盖需求分析、环境搭建、模型准备、模型部署、性能优化和安全设置六个关键步骤,并提供相应的示例代码,确保企业能够高效、安全地将大型AI模型部署在本地或私有云上。
686 7
|
3月前
|
机器学习/深度学习 人工智能
打开AI黑匣子,三段式AI用于化学研究,优化分子同时产生新化学知识,登Nature
【10月更文挑战第11天】《自然》杂志发表了一项突破性的化学研究,介绍了一种名为“Closed-loop transfer”的AI技术。该技术通过数据生成、模型训练和实验验证三个阶段,不仅优化了分子结构,提高了光稳定性等性质,还发现了新的化学现象,为化学研究提供了新思路。此技术的应用加速了新材料的开发,展示了AI在解决复杂科学问题上的巨大潜力。
45 1
|
28天前
|
存储 人工智能 算法
【AI系统】计算图的优化策略
本文深入探讨了计算图的优化策略,包括算子替换、数据类型转换、存储优化等,旨在提升模型性能和资源利用效率。特别介绍了Flash Attention算法,通过分块计算和重算策略优化Transformer模型的注意力机制,显著减少了内存访问次数,提升了计算效率。此外,文章还讨论了内存优化技术,如Inplace operation和Memory sharing,进一步减少内存消耗,提高计算性能。
96 34
【AI系统】计算图的优化策略
|
14天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
102 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
7天前
|
机器学习/深度学习 数据采集 人工智能
AI在用户行为分析中的应用:实现精准洞察与决策优化
AI在用户行为分析中的应用:实现精准洞察与决策优化
50 15
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
Llama 3.3:Meta AI 开源新的纯文本语言模型,专注于多语言对话优化
Meta AI推出的Llama 3.3是一款70B参数的纯文本语言模型,支持多语言对话,具备高效、低成本的特点,适用于多种应用场景,如聊天机器人、客户服务自动化、语言翻译等。
77 13
Llama 3.3:Meta AI 开源新的纯文本语言模型,专注于多语言对话优化
|
28天前
|
机器学习/深度学习 存储 人工智能
【AI系统】离线图优化技术
本文回顾了计算图优化的各个方面,包括基础优化、扩展优化和布局与内存优化,旨在提高计算效率。基础优化涵盖常量折叠、冗余节点消除、算子融合、算子替换和算子前移等技术。这些技术通过减少不必要的计算和内存访问,提高模型的执行效率。文章还探讨了AI框架和推理引擎在图优化中的应用差异,为深度学习模型的优化提供了全面的指导。
45 5
【AI系统】离线图优化技术
|
28天前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
55 4
【AI系统】计算图优化架构
|
1月前
|
存储 人工智能 编译器
【AI系统】算子手工优化
本文深入探讨了手写算子调度的关键因素及高性能算子库的介绍,通过计算分析指标和 RoofLine 模型评估计算与访存瓶颈,提出了循环、指令、存储三大优化策略,并介绍了 TVM 和 Triton 两种 DSL 开发算子的方法及其在实际应用中的表现。
45 2
【AI系统】算子手工优化
|
17天前
|
人工智能 计算机视觉
幻觉不一定有害,新框架用AI的幻觉优化图像分割技术
在图像分割领域,传统方法依赖大量手动标注数据,效率低下且难以适应复杂场景。为解决这一问题,研究人员提出了“任务通用可提示分割”方法,利用多模态大型语言模型(MLLM)生成实例特定提示。然而,MLLM常出现幻觉,影响分割精度。为此,研究团队开发了“Prompt-Mask Cycle”(ProMaC)框架,通过迭代生成和验证提示及掩码,有效利用幻觉信息,提高了分割精度和效率。实验结果表明,ProMaC在多个基准数据集上表现出色,为图像分割技术的发展提供了新思路。
32 6