Multimodal Chain-of-Thought Reasoning in Language Models阅读笔记

news/2024/5/8 17:53:59

论文(2023年)链接:https://arxiv.org/pdf/2302.00923.pdf

GitHub项目链接:GitHub - amazon-science/mm-cot: Official implementation for "Multimodal Chain-of-Thought Reasoning in Language Models" (stay tuned and more will be updated)

CoT(chain of thought)想必大家都略有耳闻,就是在问大语言模型问题的时候,加入一步一步的思考步骤,以便让大模型有更好的效果,之前大多是文本类型的描述。这篇2023年的文章直接提出了一种Multimodal-CoT:直接结合了文本和图片这两类数据类型来做CoT,实验效果那当然是显著提升。文章在开头给出了multimodal CoT的示例:

在介绍的时候作者提到,为了验证multimodal CoT的效果,目前有两类常用的方法来做multimodal CoT的实验,一种是将不同modality的数据转化成一种modality作为输入,比如把图片中的文字部分抽取出来,一起喂给大语言模型。另一种,是将不同modality的数据进行特征融合然后自己微调语言模型。这篇文章做了模型微调这个任务。实验数据是Science QA。接下来看下这篇文章的框架图:

首先,作者将文本和图片输入一起用于生成CoT的内容,这里说是rationale generation(原理生成),目测就是一边将图片生成讲解,一边结合原始的文本输入,一起得到我们的思维链内容(新的文本输入)。然后将我们的思维链内容结合原本的language input一起喂给大模型来得到最终的答案。因此本文将原理生成和答案生成分成了两步,作者写了一个算法流程:

再给一个具体例子的截图:

至于baseline,作者说他们:

To begin with, we fine-tune a text-only baseline for CoT reasoning on the ScienceQA benchmark...Our task is modeled as a text generation problem, where the model takes the textual information as the input and generates the output sequence that consists of the rationale and the answer.

看起来就是根据原始文本输出CoT。

实验过程中,作者发现图片标题其实并不起作用:

As using image captions does not yield significant performance gains in Section 3.3, we did not use the captions.

在抽取图片feature的时候,作者用了三个不同的模型进行了比较,分别是CLIP,DETR和ResNet,发现DETR效果最好哈。另外,还有一个有意思的发现是,作者抽样了一些回答正确的不正确的QA及其对应的CoT,在answer是正确的例子里,有10%的CoT其实是错的。。。咱们的模型有时候还是可以通过忽略不正确的逻辑推理还能预测正确的答案。

好的,读完了这篇文章,知道图片信息可能可以通过一些模型读出来,rationale信息可以自动生成,再用于CoT-based的结果判断。

哦,读了这篇文章还有一个非常有意思的项目是:https://github.com/salesforce/LAVIS/tree/f982acc73288408bceda2d35471a8fcf55aa04ca/projects/instructblip

这个项目大家可以看看,可以生成图片的说明哦!

from lavis.models import load_model_and_preprocess
# loads InstructBLIP model
model, vis_processors, _ = load_model_and_preprocess(name="blip2_vicuna_instruct", model_type="vicuna7b", is_eval=True, device=device)
# prepare the image
image = vis_processors["eval"](raw_image).unsqueeze(0).to(device)model.generate({"image": image, "prompt": "Write a short description for the image."})


http://www.mrgr.cn/p/00446658

相关文章

五种方案图文并茂教你使用DBeaver,SQL文件导入数据库,插入数据,备份恢复mysql,postgres数据

备份导出数据 方案一:支持可以整个库导出、部分表导出、多个库导出(可选格式较少) 使用连接数据库 鼠标右键选择需要导出备份的数据库-工具-备份 此步骤对于不同类型数据库来说,有的可以一次选择多个表,有的可以一次选择多个库,下面是两个截图案例勾选需要导出的表-点击下…

YOLOv9改进策略:IoU优化 | Wasserstein Distance Loss,助力小目标涨点

💡💡💡本文独家改进:基于Wasserstein距离的小目标检测评估方法 Wasserstein Distance Loss | 亲测在多个数据集能够实现涨点,对小目标、遮挡物性能提升明显 💡💡💡MS COCO和PASC…

fastadmin学习01-windows下安装部署

下载源代码 官网 安装 解压,然后使用phpstorm打开 修改配置文件 创建数据库 -- drop database fastadmin01; create database fastadmin01;这样fastadmin就部署好了 访问主页也能看到前台页面

vue3全局引入element-plus使用Message教程

文章目录 安装引入 Element Plus和组件样式示例注意安装与引入:按需引入:API 使用:样式问题:组件上下文:版本兼容性:错误处理: 这是 Element UI 的 Vue 3 版本。ElMessage 是 Element Plus 中的…

想分组聚合各省的条数、总额,及其平均数或者占比的话,Python方便还是slq方便?

