Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Flow Matching

流匹配训练网络预测将噪声转化为数据的速度场,这是 Stable Diffusion 3、FLUX.1 和 Movie Gen 背后的训练目标。

流匹配是一种训练生成模型的方法,模型通过沿着学习到的速度场移动,将随机噪声转换为数据。神经网络会学习在 0 到 1 之间的任意时刻,任意点应朝哪个方向、以多快的速度移动;生成样本时,则从高斯噪声开始,通过常微分方程(ODE)求解器对该速度进行积分,直到时间达到 1。Meta AI 和魏茨曼科学研究院的 Yaron Lipman 等人在 ICLR 2023 上发表的论文《生成建模的流匹配》提出了该方法;另外两篇同期论文以整流流和随机插值的名称提出了几乎相同的目标函数。流匹配无需在训练期间模拟 ODE,就能训练连续归一化流,并将扩散模型涵盖为一个特例;它也是 Stable Diffusion 3、FLUX.1、Meta 的 Movie Gen 以及许多近期语音和机器人模型背后的训练目标。

流匹配的工作原理#

训练过程中不会生成任何内容。每个步骤都会抽取一个数据样本 x1、一个来自标准高斯分布的噪声样本 x0,以及一个介于 0 和 1 之间的时间 t,然后在两者之间的直线上取一个点:xt = (1 - t) * x0 + t * x1。该直线上的点以恒定速度 x1 - x0移动,因此网络 v(xt, t)通过普通均方误差进行训练,以预测 x1 - x0。每一对噪声和数据只定义一条路径,但许多路径都会经过任意给定的点;该点处从噪声到数据的整体流速是这些路径速度的平均值。论文证明,对简单的逐对目标进行回归,所得梯度与对难以计算的平均值进行回归相同,因此训练只是一个普通的回归损失函数,无需模拟 ODE。

生成过程会将 dx/dt = v(x, t) 从 t = 0 积分到 t = 1,通常使用欧拉法或更高阶的求解器步骤。下面的 PyTorch代码在两个 2D 点簇上训练一个小型速度网络,然后分别使用 1、2 和 8 个欧拉步骤进行采样:

import torch
from torch import nn

torch.manual_seed(0)
# Velocity network v(x, t) for 2D points; the data are two clusters at (2, 2) and (-2, -2)
net = nn.Sequential(nn.Linear(3, 128), nn.SiLU(), nn.Linear(128, 128), nn.SiLU(), nn.Linear(128, 2))
optimizer = torch.optim.Adam(net.parameters(), lr=1e-3)
centers = torch.tensor([[2.0, 2.0], [-2.0, -2.0]])

for step in range(2000):
    x1 = centers[torch.randint(0, 2, (256,))] + 0.2 * torch.randn(256, 2)  # data samples
    x0 = torch.randn(256, 2)  # noise samples
    t = torch.rand(256, 1)
    xt = (1 - t) * x0 + t * x1  # point on the straight path from noise to data
    loss = ((net(torch.cat([xt, t], dim=1)) - (x1 - x0)) ** 2).mean()  # regress the path's velocity
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

# Generate: start from noise and follow the learned velocity field with Euler steps
for steps in (1, 2, 8):
    x = torch.randn(1000, 2)
    with torch.no_grad():
        for i in range(steps):
            x = x + net(torch.cat([x, torch.full((1000, 1), i / steps)], dim=1)) / steps
    near = (torch.cdist(x, centers).min(dim=1).values < 0.6).float().mean()
    print(f"{steps}-step sampling: {near:.0%} of samples land near a cluster")

它会输出 1-step sampling: 0% of samples land near a cluster,然后报告 2 步时为 47%、8 步时为 94%。在 t = 0 处,每个噪声点的期望目标相同,即数据的均值,因此一步就会把所有样本送到两个点簇之间的空白区域。每条训练路径都是直线,但起点相近的路径最终会落入不同点簇;将这些路径平均后得到的学习流仍然是弯曲的。因此,步数较少的生成器会采用重流等技术,通过对模型自己的噪声到样本配对重新训练来拉直流,或者将模型蒸馏为一致性模型。

  • 扩散模型:扩散训练会按照噪声计划逐渐向数据添加噪声,并训练网络预测添加的噪声,然后通过反转该过程进行采样。流匹配论文表明,其目标函数可接受任意高斯概率路径,包括扩散模型使用的路径,并发现这种训练扩散模型的方式更加稳定。直线路径则是另一种独立且简单的选择。两类方法都使用扩散 Transformer(DiT)等架构、无分类器引导和 ODE 采样器。
  • 整流流:使用相同的直线插值和速度损失,因此对于线性路径,这两个名称大体上可以互换。整流流论文还加入了重流过程,以进一步拉直轨迹。
  • 归一化流:离散归一化流会堆叠可逆层,并通过精确似然进行训练。连续归一化流是一种神经 ODE,它通过 ODE 定义变换,但以最大似然方式训练,每个训练步骤都要求解 ODE。流匹配通过回归训练同类 ODE 模型,无需进行该求解。
  • 光流:尽管名称相似,但两者毫无关联。光流是视频帧之间像素的表观运动,而流匹配是在可能的数据空间中移动样本。

流匹配的应用场景#

  • 图像生成:Stability AI 使用整流流 Transformer训练了 Stable Diffusion 3,并从偏向中等噪声水平的 Logit 正态分布中采样训练时间步;Black Forest Labs 的 FLUX.1则是一种拥有 120 亿参数的整流流 Transformer。这些文生图模型生成的图像可作为合成数据,为训练YOLO26检测模型的数据集补充稀有物体、天气和视角。
  • 视频生成:Meta 的 Movie Gen 是一个使用流匹配训练、拥有 300 亿参数的 Transformer,可生成最长 16 秒、每秒 16 帧的 1080p 视频。
  • 语音:Meta 的 Voicebox 使用超过 50,000 小时的语音训练了非自回归流匹配模型;在零样本文本转语音任务中,其词错误率为 1.9%,而 VALL-E 为 5.9%,运行速度最高快 20 倍。后来的 F5-TTS 将流匹配与扩散 Transformer 相结合。
  • 机器人控制:Physical Intelligence 的 π0在一个拥有 30 亿参数的视觉语言模型中加入了一个拥有 3 亿参数的流匹配“动作专家”,每次生成包含 50 个未来动作的动作块,经过 10 个积分步骤后,以最高 50 Hz 的频率控制机器人。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来