跳转至

MotionGPT3: Human Motion as a Second Modality

会议: ICLR 2026
arXiv: 待确认(OpenReview: https://openreview.net/forum?id=Ha075JDMZR)
代码: https://github.com/OpenMotionLab/MotionGPT3
领域: 人体理解 / 动作-语言统一建模
关键词: 人体动作生成, 动作-文本理解, 连续 VAE 隐空间, 双流 Transformer, 隐空间扩散, 多模态 LLM

一句话总结

把人体动作当作"第二种模态",用连续 VAE 隐空间替代离散 VQ token、用对称的动作分支 + 共享注意力替代单流骨干,再配一个挂在自回归 backbone 上的轻量扩散头,让一个统一模型同时做文本→动作生成和动作→文本理解,并且训练收敛快 2–4×。

研究背景与动机

  • 领域现状:多模态 LLM 想把"理解+生成"统一进一个 backbone,已经在图像/音频/视频上跑通。动作领域的主流做法是先用 VQ-VAE 把动作离散成 token,再塞进 Transformer,借 next-token prediction 复用文本那套训练/推理流水线。
  • 现有痛点:(1) 量化误差封顶——把连续轨迹离散成码本索引会丢掉高频微动力学,破坏语义-物理一致性,RVQ、后训练 tokenization 都只能缓解、无法根除这种"数值-语义不连续"。(2) 单流串扰——把离散文本和连续动作硬塞进同一条通路,多目标联合优化会产生梯度干扰、loss 尺度失配,超参敏感、训练不稳,甚至侵蚀语言能力(负迁移)。
  • 核心矛盾:动作的统计特性(连续、低维、强运动学先验)和语言模型的离散符号假设根本不兼容;既要尊重动作的连续本质,又要保住 LLM 的推理红利,二者在"单一共享表示"里很难两全。
  • 本文目标:造一个既避开量化瓶颈、又显式平衡多模态多目标训练的双模态动作-语言模型,统一支撑动作理解与生成。
  • 核心 idea【动作即第二模态】——借鉴 Mixture-of-Transformers,给语言 backbone 配一条对称的动作分支,两条分支保留各自的 embedding/FFN/归一化,只在共享自注意力层里做受控的双向信息交换;【连续隐空间 + 隐空间扩散】——动作直接用预训练 VAE 编成连续隐向量,再用挂在 LLM hidden states 上的轻量扩散头在隐空间里去噪还原,把连续动作"接"进自回归框架。

方法详解

整体框架

MotionGPT3 由三块拼成:一个把动作压成连续隐向量的 Motion VAE、一个文本/动作各走一条道、只在共享注意力处交汇的 双流 backbone、以及一个把 LLM hidden states 翻译回动作隐向量的 轻量扩散头。文本分支用预训练 GPT-2 初始化,动作分支从零学起,靠三阶段"先生成再对齐"的训练把动作分支逐步对齐到语言分支。

flowchart LR
    subgraph IN[输入序列 交错文本/动作]
        T[文本 token] 
        Z[动作隐向量 z]
    end
    T --> TB[文本分支 T<br/>GPT-2 初始化]
    Z --> MB[动作分支 M<br/>从零训练]
    TB <--> SA[共享自注意力<br/>受控双向交换]
    MB <--> SA
    MB --> H[扩散头 H<br/>在隐空间去噪]
    H --> D[Motion Decoder D]
    D --> OUT[动作序列]
    TB --> LM[LM Head] --> TXT[文本输出]

关键设计

1. 连续 VAE 隐表示替代离散 VQ token:题点在于"用平滑流形换掉码本"。给定 N 帧动作序列 \(m_{1:N}\),编码器 \(\mathcal{E}\) 把它映成一个紧凑的连续隐向量 \(z \in \mathbb{R}^d\),解码器 \(\mathcal{D}\) 负责重建 \(m = \mathcal{D}(\mathcal{E}(m))\)。VAE 一次性用重建损失(可含 pose/velocity 的运动学项)加 KL 正则训好,KL 项压低隐向量方差、催出一个平滑流形,相邻隐点对应渐变的动作。这样隐空间里全是实值向量而非码本索引,既感知上贴合原轨迹、又数值上紧凑,从根上躲开了量化伪影、保住了高频微动力学——这正是 VQ 路线封顶的地方。

2. 双流 backbone + 共享注意力做受控交互:题点在于"分而治之地路由两种模态"。输入序列 \(S = s_{1:k}\) 的每个元素要么是文本 embedding \(\tau_i\)、要么是动作隐向量 \(z_i\),由路由指示 \(\vartheta_i \in \{0,1\}\) 分派到文本分支 \(\mathcal{T}\) 或动作分支 \(\mathcal{M}\)。两条分支各算各的 hidden states \(h_t, h_m\),再按原始顺序重新拼回去喂进共享自注意力层,让信息只在注意力处交汇而不坍缩成单一 embedding 空间。因为连续隐向量没有词表/码本,文本那套 index-to-embedding 查表和 softmax 解码用不了,所以额外配了三组接口:往词表里加 <som>/<eom>/<motion_in>/<motion_out> 这类边界/占位 token 标出动作片段,用 Motion Understanding Head 把动作隐向量线性映进 Transformer 输入空间(供 captioning/预测),用 Motion Generation Head 经扩散把 hidden states 投回 VAE 隐空间。这种结构让动作分支能学自己的运动学归纳偏置,把单流里的梯度干扰摁下去。

3. 自回归 backbone 里的隐空间扩散头:题点在于"用扩散补上连续与离散的缝"。LLM 的自回归 + 交叉熵天生假设离散 token 目标,对连续动作隐向量水土不服。于是挂一个轻量扩散模块 \(\mathcal{H}\) 直接从 backbone 的 hidden states 预测动作隐向量。训练时对真值隐向量 \(z_0 = \mathcal{E}(x)\) 做固定前向加噪 \(z_t = \sqrt{\bar\alpha_t}\, z_0 + \sqrt{1-\bar\alpha_t}\,\epsilon\),时序去噪器 \(\mathcal{H}\) 以动作流 hidden states \(h_m\) 为条件,按标准 DDPM 目标 \(L_{\text{diff}} = \mathbb{E}_{z_0,t,\epsilon}\big[\|\epsilon - \mathcal{H}(z_t, t, h_m)\|_2^2\big]\) 学反向过程。推理时文本分支自回归生成到吐出 <som>,随即插入 \(K\)<motion_out> 占位 token,一次前向取出对齐的 hidden states,扩散头条件采样出干净隐向量 \(\hat z_0\),再由 VAE 解码成动作,最后拼上 <eom> 回到文本流续写。因为只在低维隐空间里跑一个小专家,扩散头训练/推理几乎不加开销。

4. "先生成再对齐"的三阶段训练:题点在于"分阶段把从零的动作分支拽进语言空间"。Stage I(Uni-task 预训练)冻住文本分支,只在文本→动作上用扩散监督动作分支,给它一个稳定的语言条件和动作专属初始化;Stage II(跨模态对齐)仍冻文本分支,引入 T2M / M2T / 动作预测等多任务(以指令式 prompt 覆盖生成、captioning、预测、inbetweening),在不强行共享表示的前提下做双向对齐;Stage III(联合微调)解冻全部参数,在配对文本-动作数据(可选混入纯文本 prompt)上做指令微调,进一步稳住语言能力。消融显示这个"generate-then-align"次序很关键——去掉 Stage I 会让 M2T 基本不变但 T2M 明显塌掉。

实验关键数据

数据集为 HumanML3D 与 KIT-ML,采用 263 维 pose 表示。模型规模约 238M(文本分支 124M GPT-2 + 动作分支从零),仅用 2 张 RTX 3090 训练。

主实验表格

文本→动作生成(HumanML3D,→ 表示越接近 Real 越好):

类型 方法 R@3↑ FID↓ MMDist↓ Diversity→
Real - 0.797 0.002 2.974 9.503
仅生成 MoMask 0.807 0.045 2.958 9.620
仅生成 MotionGPT3† 0.826 0.239 2.797 9.688
生成+理解 MoTe 0.825 0.075 2.867 -
生成+理解 MotionGPT3(统一) 0.837 0.208 2.725 9.700

动作→文本理解(HumanML3D captioning):

方法 R@3↑ MMDist↓ Bleu@4↑ Rouge↑ Cider↑ BertScore↑
MoTe 0.871 2.649 11.15 37.4 31.5 30.3
MotionGPT3† 0.853 2.524 17.661 44.997 30.980 35.850
MotionGPT3(统一) 0.864 2.426 19.412 46.173 28.721 35.231

理解侧的语言指标(Bleu/Rouge)大幅领先,MMDist 也最低,说明双流对齐在动作-语言语义层贴得更紧。

消融实验表格

组件消融(HumanML3D,交叉"架构 × 表示"四个变体):

配置 T2M R@3↑ T2M FID↓ M2T R@3↑ M2T BertScore↑
Unified+VQ 0.435 0.403 - -
Unified+VAE 0.792 0.489 0.426 16.197
Bimodal+VQ 0.532 0.454 0.702 18.085
Bimodal+VAE(本文) 0.826 0.239 0.853 35.850

任务依赖的敏感性很有意思:换成 Bimodal 主要利好 M2T(缓解串扰、对齐语义),换成 VAE 主要利好 T2M(去量化损失、提升合成保真)。

训练阶段消融(HumanML3D):

Stage I Stage II Stage III T2M R@3↑ T2M FID↓ M2T R@1↑
0.826 0.239 -
0.831 0.215 0.571
0.837 0.208 0.573
0.772 0.325 0.573

关键发现

  • VQ 路线质量封顶:VQ 基线 R@3 早早冲到 ≈0.5 就饱和,明显逊于 VAE 变体——量化信息损失是硬天花板。
  • 双流加速优化:相比单流,双流让扩散 loss 收敛快约 2×;在同等 loss(≈0.22)下双流仍有更高 R@3、更低 MMDist,即"同样训练状态、质量更好"。整体训练 loss 快 2×、验证收敛快达 4×,训练时间省约 2–3×。
  • CMA 层数非单调:跨模态注意力放在最后 L 层,L 从 2 加到 5 持续变好,L=6 时 R-Precision 略降——"靠后但非全程"的 CMA 更优。
  • Stage I 不可省:去掉文本→动作预训练,M2T 基本不变但 T2M 显著退化,说明动作专属初始化是 T2M 的关键。

亮点与洞察

  • 把"动作即语言"的隐喻拆穿:作者点出离散化把动作当符号处理,掩盖了符号序列与连续轨迹的鸿沟;用连续 VAE 隐空间直接对接 LLM,是对这一思路的清晰反拨。
  • "分而治之"反直觉但有效:常识觉得共享空间能让模态"更近",实验却显示单流耦合反而纠缠模态结构、产生负迁移;保留模态专属通路 + 只在注意力处交互,效率-保真权衡更好。
  • 小成本可复现:238M 参数、2 张 3090 就拿到 SOTA,对动作-语言研究的算力门槛友好。
  • 扩散头当"翻译器":在低维隐空间跑小扩散专家,把连续生成接进 next-token 框架,几乎零额外开销,是连接两套范式的轻巧黏合剂。

局限与展望

  • 细粒度控制会失手:方向类线索(如左/右)容易出错。
  • 单隐向量限制组合性:当前 VAE 每条序列只产一个隐向量,长动作的片段级组合、局部语义对齐没有显式支持。
  • 域外泛化受数据覆盖约束:对 out-of-domain 描述的泛化有限。
  • 展望:在最后对齐阶段混入更多纯文本语料、换更强语言 backbone、探索层级/分段隐表示以支持组合控制和长时程生成,以及扩到更大更多样的数据上验证效率与鲁棒性。

相关工作与启发

  • Mixture-of-Transformers (MoT):本文双流架构的直接来源——模态专属 Transformer 专家 + 共享注意力耦合,既模块化训练又减少新模态引入时的干扰。
  • MLD / MotionGPT:连续 VAE 隐空间扩散(MLD)与"动作即语言"的离散 token 统一模型(MotionGPT)分别是表示侧和架构侧的前作,本文把二者的优点重新组合。
  • Chameleon / Transfusion / Show-o / Janus / NExT-GPT:视觉-语言统一模型的各种单流/适配器方案,作者借它们论证单流串扰的普遍性,反衬多流路由的价值。
  • 启发:当一种新模态的统计特性与文本差异很大时,"保留模态专属通路 + 只在注意力处受控交互 + 用小扩散头接回连续生成"是个可迁移的统一范式,对音频、点云等连续模态接入 LLM 都有参考意义。

评分

  • 新颖性: ⭐⭐⭐⭐ 把连续 VAE 隐空间、MoT 双流、隐空间扩散头三者组合进统一动作-语言模型,单个组件多有前作,但"动作即第二模态"的整体框架与三阶段训练有清晰创新。
  • 实验充分度: ⭐⭐⭐⭐ 在 HumanML3D/KIT-ML 上 T2M 与 M2T 双任务对比 + 架构×表示四象限消融 + CMA 层数 + 训练阶段消融,训练动态曲线也做了,较全面;但仅两个数据集、规模偏小。
  • 写作质量: ⭐⭐⭐⭐ 动机推导清晰、图示到位,论点(量化封顶/单流串扰)有曲线和消融支撑;个别表述与拼写略粗糙。
  • 价值: ⭐⭐⭐⭐ 给动作-语言统一建模提供了一条避开量化、低算力、训练高效的实用路线,开源代码 + 2 卡可复现,落地与后续研究价值都不错。