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 策略保留这些动作作为后续评估的输入,但屏蔽它们对应的损失项,避免直接监督错误生成。 下面用等价的掩码记法解释该策略,不是转录论文编号公式:
其中 \(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,为动作生成中的反馈训练提供可复用方案,同时揭示语义对齐和分布质量的权衡。