MLLM之Bench:LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略

MLLM之Bench:LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略

目录

LEGO-Puzzles的简介

1、LEGO-Puzzles的特点

LEGO-Puzzles的安装和使用方法

1、安装

步骤 0:安装 VLMEvalKit

步骤 1:设置 API 密钥(可选)

步骤 2:在 LEGO-Puzzles 上运行评估

推理 + 评估:

仅推理:

多 GPU 加速(可选):

LEGO-Puzzles的案例应用


LEGO-Puzzles简介

2025年4月,LEGO-Puzzles是一个用于评估多模态大型语言模型 (MLLM) 多步空间推理能力的基准测试。

LEGO-Puzzles 基准测试旨在系统地评估多模态大型语言模型 (MLLM) 的多步空间推理能力。它以乐高积木搭建为灵感,将空间理解定义为一系列乐高积木组装任务,这些任务需要模型同时具备视觉感知和顺序推理能力。 该基准测试包含三种核心任务类型:空间理解、单步顺序推理和多步顺序推理。 除了传统的视觉问答 (VQA) 任务外,LEGO-Puzzles 还包含图像生成任务,评估 MLLM 是否能够模拟结构转换并预测未来的组装状态。为了方便人类与模型进行比较,LEGO-Puzzles 还提供了一个精简的子集 LEGO-Puzzles-Lite,以及一个名为 Next-k-Step 的细粒度评估套件,用于测试在日益复杂的条件下推理的可扩展性。

总而言之,LEGO-Puzzles 提供了一个基于乐高积木的基准测试,用于评估 MLLM 的多步空间推理能力,其结果表明当前的 MLLM 在此方面仍有很大的提升空间。 该基准测试易于使用,并与 VLMEvalKit 框架集成,方便研究者进行模型评估。

GitHub地址:https://github.com/Tangkexian/LEGO-Puzzles

1、LEGO-Puzzles特点

● 基于乐高积木:使用乐高积木搭建场景作为测试对象,直观易懂,便于理解和解释结果。

● 多任务类型:包含空间理解、单步顺序推理和多步顺序推理三种核心任务类型,以及图像生成任务,全面评估空间推理能力。

● 可扩展性:通过 Next-k-Step 评估套件,可以测试模型在不同步数下的推理能力。

● 可解释性:任务设计清晰,结果易于解释,方便分析模型的优缺点。

● 包含图像生成任务:不仅评估问答能力,还评估模型生成图像的能力,更全面地考察空间推理能力。

● 提供精简数据集:LEGO-Puzzles-Lite 方便进行人机性能比较。

LEGO-Puzzles安装和使用方法

LEGO-Puzzles 已完全集成到 VLMEvalKit 框架中。

1、安装

安装和使用方法如下:

步骤 0:安装 VLMEvalKit

git clone https://github.com/open-compass/VLMEvalKit.gitcd VLMEvalKitpip install -e .

步骤 1:设置 API 密钥(可选)

如果要评估基于 API 的模型(例如 GPT-4o、Gemini-Pro-V 等)或使用 LLM 作为评判模型,需要在 .env 文件中配置必要的密钥,或者将其导出为环境变量:

# Example .env (place it in VLMEvalKit root directory)OPENAI_API_KEY=your-openai-keyGOOGLE_API_KEY=your-google-api-key# ...other optional keys

如果没有提供密钥,VLMEvalKit 将默认使用精确匹配评分(仅适用于 Yes/No 或多项选择任务)。

步骤 2:在 LEGO-Puzzles 上运行评估

将数据集名称设置为 LEGO 即可运行 LEGO-Puzzles:

推理 + 评估

python run.py --data LEGO --model <your_model_name> --verbose# Example:# python run.py --data LEGO --model idefics_80b_instruct --verbose

仅推理

python run.py --data LEGO --model <your_model_name> --verbose --mode infer# Example:# python run.py --data LEGO --model idefics_80b_instruct --verbose --mode infer

多 GPU 加速(可选)

torchrun --nproc-per-node=4 run.py --data LEGO --model <your_model_name> --verbose# Example:# torchrun --nproc-per-node=4 run.py --data LEGO --model idefics_80b_instruct --verbose

LEGO-Puzzles案例应用

论文评估了 20 个最先进的 MLLM,包括开源和专有模型。结果表明,尽管 GPT-4o 和 Gemini-2.0-Flash 的整体性能领先,但在需要 3D 空间对齐、旋转处理和多步组装跟踪的任务中,它们的性能仍然远低于人类注释者。 在 LEGO-Puzzles-Lite (220 个样本) 上的人类与模型性能比较中,人类始终以较大优势胜出,再次证实了当前 AI 系统在空间推理方面面临的挑战。 在 5 个基于乐高的图像生成任务中,只有 Gemini-2.0-Flash 和 GPT-4o 表现出部分成功,开源模型通常无法生成结构有效或与指令对齐的图像。 Next-k-Step 评估结果表明,思维链 (CoT) 提示并不能有效地增强多步空间推理能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/165.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java大厂面试突击:从Spring Boot自动配置到Kafka分区策略实战解析

第一轮核心知识 面试官&#xff1a;请解释Spring Boot中自动配置的工作原理并演示如何自定义一个ConfigurationProperties组件&#xff1f; xbhog&#xff1a;自动配置通过EnableAutoConfiguration注解触发&#xff0c;结合当前环境判断&#xff08;如是否检测到MyBatis依赖&…

STM32 定时器TIM

定时器基础知识 定时器就是用来定时的机器&#xff0c;是存在于STM32单片机中的一个外设。STM32总共有8个定时器&#xff0c;分别是2个高级定时器(TIM1、TIM8)&#xff0c;4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TIM6、TIM7)&#xff0c;如下图所示: STM32F1…

NEPCON China 2025 | 具身智能时代来临,灵途科技助力人形机器人“感知升级”

4月22日至24日&#xff0c;生产设备暨微电子工业展&#xff08;NEPCON China 2025&#xff09;在上海如期开展。本届展会重磅推出“人形机器人拆解展区”&#xff0c;汇聚35家具身智能产业链领军企业&#xff0c;围绕机械结构、传感器布局、驱动系统与AI算法的落地应用&#xf…

操作系统:计算机世界的基石与演进

一、操作系统的本质与核心功能 操作系统如同计算机系统的"总管家"&#xff0c;在硬件与应用之间架起关键桥梁。从不同视角观察&#xff0c;其核心功能呈现多维价值&#xff1a; 硬件视角的双重使命&#xff1a; 硬件管理者&#xff1a;通过内存管理、进程调度和设…

C++动态分配内存知识点!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家好呀&#xff0c;又是分享干货的时间&#xff0c;今天我们来学习一下动态分配内存。 文章目录 1.动态分配内存的思想 2.动态分配内存的概念 2.1内存分配函数 2.2动态内存的申请和释放 2.3内存碎片问…

2025.4.26总结

今天把马良老师的《职场十二法则》看完后&#xff0c;感触极大&#xff0c;这们课程就是一场职场启蒙课。 虽然看过不少关于职场的书籍&#xff0c;但大多数是关于职场进阶&#xff0c;方法方面的。并没有解答“面对未来二三十年的职场生涯&#xff0c;我该怎么去看待自己的工…

在Spring Boot项目中实现Word转PDF并预览

在Spring Boot项目中实现Word转PDF并进行前端网页预览&#xff0c;你可以使用Apache POI来读取Word文件&#xff0c;iText或Apache PDFBox来生成PDF文件&#xff0c;然后通过Spring Boot控制器提供文件下载或预览链接。以下是一个示例实现步骤和代码&#xff1a; 1. 添加依赖 …

计算机视觉——对比YOLOv12、YOLOv11、和基于Darknet的YOLOv7的微调对比

概述 目标检测领域取得了巨大进步&#xff0c;其中 YOLOv12、YOLOv11 和基于 Darknet 的 YOLOv7 在实时检测方面表现出色。尽管这些模型在通用目标检测数据集上表现卓越&#xff0c;但在 HRSC2016-MS&#xff08;高分辨率舰船数据集&#xff09; 上对 YOLOv12 进行微调时&…

Linux系统编程之内存映射

概述 内存映射是操作系统提供的一种机制&#xff0c;使得文件或设备的内容可以直接映射到进程的虚拟地址空间中。这意味着&#xff0c;我们可以像访问数组一样读写文件内容&#xff0c;而不需要显式地调用I/O函数进行数据传输。内存映射适用于多种应用场景&#xff0c;包括但不…

MyBatis XML 配置完整示例(含所有核心配置项)

MyBatis XML 配置完整示例&#xff08;含所有核心配置项&#xff09; 1. 完整 mybatis-config.xml 配置文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""htt…

Java 程序运行和类路径处理

PS D:\java_test> java .\java\Dog 错误: 找不到或无法加载主类 .\java\Dog 原因: java.lang.ClassNotFoundException: /\java\DogJava 程序运行和类路径处理 问题描述 在运行 Java 程序时&#xff0c;可能会遇到 ClassNotFoundException 错误&#xff0c;这是因为 Java 虚…

7.学习笔记-Maven进阶(P75-P89)-进度(p75-P80)

1.MAVEN-01-分模块开发的意义 &#xff08;一&#xff09;分模块开发意义 模块可以按功能划分&#xff0c;也可以按团队划分&#xff0c;所以把domain的方法抽取出来&#xff0c;进行共享&#xff0c;从而提高开发 的效率。 &#xff08;1&#xff09;分模块开发的意义&#xf…