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…...
高效掌握Mermaid:从文本到可视化的实战指南
高效掌握Mermaid:从文本到可视化的实战指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的开发者…...
AIVideo效果展示:输入主题输出专业视频,惊艳案例分享
AIVideo效果展示:输入主题输出专业视频,惊艳案例分享 1. 专业级视频生成效果概览 AIVideo一站式AI长视频工具能够将简单的文字主题转化为完整的专业视频作品。只需输入一个主题,系统就会自动完成从文案创作、分镜设计、画面生成到配音剪辑的…...
次元画室快速部署教程:手把手解决网络权限与配置问题
次元画室快速部署教程:手把手解决网络权限与配置问题 1. 环境准备与快速部署 1.1 系统要求检查 在开始部署次元画室前,请确保您的系统满足以下最低要求: 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 8/9(推荐使用Ub…...
CFO/SFO/STO/CFD/IQ不平衡/IQ gain mismatch/IQ phase mismatch/干扰信号载波频率 等等蓝牙通信中干扰参数解析
载波频偏和采样频偏确实来自物理上不同的时钟源,虽然它们可能在数字通信系统中相互影响。 我们可以从三个层面来理清它们的关系: 2. 为什么容易混淆 因为在实际电路中,射频本振和采样时钟可能来自同一个参考晶振。在一些低成本或集成度高的系统中,收发信机通过锁相环(PL…...
华硕笔记本终极电池拯救指南:用G-Helper实现智能充电与健康修复
华硕笔记本终极电池拯救指南:用G-Helper实现智能充电与健康修复 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models …...
Microsoft Agent Framework 构建 SubAgent(Multi-Agent)
本文演示如何用 Microsoft Agent Framework 用 Executor Workflow(DAG)模式实现 SubAgent(子代理)架构。通过示例代码(来自项目的 txt)展示并发 Fan‑Out/Fan‑In 的实现、消息路由与聚合策略,…...
Simulink Simscape传感模块实战指南:从基础到高级应用
1. Simscape传感模块基础入门 第一次接触Simulink Simscape的传感模块时,我完全被那些复杂的参数搞晕了。后来才发现,这些模块其实就是物理系统的"眼睛"和"耳朵",专门用来捕捉机械系统中的各种运动状态和力学特性。举个生…...
Arduino激光360°扫描库:VL53L0X+28BYJ-48低成本建图方案
1. 项目概述LaserToMap360 是一个面向嵌入式空间感知应用的轻量级 Arduino 库,专为构建低成本、可复现的 360 激光测距扫描系统而设计。其核心目标并非替代专业 SLAM 系统,而是提供一种工程上可快速验证、硬件上可即插即用、数据上可直接对接上位机可视化…...
douyin-downloader:让每个人都能轻松获取无水印视频的技术利器
douyin-downloader:让每个人都能轻松获取无水印视频的技术利器 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 一、问题破局:揭开抖音内容获取的神秘面纱 1.1 内容获取的三大拦路虎 …...
SystemVerilog内存操作实战:手把手教你实现AXI VIP中的backdoor读写
SystemVerilog内存操作实战:AXI VIP中的backdoor读写技术解析 在硬件验证领域,AXI总线协议因其高性能和灵活性已成为行业标准。验证工程师经常需要与AXI VIP(Verification IP)交互,其中内存操作是最基础也最关键的环节…...
