跳转至

IRG-MotionLLM: Interleaving Motion Generation, Assessment and Refinement for Text-to-Motion Generation

会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/HumanMLLM/IRG-MotionLLM
领域: 人体理解
关键词: 文本到动作生成、动作评估、动作修正、交错推理、GRPO

一句话总结

IRG-MotionLLM 将生成动作本身纳入“生成、评估、修正”的交错推理闭环,以三阶段训练改善文本动作对齐,在 HumanML3D 上将所用 MotionLLM 基线的 R-Precision Top-1 从 0.496 提升至 0.535,但最终强化学习模型的 FID 并非同步改善。

研究背景与动机

文本到动作生成要把语言中的身体部位、动作顺序和细节转成连续的人体运动,而不只是生成一个大体相关的动作类别。 扩散模型、掩码动作建模和自回归模型都能生成自然动作,但“自然”并不保证“准确执行描述”。 例如,模型可能正确生成跳跃,却漏掉每次跳跃时脚跟后踢的细节。 MotionGPT、MotionChain 等动作感知大语言模型把动作描述和动作生成放入同一模型,使理解与生成可以共享表示。 然而,如果训练和调用仍然是彼此独立的任务,模型会描述动作并不等于它会检查、纠正自己刚生成的动作。

因此,论文关心的不是多加一种任务名称,而是怎样把理解结果变成对生成过程有用的反馈。 单纯在生成前分析文字,无法发现实际输出中的遗漏、错误身体部位或多余动作。 有效反馈必须同时看到目标文本和当前动作,指出二者偏差,再形成可执行的修正指令。 这又带来训练难题:需要不同错误程度的动作和评语,需要学习何时继续修正,还要避免把错误动作当成正确生成目标。

本文选择用动作评估和动作修正连接已有能力,再通过显式交错轨迹和强化学习让模型自行组织这些步骤。 这是一种训练与推理协议的改进,而不是重新设计动作解码器或提出新的物理仿真器。 核心 idea:让同一动作语言模型检查已经生成的动作,并把评估结果用于下一次生成,使动作理解成为生成过程中的反馈信号。

方法详解

整体框架

输入是目标动作描述和推理指令,输出是一段最终人体动作序列,同时可以得到中间动作、评估文字和修正建议。 骨干沿用 Motion VQVAE 与 LLM 的组合,实验中的 LLM 是 Gemma2-2B。 Motion VQVAE 将连续动作编码为离散码本索引,LLM 的词表增加 \(K+2\) 个条目,其中 \(K\) 是动作码本大小,另外两个是动作边界 token。 <Motion> 和 </Motion> 标识动作片段,使文本和动作 token 可以交替出现在同一自回归序列中。 最终动作从这些边界中提取,并通过动作解码器恢复为运动序列;模型不是只输出动作的文字描述。

训练依次经过分级反馈数据引擎、原子任务初始化、屏蔽错误的交错学习和对齐奖励强化。 前三个训练阶段的模型分别记为 S1、S2、S3;数据引擎是它们的监督准备过程,不是推理时在线调用的评估服务。 S1 需要外部按顺序提示生成、评估和修正;S2 与 S3 才能在一次输入后自行推进结构化交错过程。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        Input["训练文本动作对"] --> Data["分级反馈数据引擎"]
        Data --> Atomic["原子任务初始化"]
        Atomic --> CoT["屏蔽错误的交错学习"]
        CoT --> RL["对齐奖励强化"]
        RL --> Runtime["推理:分析、生成、评估"]
        Goal["目标文本与推理指令"] --> Runtime
        Runtime -->|依据修正指令再生成| Runtime
        Runtime -->|评估认为无需修正| Output["最终动作"]

关键设计

1. 分级反馈数据引擎:让训练同时包含明显错误和近似正确的动作

仅随机抽取负样本,通常会得到与目标差得很远的动作,模型容易学会粗粒度拒绝,却不擅长找细节错误。 论文先用预训练的 TMR 动作编码器表示数据集中的动作,以锚点动作与其他动作的嵌入距离构造排序池。 候选从距离大到小排列,每次从当前池中距离最大的前 \(p\) 比例中随机抽取一个负动作,然后移除这部分候选。 重复这一过程可以得到不同接近程度的负动作,而不是反复抽到完全无关的运动。 这里的接近程度是编码器空间中的排序,不是人工给出的绝对语义正确率。

