趋近智
如前所述,扩散模型通过迭代细化过程生成高质量数据。此过程从噪声开始,并分多步逐步去噪,通常由提示或条件引导。尽管功能强大,但这种迭代特性是推理过程中性能瓶颈的主要原因。与仅需一次正向传播的模型不同,扩散模型会多次执行核心计算循环。清晰了解时间与资源在此循环中的使用情况,对实现有效优化非常重要。
推理过程,常被称为采样,通常包含以下阶段,重复 N 次(N 值可从10到超过1000,具体取决于采样器):
此循环持续进行,直到 t=0,生成最终输出。我们来分析此过程中的主要瓶颈。
到目前为止,最突出的瓶颈是噪声预测网络(U-Net)的重复执行。这个网络通常非常大,包含数十亿参数和计算开销大的操作,如自注意力机制,尤其是在生成高分辨率图像时。
考虑一个常见情况:使用DDIM采样器和50步的Stable Diffusion模型生成一张512x512图像。这意味着核心U-Net,连同文本编码器(如果提供了提示)以及可能的VAE解码器,必须为单次图像生成执行50次正向传播。每次传播都涉及数十亿次浮点运算(FLOPs)。
扩散模型采样的核心循环。U-Net正向传播占据了主要的计算开销,并为每个生成请求重复执行。
这种重复的繁重计算直接影响:
扩散模型,尤其是最先进的版本,通常很大。参数以16位浮点格式(FP16)存储的模型,可以轻松占用数GB存储空间,并且仅加载权重就需要大量GPU显存(VRAM)。
在U-Net的正向传播过程中,称为激活的中间结果也必须存储在VRAM中。对于高分辨率图像和复杂架构(例如具有许多注意力层的架构),激活所需的内存可能超过权重本身所需的内存。
这导致了几个与内存相关的瓶颈:
采样器算法的选择直接影响U-Net必须评估的次数(N)。早期采样器,如DDPM,需要数百甚至数千步。较新的采样器(DDIM、PNDM、DPM-Solver++等)在少得多的步数(例如10-50步)内就能取得良好效果,大幅减少了总计算量。然而,即使是20步也代表20次完整的U-Net评估。在不牺牲输出质量的前提下进一步减少 N 是采样器优化的主要目标。
在采样循环中,计算步骤 t−1 的状态通常需要步骤 t 的结果。这种固有的序列依赖性使得为单张图像生成在不同时间步之间并行化计算变得困难。尽管单个U-Net正向传播内的操作可以在GPU上高度并行化,但整个过程从一步到另一步仍主要呈串行。这限制了加快每个单独步骤的延迟降低潜力。
了解这些核心瓶颈,U-Net计算的主导地位,对内存大小和带宽的需求,采样步数的影响,以及过程的串行特性,是实现优化的第一步。后续章节将介绍量化、蒸馏、采样器改进以及硬件/编译器优化等技术,这些技术专门设计用于缓解这些痛点,使扩散模型推理更快、更具成本效益。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造