在NVIDIA AI推理平台上使用稳定的 Diffusion XL生成令人惊叹的图像

四张增强背景的产品图片。

扩散模型正在改变各行各业的创造性工作流程。这些模型基于简单的文本或图像输入,通过去噪扩散技术将随机噪声迭代地塑造成人工智能生成的图像,从而生成令人惊叹的图像。这可以应用于许多企业用例,例如为营销创建个性化内容,为照片中的对象生成富有想象力的背景,为游戏设计动态的高质量环境和角色等等。

虽然扩散模型可以是增强工作流的有用工具,但在大规模部署时,这些模型的计算量可能非常大。在cpu等非专业硬件上生成单个批次的四个映像可能需要几分钟的时间,这可能会阻碍创意流程,并成为许多希望满足严格的服务水平协议(sla)的开发人员的障碍。

在这篇文章中,我们将向您展示NVIDIA AI推理平台如何解决这些挑战,重点是稳定 Diffusion XL (SDXL)。我们从企业在生产中部署SDXL时面临的常见挑战开始,深入探讨由NVIDIA L4 Tensor Core gpu、NVIDIA TensorRT和NVIDIA Triton Inference Server支持的Google Cloud G2实例如何帮助缓解这些挑战。Let’s Enhance是一家领先的人工智能计算机视觉初创公司,它如何在NVIDIA人工智能推断平台和谷歌云上使用SDXL,使企业能够通过一次点击创建迷人的产品图像。最后,我们提供了一个关于如何在Google Cloud上使用SDXL开始具有成本效益的图像生成的分步教程。

克服SDXL生产部署挑战

在生产环境中部署任何AI工作负载都会带来一系列挑战。其中包括在现有的模型服务基础设施中部署模型,通过优化推理请求的批处理来提高吞吐量和延迟,以及使基础设施成本符合预算限制。

然而,在生产中部署扩散模型的挑战突出,因为它们依赖于卷积神经网络,对图像预处理和后处理操作的要求,以及严格的企业SLA要求。

在这篇文章中,我们将深入研究这些方面,并探讨NVIDIA全栈推理平台如何帮助缓解这些问题。

利用gpu专用的张量核心

稳定扩散的核心是U-Net模型,它从一个有噪声的图像开始——一组随机数矩阵。这些矩阵被切割成更小的子矩阵,在其上应用一系列卷积(数学运算),产生精细的,更少噪声的输出。每个卷积都需要一个乘法和累加操作。这个去噪过程迭代几次,直到得到一个新的、增强的最终图像。

 

多幅图像显示焦点对象逐渐锐化。

图1所示。稳定扩散去噪过程

考虑到其计算复杂性,该过程明显受益于特定类型的GPU核心,如NVIDIA张量核心。这些专门的内核从头开始构建,以加速矩阵乘法累积操作,从而更快地生成图像。

NVIDIA通用L4 GPU拥有超过200个张量内核,对于希望在生产环境中部署SDXL的企业来说,这是一款理想的经济高效的AI加速器。企业可以通过云服务提供商访问L4 gpu,比如Google cloud,它是第一个通过G2实例在云中提供L4 gpu的云计算服务提供商。

L4 GPU的黑色背景图片。

图2。NVIDIA L4张量核心GPU

图像预处理和后处理的自动化

在使用SDXL的实际企业应用程序中,该模型是更广泛的人工智能管道的一部分,该管道包括其他计算机视觉模型和预处理和后处理图像编辑步骤。

例如,使用SDXL为新产品发布活动创建背景场景可能需要在将产品图像输入SDXL模型以生成场景之前进行初步的放大预处理步骤。生成的SDXL图像输出可能还需要进一步的后处理,例如在适合用于营销活动之前使用图像升级器将其升级到更高的分辨率。

将这些不同的预处理和后处理步骤拼接到一个流线型的AI管道中,可以使用全功能的AI推理模型服务器(如开源的Triton inference server)自动完成。这消除了编写手动代码或在计算环境中来回复制数据的需要,这会引入不必要的延迟并浪费昂贵的计算和网络资源。

该图显示了一个从预处理开始到后处理结束的管道。

图3。SDXL是更广泛产品线的一部分

