一文理解多模态大语言模型——下

作者:Sebastian Raschka 博士,

翻译:张晶,Linux Fundation APAC Open Source Evangelist

编者按:本文并不是逐字逐句翻译,而是以更有利于中文读者理解的目标,做了删减、重构和意译,并替换了多张不适合中文读者的示意图。

原文地址:https://magazine.sebastianraschka.com/p/understanding-multimodal-llms

《一文理解多模态大语言模型 - 上》介绍了什么是多模态大语言模型,以及构建多模态 LLM 有两种主要方式之一:统一嵌入解码器架构(Unified Embedding Decoder Architecture)。本文将接着介绍第二种构建多模态 LLM 的方式:跨模态注意架构(Cross-modality Attention Architecture approach)。

一,跨模态注意架构

《一文理解多模态大语言模型 - 上》  讨论了通过统一嵌入解码器架构来构建多模态大语言模型(LLM)的方法,并且理解了图像编码背后的基本概念,下面介绍另一种通过交叉注意力机制实现多模态LLM的方式,如下图所示:

在上图所示的跨模态注意力架构方法中,我们仍然使用之前介绍的图像向量化方式。然而,与直接将图像向量作为LLM的输入不同,我们通过交叉注意力机制在多头注意力层中连接输入的图像向量。

这个想法与2017年《Attention Is All You Need》论文中提出的原始Transformer架构相似,在原始《Attention Is All You Need》论文中的Transformer最初是为语言翻译开发的。因此,它由一个文本编码器(下图的左部分)组成,该编码器接收要翻译的句子,并通过一个文本解码器(图的右部分)生成翻译结果。在多模态大语言模型的背景下,图的右部分的编码器由之前的文本编码器,更换为图像编码器(图像编码后的向量)。

文本和图像在进入大语言模型前都编码为嵌入维度和尺寸(embedding dimensions and size)一致的向量。

“我们可以把多模态大语言模型看成“翻译”文本和图像,或文本和其它模态数据 --- 译者。”

二,统一解码器和交叉注意力模型训练

与传统仅文本的大语言模型(LLM)的开发类似,多模态大语言模型的训练也包含两个阶段:预训练和指令微调。然而,与从零开始不同,多模态大语言模型的训练通常以一个预训练过且已经过指令微调的大语言模型作为基础模型。

对于图像编码器,通常使用CLIP,并且在整个训练过程中往往保持不变,尽管也存在例外,我们稍后会探讨这一点。在预训练阶段,保持大语言模型部分冻结也是常见的做法,只专注于训练投影器(Projector)——一个线性层或小型多层感知器。鉴于投影器的学习能力有限,通常只包含一两层,因此在多模态指令微调(第二阶段)期间,大语言模型通常会被解冻,以允许进行更全面的更新。然而,需要注意的是,在基于交叉注意力机制的模型(方法B)中,交叉注意力层在整个训练过程中都是解冻的。

在介绍了两种主要方法(方法A:统一嵌入解码器架构和方法B:跨模态注意力架构)之后,你可能会好奇哪种方法更有效。答案取决于具体的权衡:

  • 统一嵌入解码器架构(方法A)通常更容易实现,因为它不需要对LLM架构本身进行任何修改。

  • 跨模态注意力架构(方法B)通常被认为在计算上更高效,因为它不会通过额外的图像分词(Token)来过载输入上下文,而是在后续的交叉注意力层中引入这些标记。此外,如果在训练过程中保持大语言模型参数冻结,这种方法还能保持原始大语言模型的仅文本性能。

下图总结了常见多模态大语言模型使用的组件和技术:

三,总结

“多模态LLM可以通过多种不同的方式成功构建,核心思路在于把多模态数据编码为嵌入维度和尺寸一致的向量,使得原始大语言模型可以对多模态数据“理解并翻译”。--- 译者”。

如果你有更好的文章,欢迎投稿!

稿件接收邮箱:nami.liu@pasuntech.com

更多精彩内容请关注“算力魔方®”!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构---链表(2)---双向链表

链表(1)中讲过了在OJ题中出现很多并且能作为一些复杂数据结构子结构的不带头单向不循环链表,下面讲解应用很广很实用的带头双向循环链表。 三、双向链表---DoublyLinkedList 演示带头双向循环链表(实用)。 带头--->不需要对空链表继续单独判断;循环…

PH热榜 | 2024-12-04

1. Stackfix 标语:几秒钟内就能对比软件。 介绍:立刻就能对比不同软件的价格和功能。不用再费力看各种评测或接推销电话了。我们提供实时价格、并排对比,还有专家的推荐建议。 产品网站: 立即访问 Product Hunt: V…

分布式光伏电站如何实现监控及集中运维管理?

安科瑞戴婷 Acrel-Fanny 前言 今年以来,在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速,装机容量均大幅度增长,新能源发电已经成为新型电力系统重要的组成部分,同时这也导致新型电力系统比传统的电…

AD学习笔记·空白工程的创建

