PyVision:基于动态工具的具身智能体
论文地址:
1. 背景
现有的智能体一般都是通过大模型规划调用已经预定义好的一些工具(具体来说也就是一些函数)来解决问题。这样就会导致在针对特征的任务上Agent去解决问题缺乏灵活性。所以这篇文章就提出了pyVision来在解决特定问题的时候,针对任务具体的生成一些工具(函数或者也这说是代码)来提高智能体解决问题的能力。
2.框架架构
从示意图中可以看到PyVision 使一个多语言大语言模型(MLLM) 能够在推理过程中动态生成并执行Python 代码。在每个会话中,MLLM 接收一个输入(Input),生成相应的Python 代码,并在一个隔离的Python 运行环境中执行它。生成的输出——文本、视觉或两者皆有——会反馈回MLLM 的上下文,使其能够在多轮中迭代和完善其推理,直到产生最终答案。
其中:
- code_block_i 指的是MLLM 在第i 轮生成的Python 代码。
- mm_clue_i 指的是Python 解释器执行后的多模态输出。
3.具体推理案例
在文章中提到了针对几个不同领域特定的任务,来使用pyVsion来解决视觉推理的例子。
3.1 视觉搜索
3.2 医学图像分析
3.3 符号视觉谜题
3.4视觉草图绘制
3.5 视觉差异比较
3.6 视频理解
4 论文结论
从图中可以看到选择的这几种的任务数据集上,其中:
MathVista和MathVision-mini其中主要是多模态数学。用于测试LLM在具有需要视觉感知和数值推理的数学问题的表现。
MMMU:其中主要是测试跨学科的特定领域推理。
VisualPUzzles和VLMAreBlind-mini:里面主要是符号视觉谜题组成,用于测试LLM探索对抽象、结构化视觉原语
进行解析和推理的极限。
V∗主要用于测试LLM精确识别微妙的视觉细节。
从图中可以看到,在GPT-4.1的使用了Pyvision之后的PyVision-GPT-4.1在 MathVista的测试上提升了1.8%(也就是从69.9%-71.7%)同样的也可以看到在其他任务上也得到了一些提升。但是相比于o1 o3这些模型上面,其实还是差了不少。也同样说明这个框架中所用的后端大模型对于整体在解决这些问题上也是很重要的。
5. 代码复现
待完成