CodeDance: A Dynamic Tool-integrated MLLM for Executable Visual Reasoning
Idea
CodeDance 让 MLLM 用可执行 Python 组织 visual reasoning,把 image crop、计算、绘图与标注统一为 code action。模型在 think–execute–feedback loop 中读取执行产生的文字和图像,再决定下一步操作或输出答案,从而组合出超出固定 tool schema 的视觉处理流程。
Research Problem
固定工具集容易限制操作组合,而仅把 code interpreter 接到模型上也不能保证有效使用:模型可能反复调用工具、产生不可执行代码,或在真正需要外部操作时直接猜答案。trajectory-level reward 还难以区分是哪一次调用有用,导致 tool use 的局部 credit assignment 不充分。
Insight
论文认为工具使用强度应随任务难度变化:简单问题应减少冗余调用,困难问题应允许探索;同时 execution failure 应立即影响对应 turn 的学习信号。统一 code interface 提供可组合的 action space,而分层 reward 决定模型能否学会有目的地使用这个空间。
Method
- 每个 interaction turn 生成 reasoning 和 Python code,在 sandbox 中执行;crop、plot、annotation 等可视化结果与文本输出回传模型,形成下一 turn 的 observation。达到 final answer 或 turn limit 时结束。
- 先用经过难度分层与强模型校验的 atomic trajectories 做 SFT,覆盖 crop / resize、数学与统计操作、绘图和标注等基本能力,让模型掌握 interpreter interface。
- 随后用 GRPO 优化 composite reward:answer correctness、format 与 BAT reward。BAT 的 sequence-level 项利用同组样本的成功率估计难度,调节有效 tool calls 的激励。
- BAT 的 turn-level 项惩罚 execution failure,并以 discounted return 传播后续反馈;将 turn 与 sequence advantages 合并,训练可组合的 multi-turn visual reasoning policy。
Sources & Reading Scope
阅读依据:官方 PDF 正文。核读页码按 PDF 页序计数,可能与 proceedings 页码不同。
核读章节:Methodology · Two-stage Training · Difficulty-aware and Turn-level Rewards
依据正文的 execution loop、SFT 与 RL 设计整理;未将作者观察到的组合能力解释为任意工具上的普遍泛化保证。