数据引擎用 GPT-4o 分析目标描述中的关键要求,再让 LLM 根据锚点与负样本的文本描述给出对齐评估和修正指令。 因此,合成反馈主要借助数据集已有描述,并不等于 GPT-4o 直接观看和检查了每段动作。 例如,目标描述要求放下双手再挥动右手,负样本文本却描述抬手和转身,评语就应指出遗漏和多余成分,并给出替换建议。 作者还人工检查并过滤空回复、要求修改已正确动作等失败标注。 这些内容既能拆成单步任务,也能拼成逐渐改善的交错训练轨迹,避免为每种训练阶段重新采集完整数据。

2. 原子任务初始化:先教会模型看差异和执行修改

S1 的监督微调包含四个基础任务:动作描述、直接动作生成、目标分析和分析引导的动作生成。 前两个建立文本与动作的双向映射,后两个让语言分析明确指出生成时不能遗漏的约束。 另有四个改进任务:文本动作对齐评估、动作修正指令生成、直接动作修正和指令引导的动作修正。 直接修正只给当前动作与目标,指令引导修正还提供明确的修改要求,使模型既能自己定位问题,也能执行已有反馈。 相较于只做动作描述,评估任务必须对照目标判断哪里不符;相较于重新采样,修正任务必须利用当前动作与诊断信息。

这些原子任务以各自的指令模板进行监督微调,而不是从一开始就要求模型自主完成长轨迹。 S1 已可通过外部顺序调用这些任务形成闭环,但不能把这种人工连接描述为完全自主的推理能力。 表 1 中仅基础任务的 Top-1 为 0.500,加入改进任务后的 S1 为 0.504,说明单步收益存在但并不巨大。 更有说服力的是表 3:同一个 S1 从初次生成到闭环最终生成,Top-1 从 0.504 变为 0.522。 这将“多任务训练得到更好的模型”与“调用理解反馈进一步改善动作”两个作用区分开来。

3. 屏蔽错误的交错学习:把错误留作上下文,不把错误教成答案

S2 使用 IRMoGen-CoT 模板,把目标分析、动作生成、对齐评估、修正指令和下一步计划放在同一序列中。 [Plan] 描述接下来执行的步骤,[Analysis] 容纳目标分析,[Generation] 容纳动作,[Assessment] 容纳评估及修正要求。 修正不是另一个连续优化器,而是模型在看过此前动作和反馈后,再次生成动作 token。 评估认为无需修正时,模型计划结束思考;若一条轨迹生成 \(n\) 次动作,前 \(n-1\) 次是中间动作,最后一次是最终动作。 训练轨迹将负样本按对齐逐步改善的顺序放在中间,最后放与目标配对的真实动作。

危险在于,若对整条序列无差别做下一 token 预测,模型也会被奖励生成那些已知不匹配的中间动作。 Ignore Incorrect 策略保留这些动作作为后续评估的输入,但屏蔽它们对应的损失项,避免直接监督错误生成。 下面用等价的掩码记法解释该策略,不是转录论文编号公式:

\[ \mathcal{L}_{\mathrm{S2}}=-\sum_{\ell\notin\mathcal{I}_{\mathrm{wrong}}}\log p_\theta(y_\ell\mid q,y_{<\ell}). \]

其中 \(q\) 是输入,\(y\) 是交错轨迹,\(\mathcal{I}_{\mathrm{wrong}}\) 是错误中间动作 token 的位置集合。 这些位置依然出现在上下文中,屏蔽目标项不等于从序列中删除动作,也不意味着冻结共享模型参数。 分析、计划、评估以及最终正确动作仍提供监督,所以模型能学会“面对这种错误应该怎样继续”。 表 1 去掉屏蔽后 Top-1 降至 0.448、FID 升至 0.592,是这一设计最直接的证据。 不过,学会轨迹格式并不保证愿意多轮修正:正文报告 S2 大多在第一次生成后结束。

4. 对齐奖励强化:让继续修正有机会换来更高回报

S3 从 S2 出发,用 GRPO 为同一个目标采样一组完整交错轨迹,按轨迹最终动作计算回报并进行组内比较。 格式奖励约束轨迹符合模板,便于识别动作、评估与结束位置。 文本动作对齐奖励使用成对的文本与动作编码器,鼓励最终动作与目标描述接近。 动作动作对齐奖励比较最终动作与配对真实动作;只有文本而没有真实动作的训练样本,该项设为 0。 各奖励先在组内归一化到相同尺度,再求和用于标准 GRPO 优化。