通过使用Triton Inference Server来服务SDXL模型,您可以利用Model Ensembles特性,该特性使您能够定义如何使用低代码方法将一个模型的输出作为下一个模型的输入。您可以选择在cpu上运行预处理和后处理步骤,在gpu上运行SDXL模型,或者选择在gpu上运行整个流水线以实现超低延迟应用程序。这两种选择都为您提供了完全的灵活性,并可以控制SDXL管道的端到端延迟。

 

生产环境的高效伸缩

随着越来越多的企业将SDXL纳入其业务范围,有效地批处理传入用户请求和最大化GPU利用率的挑战变得越来越复杂。这种复杂性源于需要最小化延迟以获得积极的用户体验,同时提高吞吐量以降低运营成本。

使用开源GPU模型优化器(如TensorRT),再加上具有并发模型执行和动态批处理功能的推理服务器(如Triton inference server),可以缓解这些挑战。

考虑一下,例如,与其他TensorFlow和PyTorch图像分类或特征提取AI模型并行运行SDXL模型的场景,特别是在具有大量传入客户端请求的生产环境中。在这里,SDXL模型可以使用TensorRT编译,它可以优化模型以实现低延迟推理。

Triton Inference Server还可以通过其动态批处理和并发推理功能,在模型之间高效地批处理和分发大量传入请求,而不管它们的后端框架是什么。这种方法优化了吞吐量,使企业能够用更少的资源和更低的总拥有成本来满足用户需求。

 

图中显示了NVIDIA Triton Inference Server每模型调度队列和Stable Diffusion XL与其他具有不同后端框架的ML模型一起服务。

图4。NVIDIA Triton在大批量生产环境中为多个AI模型提供服务

把平淡无奇的产品照片变成漂亮的营销资产

利用NVIDIA AI推理平台在生产环境中为SDXL提供服务的公司的一个很好的例子是Let’s Enhance。这家开创性的人工智能初创公司已经使用Triton Inference Server在NVIDIA Tensor Core gpu上部署了30多个人工智能模型超过3年。

 

最近,Let’s Enhance庆祝了他们最新产品AI拍照的推出,该产品使用SDXL模型将普通的产品照片转换为电子商务网站和营销活动的美丽视觉资产。

 

凭借Triton Inference Server对各种框架和后端的强大支持,再加上其动态批处理功能集,Let’s Enhance创始人兼首席技术官Vlad Pranskevichus能够将SDXL模型无缝集成到现有的人工智能管道中,而机器学习工程团队的参与最少,从而腾出了他们的时间进行研发工作。

 

通过成功的概念验证,这家人工智能图像增强初创公司发现,通过将其SDXL模型迁移到谷歌云G2实例上的NVIDIA L4 gpu,成本降低了30%,并概述了到2024年中期完成几个管道迁移的路线图。

 

编译四个产品模型展示了一个瓶盖,泵瓶,罐子,和椅子。每个产品模型都有两张图像:一张是物体的图像,另一张是物体在Let’s Enhance生成的人工智能背景前的图像。

图5。使用Let ‘s Enhance新photoshot服务生成的产品图像

使用L4 gpu和TensorRT开始使用SDXL

在下一节中,我们将演示如何在Google Cloud的G2实例上快速部署tensorrt优化版本的SDXL,以获得最佳性价比。要使用NVIDIA驱动程序启动Google Cloud上的VM实例,请遵循以下步骤。

 

选择以下机器配置选项:

机器类型:g2-标准-8

CPU平台:Intel Cascade Lake

最小CPU平台:无

显示设备:Disabled

gpu: 1 * NVIDIA L4

g2-标准8机器类型具有一个NVIDIA L4 GPU和四个vcpu。根据需要多少内存,可以使用更大的机器类型。

 

选择以下引导磁盘选项,确保选择了源映像:

类型:均衡持久盘

大小:500gb

区域:us-central1-a

标签:没有

由:instance-1使用

快照时刻表:无

来源图片:c0-deeplearning-common-gpu

加密类型:google管理

一致性组:无

谷歌深度学习虚拟机包括最新的NVIDIA GPU库。

 

阅读全文,请查看:

Generate Stunning Images with Stable Diffusion XL on the NVIDIA AI Inference Platform

 

 

作者:Amr Elmeleegy, Anjali Shah, Neelay Shah和rohill Bhargava/ nvidia

 

 

PHP Code Snippets Powered By : XYZScripts.com