编写不易,禁止搬运,仅供学习,感谢理解 序言 本文参考B站,凡亿教育,连接放在最后。 创建工程文件 在使用AD这个软件的电路板设计中,有很多的地方跟嘉立创eda还是有不一样的地方,其中一个地方就…

基于Java Springboot生鲜食品订购微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…

【阅读笔记】Android广播的处理流程

关于Android的解析,有很多优质内容,看了后记录一下阅读笔记,也是一种有意义的事情, 今天就看看“那个写代码的”这位大佬关于广播的梳理, https://blog.csdn.net/a572423926/category_11509429.html https://blog.c…

第十三章 Linux计划任务

注意:进公司和有公司成员离职,一定要问计划任务,防止别人搞破坏背锅 13.1 一次性计划任务(atd服务) 1 安装 atd 服务 yum install -y at systemctl enable atd systemctl start atd ## 启动atd服务 systemctl status atd ## 查看atd服务…

Kali Linux使用Netdiscover工具的详细教程

Kali Linux使用Netdiscover工具的详细教程 引言 在网络安全和渗透测试的过程中,网络发现是一个至关重要的步骤。Netdiscover是Kali Linux中一个非常实用的网络发现工具,它可以帮助用户快速识别局域网中的活动设备。本文将详细介绍如何使用Netdiscover工…

EasyNVR中HTTP-FLV协议无法播放怎么解决?

在科技日新月异的今天,摄像头作为公共安全领域的重要一环,其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析,我们可以对特定区域进行实时监控和记录,为社会的安全稳定提供了强有力的保障。 问…

VINS_MONO视觉导航算法【一】基础知识介绍

文章目录 VINS-Mono其他文章说明简介单目相机存在的尺度不确定问题缺乏深度信息尺度等价性对极几何和三角化平移和深度的关系解决尺度不确定问题的方法视觉惯性里程计(VIO)初始尺度估计持续尺度校正 摄像头数据处理直接法(Direct Method&…

「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用

本篇将带你实现一个数字键盘应用,支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。 关键词 UI互动应用数字键盘按钮组件状态管理用户交互 一、功能说明 数字键盘应用将实现以下功能&…

AI PC处理器ARM架构-引入NPU和大模型

AI PC处理器架构变化:ARM低功耗、引入NPU和大模型 AI进化加速端侧落地,新一轮浪潮蓄势待发(2024)”。ARM(Advanced RISC Machine)架构和x86架构是两种主要的处理器架构,它们在设计理念、应用场景和性能特点等方面有显著的差异。 ARM架构是一…

华为的USG6000为什么不能ping通

前言: 防火墙usg6000v的镜像 链接: https://pan.baidu.com/s/1uLRk0-hnHRTLYLx1Pnplow?pwdtymp 提取码: tymp 看了好多毒文章,感觉写作业更有意思,可以了解新的知识 内容: 首先看毒文章是这样说的,华为的防火墙是…

Mac安装MINIO服务器实现本地上传和下载服务

0.MINIO学习文档 Minio客户端mc使用 | Elibaron学习笔记 1.Mac安装MINIO 中文官方网址:MinIO下载和安装 | 用于创建高性能对象存储的代码和下载内容 (1) brew 安装 brew install minio/stable/minio (2)安装完成,执行brew i…

墨者学院-登录密码重置漏洞分析

声明! 文章所提到的网站以及内容,只做学习交流,其他均与本人无关,切勿触碰法律底线,否则后果自负!!!! 目录标题 前言解题过程总结 前言 在实际渗透测试中,登…

qt QPauseAnimation详解

1、概述 QPauseAnimation是Qt框架中的一个类,专门用于在动画序列中添加暂停效果。它继承自QAbstractAnimation,允许在动画组或动画序列中指定一个时间段的暂停。这对于创建复杂的动画序列非常有用,可以让动画在特定时刻暂停并保持状态。通过…

【热门主题】000076 探索单片机的奥秘:原理、编程与应用全解析

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

SpringMVC(1)

前言 1. SpringMVC简介 2. 入门案例 第一步导入坐标,SpringMVC和servlet 这样其实就把我们要用的Spring相关的都用上了 第三步就是加载这个bean 写配置类 第四步做一个Tomcat容器启动的配置 还要加上Tomcat插件 我们在创建一个快捷方式 注意由于我的JDK版本高…

jenkins+github+springboot自动部署

背景: 最近看流水线有点意思,就说自己也搞一套。 预期效果: idea提交代码后,GitHub接收,jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】 思路分析: idea上的spring代码push到gi…

RabbitMQ 客户端 连接、发送、接收处理消息

RabbitMQ 客户端 连接、发送、接收处理消息 一. RabbitMQ 的机制跟 Tcp、Udp、Http 这种还不太一样 RabbitMQ 服务,不是像其他服务器一样,负责逻辑处理,然后转发给客户端 而是所有客户端想要向 RabbitMQ服务发送消息, 第一步&a…