缓存第 8 页的奖励公式存在运算符和分支提取缺损,无法可靠恢复精确表达式,因此这里只保留正文明确支持的奖励组成与计算对象。 训练奖励所用编码器来自 HumanML3D 官方评估体系;它们与数据引擎用于负样本排序的 TMR 编码器不是同一角色。 这些奖励作用于最终动作,而不是显式按推理长度发奖,所以更长轨迹应理解为训练后观察到的行为变化。 论文图 5 显示强化学习后多轮生成增多,但不能据此推出每次多想一轮都必然更好。 同样,嵌入对齐回报不是物理约束,也不保证 FID 或身体接触质量随之提高。

一个完整示例

图 6 给出的目标是人物上下跳跃,并在空中踢起脚跟。 初次动作已经有原地跳跃,却没有脚跟后踢;若只在生成前分析文字,这个实际输出中的遗漏不会被直接检查。 模型的评估指出动作部分符合目标,但缺少跳跃过程中的脚跟动作,并给出每次跳跃加入明确踢跟动作的修正要求。 下一次生成据此补足细节,而不是仅输出一段“我已经修好”的文字。 这是原文定性示例,不附加未报告的置信度、修正次数统计或成功率。

损失函数 / 训练策略

S1 是八类原子任务的监督微调,S2 是带错误动作损失屏蔽的轨迹监督学习,S3 是以最终动作奖励为主的 GRPO。 HumanML3D 使用 MotionLLM 官方预训练权重初始化;KIT-ML 基线则按其官方实现训练,不能混称两者都直接使用同一预训练结果。 默认 HumanML3D 的 S3 使用约 9k 条数据、900 个 GRPO 步骤。 数据来自原始训练数据与 InstructMotion 扩写描述;KIT-ML 也使用原始描述与 GPT-4o 增强描述。 作者排除了与测试集完全相同的提示词,但这不等价于证明所有语义近重复都已清除。 扩大版本将数据量提高到与 UniMo 相近的规模并训练 2,600 步,不能把其结果混入默认 900 步设置。 所给缓存只含正文及参考文献,没有附录,因此不补写学习率、组大小、采样参数或附录消融细节。

实验关键数据

主实验

以下摘自原文表 4,第 13 页;使用各数据集的标准评估设置,作者重复评估 20 次,表中仅列均值,原表还给出 95% 置信区间。 R-Precision Top-1 衡量跨模态检索匹配准确率,越高越好;FID 衡量生成与真实动作特征分布差异,越低越好;MM-Dist 是配对文本动作嵌入距离,越低越好。 这里的 HumanML3D 基线是作者实际使用的官方权重复测行,不是原表另一条文献报告的 MotionLLM 行。

数据集 方法 Top-1 ↑ FID ↓ MM-Dist ↓
HumanML3D MotionLLM,所用官方权重 0.496 0.198 3.029
HumanML3D S1 + IRMoGen 0.522 0.135 2.906
HumanML3D S2 + IRMoGen 0.526 0.111 2.885
HumanML3D Motion-R1 0.515 0.201 2.854
HumanML3D S3 + IRMoGen 0.535 0.242 2.785
KIT-ML MotionLLM,按实现训练 0.416 0.560 3.001
KIT-ML S2 + IRMoGen 0.419 0.389 2.908
KIT-ML S3 + IRMoGen 0.445 0.432 2.740

HumanML3D 的默认 S3 比所用基线高 3.9 个百分点 Top-1,但其 FID 为 0.242,差于基线 0.198 和 S2 的 0.111。 KIT-ML 也呈现从 S2 到 S3 对齐改善、FID 回退的组合,因此应称为对齐增强,而非所有质量维度全面胜出。

消融实验

下表摘自原文表 1,第 11 页,均为 HumanML3D;S1 行是单步生成,S2/S3 行采用各自训练后的推理设置,不把跨阶段比较当成固定推理预算实验。

配置 Top-1 ↑ FID ↓ MM-Dist ↓
S1,仅 T2M 任务 0.495 0.185 3.072
S1,仅基础任务 0.500 0.123 3.086
S1,全部八个任务 0.504 0.141 3.018
S2,无评估与修正轨迹 0.503 0.125 3.023
S2,无 Ignore Incorrect 0.448 0.592 3.519
S2,完整配置 0.526 0.111 2.885
S3,完整配置 0.535 0.242 2.785

