Multimodal Chain-of-Thought Reasoning in Language Models阅读笔记
论文(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."})
相关文章:
Multimodal Chain-of-Thought Reasoning in Language Models阅读笔记
论文(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 a…...
C语言例4-15:从键盘输入一个整数,求其绝对值并输出。
代码如下: //从键盘输入一个整数,求其绝对值并输出。 #include<stdio.h> int main(void) {int n;printf("输出一个整数: \n");scanf("%d",&n); //从键盘输入一个整数保存至变量nif(n<0) //…...
【Linux】调试器-gdb的使用说明(调试器的配置,指令说明,调试过程说明)
目录 00.背景 01.安装 02.生成调试信息 03.调试过程 00.背景 在软件开发中,通常会为程序构建两种不同的版本:Debug模式和Release模式。它们之间的区别主要在于优化级别、调试信息、错误检查等方面: 1.Debug 模式: 优化级别低…...
Oracle AI Vector Search Multi-Vector Similarity Search 即多向量相似度检索学习笔记
Oracle AI Vector Search Multi-Vector Similarity Search 即多向量相似度检索学习笔记 0. 什么是多向量相似度检索1. 多向量相似度检索的示例 SQL2. 执行多向量相似度检索3. 分区行限制子句的完整语法 0. 什么是多向量相似度检索 多向量相似度检索涉及通过使用称为分区的分组…...
白板手推公式性质 AR模型 时间序列分析
白板手推公式性质 AR模型 时间序列分析 视频讲解:https://www.bilibili.com/video/BV1D1421S76v/?spm_id_from.dynamic.content.click&vd_source6e452cd7908a2d9b382932f345476fd1 B站对应视频讲解(白板手推公式性质 AR模型 时间序列分析)...
零基础学python之高级编程(6)---Python中进程的Queue 和进程锁,以及进程池的创建 (包含详细注释代码)
Python中进程的Queue 和进程锁,以及进程池的创建 文章目录 Python中进程的Queue 和进程锁,以及进程池的创建前言一、进程间同步通信(Queue)二、进程锁(Lock)三、创建进程池Poorpool 类方法: End! 前言 大家好,上一篇文章,我们初步接触了进程的概念及其应…...
184. 部门工资最高的员工
文章目录 题意思路代码 题意 题目链接 查出每个部门最高工资 思路 子查询group by 代码 select b.name as Department,a.name as Employee,salary from Employee as a left joinDepartment as b ona.departmentId b.id where(a.departmentId, salary) in(select departme…...
插值表达式、Vue指令、指令补充
vue上手步骤 <body><!-- vue2语法 --><!-- 1.准备容器:一会vue就会把数据展示到这里 --><div id"app"><!-- 4.使用{{ }}即可显示数据 ,{{}}就是插值表达式--><p>姓名:{{uname}}</p><…...
qiankun实现基座、子应用样式隔离
目录 qiankun 实现主应用与子应用样式隔离使用CSS-in-JS来实现样式隔离react-jssstyled-components qiankun 实现主应用与子应用样式隔离 qiankun 之中默认的样式隔离是针对子应用与子应用之间的。至于主应用的样式会影响到子应用,若需要,则需要配置进行…...
C语言从入门到实战----数据在内存中的存储
1. 整数在内存中的存储 在讲解操作符的时候,我们就讲过了下⾯的内容: 整数的2进制表⽰⽅法有三种,即 原码、反码和补码 有符号的整数,三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤…...
接口关联和requests库
一、接口关联 postman的接口 postman的接口关联配置:js代码,重点在于思路。 // 定义jsonData这个变量 接受登录接口的返回结果 var jsonData JSON.parse(responseBody); // 从返回结果里提取token/id值,并赋值给token/id变量值作为环境变…...
Python编程基础 001 开篇:为什么要学习编程
Python编程基础 001 开篇:为什么要学习编程 一、什么是程序,什么是编程二、学习编程对青少年的价值(一)未来社会的需要(二)学习对现青少年现的现阶段的直接影响 三、学习编程从什么时候开始(一)…...
AQS源码分析
前言 AbstractQueuedSynchronizer是抽象同步队列,其是实现同步机器的基础组件,并发包中的锁的底层就是使用AQS实现的。AQS中 维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程争用资源被阻塞…...
应对Locked勒索病毒威胁:你的数据安全准备好了吗?
导言: .Locked勒索病毒,作为一种新型的恶意软件,已经在全球范围内引起了广泛的关注。这种病毒通过加密受害者的文件,并要求支付赎金以获取解密密钥,从而实现对受害者的勒索。本文旨在深入解析.Locked勒索病毒的特点、…...
周末分享一篇关于html和http的文章吧
前面咱们说了https://blog.csdn.net/luohaitao/article/details/136974344(说道说道JSP和HTTP吧-CSDN博客),把http的方法和jsp中httpservle对象的方法对上号了,其实从开发的角度看,jsp就是html中混入了java的服务端代码…...
Frechet分布
Frechet分布是一种连续概率分布,它是极值统计中的一个重要模型,尤其在分析极端事件(如洪水、地震、金融市场中的极端波动)的最大值极限分布时扮演关键角色。Frechet分布属于极值分布的三种基本类型(I型、II型、III型&a…...
vue3全局引入element-plus使用Message教程
文章目录 安装引入 Element Plus和组件样式示例注意安装与引入:按需引入:API 使用:样式问题:组件上下文:版本兼容性:错误处理: 这是 Element UI 的 Vue 3 版本。ElMessage 是 Element Plus 中的…...
时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测
时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现BiTCN…...
基于 Linux 的更新版 MaxPatrol VM 可扫描 Windows
👾 MaxPatrol VM 2.1 是俄罗斯唯一一款可以安装在 Linux 上并以审计和五重测试模式扫描 Windows 主机(甚至是旧版本)的漏洞管理产品。 让我们告诉你更新后的 MaxPatrol VM 还有哪些有用的功能: 1. 由于采用了新的数据存储模式&a…...
【软件开发】给Ubuntu 18.04虚拟机安装最新的Python 3.12.2
一、前言 笔者在Windows 11主机上安装有Ubuntu 18.04虚拟机(使用虚拟化平台Oracle VM VirtualBox),在Python3.6的使用过程中遇到了问题,决定安装Python 3.12.2,在此记录安装过程。 二、安装过程(在Ubuntu…...
新手也能上手!盘点2026年最受喜爱的的降AIGC网站
轻松降低论文AI率在2026年已不再是难题。以下是2026年最实用、实测提速显著的降AIGC网站推荐,覆盖AI痕迹消除、文本优化、降重处理、学术合规检测等核心场景,助你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路 这类工具覆盖从选题…...
OneButton库详解:嵌入式单按键多态交互设计与实现
1. OneButton 库深度解析:面向嵌入式系统的单按钮多态交互设计与工程实现1.1 库定位与工程价值OneButton 是一个轻量级、无依赖的 Arduino 兼容库,专为解决嵌入式系统中单物理按键承载多重用户意图这一经典工程难题而设计。在资源受限的 MCU(…...
Wan2GP:革命性开源视频生成平台,仅需6GB VRAM即可创作好莱坞级影片
Wan2GP:革命性开源视频生成平台,仅需6GB VRAM即可创作好莱坞级影片 【免费下载链接】Wan2GP Wan 2.1 for the GPU Poor 项目地址: https://gitcode.com/gh_mirrors/wa/Wan2GP Wan2GP(GitHub加速计划)是一款专为GPU资源有限…...
LeetCode 238. Product of Array Except Self 题解
LeetCode 238. Product of Array Except Self 题解 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整…...
Linux新手必看:Deepin、Mint、Fedora等主流发行版安装镜像获取全攻略
Linux新手必看:Deepin、Mint、Fedora等主流发行版安装镜像获取全攻略 当你第一次踏入Linux世界的大门,面对众多发行版的选择,获取正确的安装镜像往往是第一步。就像选择一把合适的钥匙,镜像的质量和来源直接关系到系统安装的成败。…...
FlexASIO音频优化实战指南:从延迟卡顿到高保真体验的转型方案
FlexASIO音频优化实战指南:从延迟卡顿到高保真体验的转型方案 【免费下载链接】FlexASIO A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME. 项目地址: https://g…...
数据科学模型评估终极指南:交叉验证与性能指标完全解析
数据科学模型评估终极指南:交叉验证与性能指标完全解析 【免费下载链接】awesome-datascience awesome-datascience: 是一个包含各种数据科学资源、工具和实践的汇总列表。适合数据科学家、分析师和开发者查找和学习数据科学的知识和技术。 项目地址: https://git…...
Nano语法高亮配置最佳实践:基于nanorc项目的经验分享
Nano语法高亮配置最佳实践:基于nanorc项目的经验分享 【免费下载链接】nanorc Improved Nano Syntax Highlighting Files 项目地址: https://gitcode.com/gh_mirrors/na/nanorc Nano语法高亮配置是提升命令行文本编辑体验的关键技巧。如果你经常使用Nano编辑…...
Java GeoTools实战:5分钟搞定热力图生成与TIFF文件导出(附完整代码)
Java GeoTools实战:5分钟搞定热力图生成与TIFF文件导出(附完整代码) 热力图作为一种直观的数据密度可视化工具,在GIS开发中扮演着重要角色。本文将带你快速掌握使用Java GeoTools库生成热力图并导出为TIFF文件的核心技巧ÿ…...
Aspen Plus模拟电解质水脱酸:一场化工模拟的奇妙之旅
Aspen Plus模拟电解质水脱酸Aspen 化工过程模拟→电解质水脱酸模拟在温度为 8C、压力为 1 atm、质量流量为 5000 kg/h 的条件下,含有 0.20 wt% CO2、0.15 wt% H2S 和 0.1 wt% NH3 的酸性水流将通过 1.1 atm、质量流量为 1500 kg/h 的干蒸汽进行处理。在化工领域&…...
