
训练明确采用 SFT → RL;更新 Qwen3.5-9B 编码模型,MiniMax-H3 视频生成器保持固定。
Video-Coder · 总览01 / 17
Video-Coder 先写 Blender Python、渲染灰模,再用文字与灰模生成最终视频。

训练明确采用 SFT → RL;更新 Qwen3.5-9B 编码模型,MiniMax-H3 视频生成器保持固定。
Figure 1;§3.2–3.3;原图 CC BY 4.0论文 ↗
Video-Coder · 产物与边界02 / 17
灰模是几何、轨迹与相机的中间控制信号;最终外观由下游生成器合成。
§3.2–3.3;README Inference;流程为本文绘制论文 ↗
Video-Coder · 论文案例03 / 17
Figure 1 的真实要求同时约束对象数量、动作先后和视角;作者没有附上该例完整执行日志。
| 输入中的要求 | 编码模型要具体决定 | 最终视频检查什么 |
|---|---|---|
| 球滚下长斜坡 | 球与斜坡的几何、位置和动画 | 球是否沿斜坡运动 |
| 撞倒底部叠放的三个方块 | 三个对象、堆叠关系与接触后的运动 | 数量正确、碰撞与倒下顺序 |
| 相机从左侧慢绕90° | 相机轨迹、朝向与整个动作的取景 | 相机是否按要求移动 |
这是按论文要求解释职责,未补造作者代码或该例 judge 分数。关键帧动画也能通过运行检查。
Figure 1;Appendix A–B论文 ↗
Video-Coder · 执行反馈04 / 17
harness 是作者提供的任务执行环境:shell 写文件,静态检查与渲染返回反馈。
| 操作 | 返回的证据 | 能建立什么 |
|---|---|---|
| check_script main.py | 语法、bpy导入、相机与render调用 | 结构检查通过;不证明能运行 |
| run_blender main.py | 错误或MP4规格、场景摘要、8帧图像 | 能渲染;粗查空白、静止、出镜 |
| 提交结束命令 | 独立重跑最终脚本与环境检查 | 产物不依赖此前临时文件 |
当前公开配置:Blender 4.5、1280×720、24 fps、120–240帧;RL 最多100轮。检查不验证守恒定律或物体语义。
§3.2;Appendix A;teacher.yaml;static_check.py / blender_exec.py论文 ↗
Video-Coder · 真实轨迹05 / 17
公开 SFT 首条:a man standing in front of a machine. 教师自己添加了按按钮和机器启动的动画。
| 执行记录 | harness结果 | 教师接下来做什么 |
|---|---|---|
| 第一次渲染:116.2s | 144帧 / 24fps / RUN OK | 发现躯干与腿脱节、父子坐标偏移;重写 |
| 第二次渲染:122.8s | 同规格 / RUN OK | 发现 Press_Head 等位置过高;重写 |
| 第三次渲染:123.8s | 同规格 / RUN OK | 检查抽帧与场景摘要后提交 |
31条messages、10次工具调用;这是公开教师记录,未在本文重渲染。数据末尾是提交调用,没有最终验收报告或 RL 奖励。
HF sft_data.json row 0;revision c60da610;记录为本文整理论文 ↗
Video-Coder · 数据构建06 / 17
作者改写真实视频数据的caption,明确对象、布局、动作和相机;过滤难用几何表现的内容。

InternVid / OpenVid-1M / MiraData → Gemini 3.8 Flash 多轮写代码 → MiniMax-H3 合成参考 → 执行、草稿质量、Seed2.0一致性筛选。
§3.1;Figure 2;CC BY 4.0;图中6k/2k与§4.1不同论文 ↗
Video-Coder · 两阶段训练07 / 17
视频生成器固定;RL 会重新采样代码和修复过程,再由结果奖励改变编码策略。
| 阶段 | 训练信号 | 更新对象 |
|---|---|---|
| SFT | 教师的多轮推理、代码与工具调用 | Qwen3.5-9B;公开脚本 full fine-tuning |
| Agentic RL | 每题8条新轨迹:执行验收 + 最终视频评分 | 同一个编码模型的生成动作 |
| MiniMax-H3 | 输入文字与灰模,产出真实外观视频 | 本次训练不更新 |
| 视频judge | 文字、合成参考与候选最终视频 | 只返回评分,不训练judge |
参考答案留在训练环境与judge侧,编码模型推理只收到场景文字、工具与自己的执行反馈。
§3.3;task.py;公开 SFT / RL入口论文 ↗
Video-Coder · RL一次尝试08 / 17
accepted 草稿才能进入下游视频生成与比较;失败脚本不能靠文本自称完成。
§3.3;task.py:74–151;video_reward.py:609–640;本文绘制论文 ↗
Video-Coder · 视频评分09 / 17
Qwen3.8-omni-flash 先从文字抽3–6条硬约束,再看参考与候选最终视频。
| JSON字段 | 与谁比较 | 公开代码默认权重 |
|---|---|---|
| faithfulness | 文字:对象、数量、动作和关系 | 0.25 |
| layout | 参考视频:相对位置、大小、朝向 | 0.25 |
| motion | 参考视频:运动方向、顺序、时间 | 0.30 |
| camera | 参考视频:视角、取景、相机运动 | 0.20 |
每项要求取0 / .25 / .5 / .75 / 1。忽略纹理、颜色、材质、光照、脸与衣服、音频和美观;参考不是唯一正确答案。
Appendix B / Figures 8–9;video_reward.py:113–199,414–417论文 ↗
Video-Coder · 算一次奖励10 / 17
以下分数是本文说明性输入,不是球、汽车或教师样本的真实得分。
| 项 | 计算 | 结果 |
|---|---|---|
| 视频四项 | .25×.75 + .25×.5 + .30×.25 + .20×1 | Rvideo = .5875 |
| 执行成功、step=0 | 1 + .5×.5875 | R = 1.29375 |
| 执行成功、step=T | exp(−1) + .5×.5875 | R ≈ .66163 |
| motion_na=true | 去掉motion,剩余权重除以.70 | Rvideo ≈ .73214 |
公开代码还加一道条件:faithfulness ≤ 0 时总奖励归零,连执行项也取消。视频服务或judge异常默认丢弃该rollout。
Eq.3;video_reward.py:321–417;数字为本文重算论文 ↗
Video-Coder · 退火的实际效果11 / 17
R = 0.5 Rvideo + exp(−steps/T) Rexe;T 在这里是总训练步数。
| 训练进度 steps/T | 执行项系数 | 视频项系数 |
|---|---|---|
| 0 | 1.0000 | 0.5 |
| 0.5 | 0.6065 | 0.5 |
| ln2 ≈ 0.693 | 0.5000 | 0.5 |
| 1.0 | 0.3679 | 0.5 |
系数大小不等于贡献大小:末步需 Rvideo > .7358,视频项才超过成功执行项。同组全成功时,执行常数在组内中心化中抵消。
Eq.3–4;本文数学分析;Table 3退火消融论文 ↗
Video-Coder · 策略更新12 / 17
两者都比较同题多条轨迹,但不能把优势估计名字当作整个优化目标。
| 环节 | 论文 | 当前公开代码 |
|---|---|---|
| 优势 | (Ri−组均值) / 组std | GRPO;torch.std + 1e−6 |
| 策略损失 | clip策略比值,含KL项 | GSPO;序列平均log-ratio;clip±4e−4;默认KL关闭 |
| 训练token | 未完成rollout masked | 模型输出1;工具/图像上下文0;未完成整条0 |
| 聚合 | 式中按轨迹平均 | token-mean;较长生成轨迹权重更大 |
未完成轨迹的0奖励仍影响组内基线;服务异常的丢弃与未完成mask不是一回事。代码默认值不能证明主表用的精确运行版本。
Eq.4–5;train_video_coder_rl.sh:55–69;core_algos.py / framework.py论文 ↗
Video-Coder · 主结果13 / 17
PhyGenBench 四类物理常识评分;论文沿官方协议使用 GPT-4o judge。
| 同表对照 | 原生成器 | + Video-Coder | 差值 |
|---|---|---|---|
| MiniMax-H3 Average | .61 | .67 | +.06 |
| Mechanics | .61 | .68 | +.07 |
| Optics | .73 | .79 | +.06 |
| Thermal / Material | .52 / .55 | .60 / .61 | +.08 / +.06 |
| OmniWeaving Average | .48 | .51 | +.03 |
完整 Table 1 在正文保留。摘要“约7 points”不等于表中6个百分点;§4.2的OmniWeaving“16.28 points”也与表不符。
Table 1;§4.1–4.2;本文按完整表重算论文 ↗
Video-Coder · 物理维度与反例14 / 17
只报告 Mechanics、Thermotics、Material;78.19%不是整个VBench-2.0总分。

对MiniMax:54.58%→78.19%;对CogVideoX-1.5:77.04%→78.19%,只高1.15个百分点。材料维度低8.17个百分点。
Table 2;§4.2;原表 CC BY 4.0论文 ↗
Video-Coder · 消融15 / 17
同一MiniMax-H3、同一PhyGenBench;full在六个已报告条件中最好。

无退火 .65、无视频奖励 .64、无执行奖励 .63。支持这份训练配方有增益;缺少等计算更长SFT、误差条和行为统计,不能证明RL不可替代。
Table 3;§4.3;CC BY 4.0论文 ↗
Video-Coder · 发布与成本16 / 17
核对到2026-11-09:完整JSON可获取,模型权重公开列出;本次未跑GPU训练或视频服务。
| 来源 | SFT / RL规模或资源 | 证据边界 |
|---|---|---|
| 摘要、§3、Figure2 / 项目 | 6k / 2k | 与实验章节矛盾 |
| §4.1、Conclusion / HF说明 | 10k / 4k | 没有统一版本说明 |
| 公开JSON实际计数 | 5,609 / 1,678 | 不能倒推主表训练集 |
| 论文训练资源 | 8 H100编码 + 16 H100视频生成 | 约3天;不是8卡总成本 |
GitHub cbc3d975;HF data c60da610。公开SFT脚本4卡、128K;论文8卡、120K,运行设置也需区分。
§4.1;HF Train-Data完整JSON;GitHub固定revision论文 ↗
Video-Coder · 结论17 / 17
论文与代码明确包含RL;收益集中在结构、运动和物理评测,尚有可复現性与judge可靠性问题。
| 这篇支持什么 | 下一步应查什么 |
|---|---|
| Blender灰模改善固定生成器的物理分数 | 灰模正确后,生成器是否破坏结构 |
| SFT后RL有额外收益 | 等预算更长SFT / 冻结编码策略对照 |
| 可执行代码提供编辑与重复运行基础 | 接触、守恒、物体数量的程序化检查 |
| 已公开实际训练文件与工具 | 统一数据版本、失败分母、重复seed和judge人工审计 |
已验证源码与公开记录;未独立复现主表。执行成功、参考一致与真实物理正确需要分别检验。
§3–4;Appendix A–B;本篇证据边界与研究建议论文 ↗