去掉 Ignore Incorrect 后,相对完整 S2 的 Top-1 下降 7.8 个百分点,说明错误动作监督会显著损害对齐,而不只是影响输出格式。 下表摘自原文表 3,第 12 页,直接比较同一阶段的初次与最终动作;S1 的闭环由外部顺序提示实现。

阶段 动作位置 Top-1 ↑ FID ↓ MM-Dist ↓
S1 初次 0.504 0.141 3.018
S1 最终 0.522 0.135 2.906
S2 初次 0.497 0.136 3.052
S2 最终 0.526 0.111 2.885
S3 初次 0.503 0.221 3.006
S3 最终 0.535 0.242 2.785

关键发现

  • 闭环效应比“第一次就生成得更好”更明确:S3 初次 Top-1 是 0.503,最终是 0.535,而 S1 初次已经有 0.504。
  • 更换评估器仍有对齐收益:表 6,第 14 页,MARDM 评估器下所用基线与 S3 的 Top-1 分别为 0.470 和 0.509,但 FID 分别为 0.240 和 0.259。
  • 扩大训练预算有帮助:表 5,第 13 页,从默认 900 步到扩大数据的 2,600 步设置,Top-1 从 0.535 到 0.564,FID 从 0.242 到 0.208;数据量与步数同时变化,无法单独归因。
  • 理解侧也受益:表 2,第 11 页,仅基础任务与完整 S1 的 CIDEr 分别为 48.94 和 52.4,不过这不能代替对反馈事实正确性的直接评测。

亮点与洞察

  • 中间错误是教学上下文,而非模仿目标。 保留错误动作才能教模型如何诊断,屏蔽其损失则避免破坏已有生成能力,这一原则可用于其他带失败轨迹的生成训练。
  • 评估与修正构成具体接口。 动作描述只回答发生了什么,目标对照评估则回答哪里不对,使理解能力有明确途径影响下一次生成。
  • 同阶段首末动作比较定位了收益来源。 它比单看最终排行榜更接近检验闭环机制,但仍需匹配计算预算的多次采样基线才能排除额外计算的影响。

局限与展望

  • 奖励与质量并不完全一致。 S3 多次出现对齐改善而 FID 变差;加入运动平滑性、接触和物理一致性约束是读者建议,不是本文已验证的改进。
  • 合成评语依赖描述覆盖度。 若负样本描述漏写身体细节,基于文本差异生成的反馈也可能漏诊;需要直接针对动作的独立人工评估。
  • 推理成本尚不清楚。 多轮动作 token 和文字反馈增加生成量,正文没有足够延迟、显存或固定预算对比,不能据此主张实时部署优势。
  • 原文边界需保留。 第 8 页称 S2 超过 70% 的轨迹仅生成一次,第 12 页称超过 75%;两处表述保留为各自下界,不据此补造精确比例。
  • 补充证据未核验。 作者将用户研究、跨模型奖励迁移、MotionFix 编辑实验和更多局限讨论放在附录;当前缓存没有这些部分,本文不报告其具体成绩。

相关工作与启发

  • 与 MotionGPT / MotionChain 相比: 这些工作建立多任务或对话式动作接口,本文把任务连接聚焦于检查当前生成结果和反复修正,而不是仅扩展会话功能。
  • 与 Motion-R1 相比: 按本文相关工作描述,Motion-R1 在生成前进行不含已生成动作的文本推理,本文则把动作本身放入后续推理上下文;这一区别比是否采用 GRPO 更关键。
  • 与 UniMo 相比: 表 5 展示了强化学习数据量与训练步数的重要性,比较统一动作模型时应同时报告预算,不能把所有差距都归于交错模板。
  • 可延伸方向: 在同样动作生成次数下比较随机重采样、评估后筛选和评估后修正,并人工标注遗漏修复率,可更清楚区分反馈内容的价值与额外计算的价值。

评分

  • 新颖性: 4/5,将动作作为交错推理中的可检查对象,并用评估与修正连接已有任务。
  • 实验充分度: 4/5,提供双数据集、双评估器和关键训练消融,但推理预算与补充证据仍有限。
  • 写作质量: 4/5,三阶段逻辑清楚,不过正文百分比表述与奖励公式提取边界需要读者注意。
  • 价值: 4/5,为动作生成中的反馈训练提供可复用方案,同时揭示语义对齐和分布质量的权衡。