大家好,我是Python进阶者。 一、前言 前几天在Python最强王者交流群【斌】问了一个数据处理的问题。问题如下: 求教大佬:我有全国的明细5000条,其中一个字段是省(直辖市), 如果我想分组聚合各省的条数、总额,及其平均数或者占比的话,Python方便还是sql方便? 二、实现…

大白话扩散模型(无公式版)

背景 传统的图像生成模型有GAN,VAE等,但是存在模式坍缩,即生成图片缺乏多样性,这是因为模型本身结构导致的。而扩散模型拥有训练稳定,保持图像多样性等特点,逐渐成为现在AIGC领域的主流。 扩散模型 正如…

分布式系统的发展史

目录 🐳今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 🐇一、常见概念 🐇二、发展史 今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 一、常见概念 在正式介绍分布式系…

M1 mac安装 Parallels Desktop 18 激活

M1 mac安装 Parallels Desktop 18 激活 下载安装Parallels Desktop 18.1.1 (53328) 激活1. 拷贝prl_disp_service2. 在终端打开Crack所在位置3. 输入命令,激活成功 下载 安装包和激活文件下载地址 链接: https://pan.baidu.com/s/1EjT7xeEDcntIIoOvvhBDfg?pwd9pue …

全国植被类型分布数据

引言 全国植被类型分布数据利用 Landsat 卫星数据(Landsat TM,ETM和 OLI)完成了长时序的地表覆盖变化检测,并结合变化 检测结果实现了逐区域和逐期的地表覆盖动态更新,30米精细植被类型分布数据,共包含 2…

由浅到深认识Java语言(31):阶段性练习

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

[蓝桥杯 2022 省 A] 求和

[蓝桥杯 2022 省 A] 求和 题目描述 给定 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1​,a2​,⋯,an​, 求它们两两相乘再相加的和,即 S a 1 ⋅ a 2 a 1 ⋅ a 3 ⋯ a 1 ⋅ a n a 2 ⋅ a 3 ⋯ a n − 2 ⋅ a n − 1 a n − 2 ⋅ a…

【Canvas与艺术】简约式胡萝卜配色汽车速度表

【效果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>胡萝卜色汽车速度仪表盘简化版</title><style type"…

网页无插件视频播放器,支持录像、截图、音视频播放,多路播放等,提供源码下载

前言 本播放器内部采用jessibuca插件接口&#xff0c;支持录像、截图、音视频播放等功能。播放器播放基于ws流&#xff0c;分屏操作支持1分屏、4分屏、6分屏、9分屏方式。 jessibuca工作原理是通过Emscripten将音视频解码库编译成Js&#xff08;WebAssembly&#xff0c;简称was…

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs()&#xff1a;递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir()&#xff1a;创建目录 2.3、…

【Linux】详解进程终止进程等待

一、页表&&写时拷贝的进一步理解 页表中不仅仅只有虚拟地址到物理地址的映射&#xff0c;还包括了很多选项&#xff0c;其中就包括了映射条目的权限。当我们进程的代码和数据加载到内存并和进程地址空间建立映射关系时&#xff0c;如果数据的内容不允许被修改&#xff…

测试一下MySQL四种隔离级别都做了什么

准备工作: 一个表:两条事务 ,每条事务有两条相同sql,update值改成A、B用作区分: 1.读未提交 1.1测试脏读:事务A执行update操作,不提交,事务B执行select查询结果。 期望:按照网上所说,应该会产生脏读问题,查询到未提交的值,即name = "事务A"。 测试结果:…

CSS问题精粹1

1.关于消除<li>列表前的符号 我相信很多人在初学CSS时会遇到该问题&#xff0c;无论是创作导航&#xff0c;还是列表&#xff0c;前面都会有个黑点点或其它符号。 解决该问题其实很简单 采用list-style-type:none或list-style:none直接解决 如果你想更换前面的黑点点&a…

代码随想录算法训练营第五十九天|● 503.下一个更大元素II ● 42. 接雨水

下一个更大元素II 题目链接:503. 下一个更大元素 II - 力扣(LeetCode) 思路:这里处理循环数组的方式值得学习,用i%nums.size()和for循环的上限来模拟两层for循环。整体思路还是单调栈。 class Solution { public:vector<int> nextGreaterElements(vector<int>…

零基础学python之高级编程(6)---Python中进程的Queue 和进程锁,以及进程池的创建 (包含详细注释代码)

Python中进程的Queue 和进程锁,以及进程池的创建 文章目录 Python中进程的Queue 和进程锁,以及进程池的创建前言一、进程间同步通信(Queue)二、进程锁&#xff08;Lock&#xff09;三、创建进程池Poorpool 类方法: End! 前言 大家好,上一篇文章,我们初步接触了进程的概念及其应…

C语言从入门到实战----数据在内存中的存储

1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们就讲过了下⾯的内容&#xff1a; 整数的2进制表⽰⽅法有三种&#xff0c;即 原码、反码和补码 有符号的整数&#xff0c;三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤…