作为一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。过去一年,我们通过在视频生成、图文联合生成等核心技术上的持续攻关,AIGC内容生成在手淘多个场景取得了规模化落地价值。本专题《淘宝的AIGC内容生成技术总结》是我们摸索出的一部分实践经验,我们将开启一段时间的内容AI专题连载,欢迎大家一起交流进步。
第三篇《OpenAI o1模型的前世今生》
第四篇《多模态人物视频驱动技术回顾与业务应用》
第十二篇《音频生成技术探索与淘宝域实践》
作为一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。过去一年,我们通过在视频生成、图文联合生成等核心技术上的持续攻关,AIGC内容生成在手淘多个场景取得了规模化落地价值。本专题《淘宝的AIGC内容生成技术总结》是我们摸索出的一部分实践经验,我们将开启一段时间的内容AI专题连载,欢迎大家一起交流进步。
第十二篇《音频生成技术探索与淘宝域实践》
扩散模型的理论框架主要包括 DDPM、score matching 和 flow matching 等。flow matching 作为一种更灵活简洁的训练范式,被当前最前沿的开源文生图、文生视频模型所采用,如 SD3 和 Flux等。它不仅显著提升了训练的收敛效率,同时也更易于从理论层面进行理解。
在本文中,我们将以 Flow Matching 为切入点,深入探讨扩散模型的基础原理。网络上关于扩散模型原理的解读文章中,通常有着大量复杂的公式推导,而扩散模型训练算法本身却非常简洁。本文将尽量避开冗长的公式推导,力求以清晰直观的方式揭示这些简洁的算法形式背后的核心原理。
扩散模型
生成模型简介
对于一些简单的分布,例如均匀分布和高斯分布,我们可以通过简单的算法轻松实现采样。
然而,对于自然图像这样的高维复杂分布,由于缺乏解析解,采样变得异常困难。尽管我们可以收集大量自然图像的样本,但要从中生成新的样本却并非易事。生成模型的目标是基于训练集中的已有样本,学习并从其背后的分布中进行采样。
图像生成模型
对于自然图像这样的复杂分布,我们可以通过某种方法构建其与简单分布(通常是高斯分布)之间的映射关系。通过这种映射关系,可以先从简单分布中采样,再映射到复杂分布,从而实现对复杂分布的采样目标。而如何构建这一映射过程,正是各类生成算法的核心。
Flow Matching
Continuous Normalizing Flow是一种能够将简单分布映射为任意复杂分布的方式,我们先通过一个简单的例子来理解一下。
记数据点为表示d-维样本数据空间中的一个点。(对应例子中湖面空间)
3.样本随时间演化
这一方程表明,样本点(小黄鸭)的位置随时间变化,完全受当前所处位置的向量场(湖面水流方向和速度)决定。
4.样本概率分布的随时间变化
对于定义在数据空间中的某个初始概率分布,如果所有样本都按照上面的常微分方程运动,可以证明对应的概率分布
随时间的变化规律满足以下公式:
简单来说,与
在变换前的初始点的概率
成正比。而
描述了变换过程中空间伸缩的程度。可以将其理解为变换前后某点邻域的空间体积比值(例如下图中蓝色小正方形和红色小正方形的面积比)。所以上面的公式实际上是变换前后某个点邻域概率守恒的表现。
不过,在后续推导中我们并不直接使用这一公式,关键在于当时,初始分布
映射为目标
,并且这个过程是可逆的。由此,我们得到了一个理论上将任意两个分布相互映射的方法。
采样初始点
迭代更新
最终,满足分布
首先考虑一个非常简单的情形:和
为标准差σ 相同,均值点分别为
和
的多维高斯分布,这种情况下一个可能的解为类似匀速直线运动的
的常数向量场的解,如下面的视频所示。
标准差相同的高斯分布之间的映射
对应的向量场表达式为常数
标准差相同的高斯分布之间的映射
这表明两个标准差相同的高斯分布可以通过简单的“匀速直线运动向量场”进行映射。如果考虑的极限,上面的情形退化为两个delta分布之间映射。delta 分布可以简单理解为所有概率分布集中于一点的分布。
前面我们介绍了简单高斯分布和delta分布的映射方法。对于任意分布和
,它们表达为delta分布的线性叠加:
根据上一节的推导,上面线性叠加中的两个delta分布之间的映射的条件概率随时间演化可以表达为
对应的条件向量场为 将上面的条件概率演化路径
进行线性叠加得到的边缘概率随时间演化表达为
不难发现,上面的边缘概率分布随时间演化能够从映射到
那么上面的边缘概率随时间演化对应的flow
是什么呢?
是简单的delta函数映射条件概率
的线性叠加,而
对应的条件向量场flow为简单的“匀速直线运动向量场”
,那么
对应的flow
是否就是这些“匀速直线运动向量场”的线性叠加呢?答案是肯定的,具体由下式得到。
上式表明,如上图所示,为了计算,随机采样
和
,在
条件下计算
的期望值。
Algorithm:计算t时刻任意处的向量场
初始化空列表
While:
随机采样
计算
If
Return
和
去通过上面这种非常低效的方式去计算统计平均。因此,我们引入神经网络对
进行神经网络参数化,定义为
,并通过优化网络参数使其收敛到:
这样,我们通过一次网络的前向推理就可以得到和
处的
。
那么接下来的问题是:如何构造网络的损失函数,通过训练使网络输出能够接近上述的期望形式?一个巧妙的解决方案是,可以证明,对于下面的L2 形式的损失函数,其最优解正是上述期望值形式:
背后的原因在于对于L2的loss,最优解就是对应的期望均值形式。
对此可以利用一个更简单的例子进行理解。如果向量是
的一个函数,对于L2 的 loss,
很容易证明这个loss的最优解为(回忆一下最小二乘法)
这两个case的区别仅仅在于,下面这个case只是一个向量的优化。而上面的case中,我们做的是定义在和
的整个数据空间和时间上的向量场的优化。
顺便提一句,通常我们再讨论扩散模型的优化目标时,会提到“预测原图”、“预测噪音”,“预测噪音和原图的差值”等等,这些说法有一定的误导性。因为实际上我们并不是希望网络能够预测“原图”或者“噪音”,而是以它们为目标构造L2的loss,最终期望网络收敛到对应的以为条件的“原图”或者“噪音”的统计期望值。所以扩散模型的训练即使在完全收敛的情况下,它的loss也不为0,而是以
为条件的“原图”或者“噪音”的统计方差。
对应于上面的loss形式,将设为高斯分布,
设为图像训练集对应的分布,我们得到Flow Matching的训练算法如下:
在生成模型的研究中,构建简单分布与复杂分布之间的映射是核心挑战,而 Flow Matching 提供了一种高效解决方案。从 Continuous Normalizing Flow 的理论基础,到基于神经网络的高效实现,再到具体的训练和采样流程,Flow Matching 展现了极大的灵活性和实用性。此外,相较于传统的扩散模型,如 DDPM,Flow Matching 在框架简洁性和实际性能上均表现出优势。
本文以 Flow Matching 为核心,从理论和算法的角度系统地探讨了扩散模型的基本原理,并通过多个直观的示例和公式推导展示了其内在逻辑。
Flow Matching for Generative Modeling https://arxiv.org/abs/2210.02747
Improving and Generalizing Flow-Based Generative Models with Minibatch Optimal Transport
Scaling Rectified Flow Transformers for High-Resolution Image Synthesis