为什么流匹配能成为vla的主流之一?一篇pi0带你看懂flow matching的vla架构!

在讲flow matching之前,我们先来回顾一下diffusion的思想—— 扩散模型的完整逻辑由正向扩散(加噪)逆向扩散(去噪 / 生成) 两个互逆的过程组成。

拿扩散最拿手的图像生成领域来讲,对图像里的每个像素(比如原本值为 120 的红色通道像素,对应数轴上的「目标终点」),逐步添加高斯噪声,最终把清晰值完全破坏成纯随机噪声(比如变成 160,对应数轴上的「随机起点」),而逆向扩散过程便是训练一个神经网络,从带噪样本xt​“中,预测出正向过程中添加的噪声ε-40,再通过迭代去噪,从纯噪声xt“​还原出真实样本x1​

扩散模型是 “预测加了多少噪声,再把噪声减掉”,是「逆向修正」;而流匹配则是 “直接规划这个像素从起点到终点的完整移动路径,告诉它每一步该走多快、往哪走”,是「正向规划」! Flow Matching 的核心是向量场(速度场),记为:

$$v_\theta(x_t, t)$$

它告诉模型在任意时刻 t、任意位置 x,样本应该向哪个方向、以多大速度移动

$$ \frac{dx_t}{dt}=v_\theta(x_t, t)$$

意思就是,对于一个初始的随机样本160,得知在时间间隔h之后,它的速度则是

$$v_\theta(160, h)$$

在这个数轴上,样本在(0,255)之间运动,得知速度之后从160进入下一个位置,再次得到新的速度,不断迭代,直到到达正确的位置120! 扩散模型的逻辑是「从随机噪声值 160,一步步减噪声还原:160→145→130→120」,每一步都要重新预测噪声,通常需要几十上百步; 而流匹配的逻辑是「直接给这个像素规划了一条从初始噪声(比如 20)到目标值 120 的直线路径,每一步该走多少、走多快,都由速度场提前算好,20→40→60→…→120,全程只需要 2-10 步就能走完」。

Flow Matching 将生成过程建模为时间连续的确定性变换,定义时间区间 t∈[0,1]:

  • t=0:初始状态,对应易采样的先验分布 p0​(通常为标准高斯噪声);
  • t=1:目标状态,对应需要拟合的真实数据分布 p1​(清晰图像 / 专家演示动作)。

为了简化训练,Flow Matching 给每个真实样本 x1​ 定义了一条最简单的线性插值路径

xt​=t⋅x1​+(1−t)⋅x0​

其中 x0​ 是从先验分布 p0​ 中采样的噪声。 对时间 t 求导,就能得到这条路径对应的理想目标速度场: ut​(xt​∣x1​)=x1​−x0​

这个理想速度场是全局恒定的!它和时间 t、中间样本 xt​ 完全无关 —— 这是 Flow Matching 损失无偏、训练比扩散更稳定、对超参数不敏感的核心数学根源。

这个逻辑可以 1:1 迁移到机器人 VLA 模型里 —— 把机器人的每个动作维度(如末端 x/y/z 坐标、夹爪开合度)当成一个 “像素”,一整条动作轨迹就是一张 “动作图像”。

结合 pi0 看完整流程: 预计算阶段(仅执行一次) 输入视觉观测 + 语言指令,经跨模态对齐生成固定的 prefix_tokens,输入大模型并一次性构建 KV 缓存,避免后续重复计算 Flow Matching 迭代阶段(循环 2-10 次): 采样初始噪声 x_0 ~ N(0, I) 作为起点,初始化时间步 t=0;将带噪动作 x_t 与时间步 t 分别投影、编码融合为 suffix_tokens,结合前缀 token 与自定义注意力掩码输入大模型,通过 Heun 法等 ODE 高阶求解器迭代调用 step 函数预测速度场并更新动作,最终生成完整轨迹。 动作执行阶段: 取生成动作块的前 K 步送入控制器执行,滑动窗口进入下一帧推理。

综上所述,Flow Matching 之所以能成为 VLA(具身智能)的主流方向之一,本质上解决了传统方案 「随机不稳定、采样慢、部署难」 的三大核心痛点:

  1. 从 “随机走” 到 “规划走”:原生基于确定性 ODE,告别扩散模型的随机噪声波动,生成的动作轨迹天然平滑可控,更适配机器人实时控制需求;
  2. 从 “几十步到 2-10 步”:线性插值路径 + 全局恒定的理想速度场,让训练更稳、推理更快,完美支撑 pi0 实现30-50Hz 实时闭环
  3. 从 “模块割裂” 到 “端到端融合”:深度嵌入 PaliGemma 大模型架构,通过 KV 缓存 + 自定义注意力掩码,既保留了 VLM 开放世界零样本泛化能力,又实现了动作生成的轻量化与高效性。