「多模态大模型」解读 | 突破单一文本模态局限

编者按:理想状况下,世界上的万事万物都能以文字的形式呈现,如此一来,我们似乎仅凭大语言模型(LLMs)就能完成所有任务。然而,理想很丰满,现实很骨感——数据形态远不止文字一种,大多数数据也不是以文本的形式呈现的,我们日常接触到的数据涵盖了图像、视频、音频、语音(images or video, audio, speech)等多种形态,形式丰富多元。因此,能够同时理解和处理多种数据形式的多模态大语言模型(Multimodal Large Language Model,MLLM)应运而生。

构建 MLLM 的关键在于将大语言模型与各种模态的编码器(如图像编码器)相结合,实现跨模态的语义一致性映射。著名的 CLIP 模型就是一个典范,它能将语义相似的图像和文本映射到向量空间中的相邻位置。通过这种方式,机器不仅能够“读懂”图像、视频的内容,更能在多模态数据的基础上展开复杂的推理、创作等高级认知活动。

本文阐述了多模态技术的重要意义,深入剖析了 MLLM 的核心架构和运作原理,并盘点了三种主流的多模态系统构建方式。无疑,这是一篇观点透彻,内容丰富,极具科普价值的佳作。相信通过这篇文章,各位读者一定能够对 MLLM 有更加全面深入的了解。

作者 | Ignacio de Gregorio

编译 | 岳扬

尽管 AGI 可能不会很快出现,但大语言模型确实正通过一种名为“多模态”的形式迎来革新。这一进展使前沿模型从单一的文字处理模型进化为能够同时处理多种数据类型的全能模型,即所谓的多模态大语言模型(MLLMs)。

当下,诸如 ChatGPT、Gemini、Claude 等许多模型,已不再局限于大语言模型(LLMs)范畴,而是升级为多模态大语言模型(MLLMs),因为它们具备处理文本、图像的能力,甚至部分情况下还能处理视频。

然而,在进一步探讨之前,我们有必要思考:我们为什么需要多模态模型?

01 为何我们需要多模态?

理想状况下,世界上的万事万物都能以文字的形式呈现,如此一来,我们似乎仅凭大语言模型(LLMs)就能完成所有任务。然而,理想很丰满,现实很骨感——数据形态远不止文字一种,大多数数据也不是以文本的形式呈现的,我们日常接触到的数据涵盖了图像、视频、音频、语音(images or video, audio, speech)等多种形态,形式丰富多元。

事实上,使用 AI 解决那些最具挑战性的问题时,恰恰需要依赖多模态的处理能力。

试想一下,当我们使用虚拟助手(virtual assistant)时,可能希望它能识别并解答手部新出现的划痕或炎症问题;或是当我们在亚洲旅行途中偶遇一道陌生美食,期待它能生动描述这道佳肴的具体细节。

在这里插入图片描述
source: https://github.com/kohjingyu/gill?tab=readme-ov-file

那么,究竟如何才能搭建出一个多模态大语言模型(MLLM)呢?

02 深入解析多模态模型架构

简而言之,目前大多数多模态大语言模型(MLLMs)的核心构成包括两大部分:大语言模型(LLM)及另一种模态的编码器。让我们逐步揭开其神秘面纱。

2.1 大语言模型(LLMs),AI 领域的中流砥柱

LLMs 这类模型属于 sequence-to-sequence 架构,其工作原理为接收文本输入,然后输出统计学上最有可能的后续序列。

换言之,它们通过不断预测下一个词汇,生成流畅且文采斐然的文本。自 2022 年 ChatGPT 发布以来,大语言模型迅速成为了全球逾 2 亿用户手中的生产力利器,同名应用程序也一举创下了史上增长速度最快的 C 端应用记录。

尤其值得一提的是,它们卓越的模拟逻辑推理(imitate reasoning)和激发创新思维(enhance creative processes)的能力,激起了业界关于能否将此类系统作为基础架构,应用于更为复杂多变、不局限纯文本处理场景的广泛讨论。

然而,要实现这一目标,还需引入一个关键的辅助模块。

2.2 编码器:连接至多元数据世界的桥梁

大语言模型(LLMs)主要处理文本(在某些情况下也会处理代码,因其与自然语言有相似的性质)。因此,要处理图像甚至视频等其他数据类型,模型需引入另一个新部件 —— 编码器(encoder)。

其原因在于,LLMs 属于纯解码器架构的 Transformer,意味着它们会采用一种特殊手法来对数据进行编码。

但,“对数据进行编码”是什么意思呢?

无论处理的是文本里的字词(words)或是图像中的像素点(pixels),对输入序列进行编码的核心思想是将其转化为一系列数字,即所谓的向量嵌入(vector embeddings)。这种向量形式的表征(representation),能够捕捉输入序列的语义信息。

特别是 LLMs 拥有 embedding look-up matrices(译者注:就像是一个巨大的字典,每个词汇对应着一个在高维空间中的向量表征。例如,假设有一个包含 10000 个词汇的词汇表,每个词汇都有一个 50 维的向量表征,那么这个 embedding look-up matrices 就会是一个 10000 行、50 列的矩阵。每一行对应词汇表中的一个词,存储了该词的 50 维向量。在模型处理文本时,它会根据输入内容的词汇索引在这个矩阵中查找相应的向量,作为该词的嵌入表征。)。这些矩阵的作用是从输入序列的令牌中,提取出对应的词嵌入。换言之,模型在训练阶段会学习如何将输入的词(或tokems)转换为向量表征(即嵌入),这一过程是通过优化模型参数完成的,在推理阶段,当新的输入序列传入模型时,模型会直接使用已学习到的参数来产生相应的嵌入向量,而不需要再经历一个单独的、显式的编码步骤。

这是一种经济高效的数据编码方式,无需每次处理都启动编码网络(encoder network)。

对数据进行编码(Encoding data)有两种基本形式:独热编码(one-hot)或稠密编码(dense)。独热编码(One-hot encoding)的原理是,把每个词汇转换成一串数字,其中大部分数字为‘0’,而唯一的一个数字标记为‘1’:

在这里插入图片描述

source: https://medium.com/intelligentmachines/word-embedding-and-one-hot-encoding-ad17b4bbe111

但就 MLLMs 而言,嵌入是 “稠密(dense)” 的,这意味着,现实生活中相近的概念在向量空间中也会拥有相近的向量表征,包括向量的大小和方向,反之亦然:

在这里插入图片描述

source: https://arize.com/blog-course/embeddings-meaning-examples-and-how-to-compute/

为了达成目标,我们需要编码器 —— 一种基于 Transformer 设计的工具,它的任务是接收各种输入数据,并巧妙地将其转化为向量嵌入。举个例子,当编码器面对的是图像时,它能够将图像信息转换为“图像嵌入(image embedding)”形式。

不管处理的是何种数据模态,我们的目标始终一致:构建出一个向量空间,在这里,现实中意义相近的概念会被映射为接近的向量,而意义迥异的概念则会转化成相距甚远的向量。 通过这种方式,我们把对世界语义的理解转变成了一项数学问题;向量间的距离越短,意味着它们代表的概念含义越接近。

最关键的是,这种处理方法并不局限于文本领域,图像等其他数据模态也同样适用,这正是其独特魅力所在。

在这里插入图片描述

Encoding images. Image generated by author

但对于图像来说,事情就变得棘手了。

我们不仅希望图像的嵌入过程(image embedding)能将相似的图像(比如哈士奇的图像)归类到相似的向量类别中,而且还希望这些向量与同一图像的文字描述也保持相似性。例如,如下图所示,一幅描绘波浪的图像和一段描述相同场景的文本,尽管来自不同的模态,但应该具有相似的向量嵌入。

为了达到这一目的,OpenAI 等实验室开发了像 CLIP 这样的模型,这些模型创建了 mixed embedding spaces(译者注:在 mixed embedding spaces 中,不同模态的输入数据通过特定的编码器映射到同一向量空间内,这样即使数据的原始模态不同,也可以基于其内在的语义相似性进行比较。),在这个向量空间中,描述语义(text describing semantically)上概念相似的图像和文本会被赋予相似的向量,从而实现了跨模态的语义一致性。
在这里插入图片描述
source: https://blog.dataiku.com/leveraging-joint-text-image-models-to-search-and-classify-images

由于 CLIP 这类模型的出现,如今的机器已经具备了处理图像并洞察其含义的能力。

Masked AutoEncoders(MAEs)是另一种训练图像编码器(image encoders)的主流方法。在这种情况下,模型接收到的是一幅部分信息被掩盖的图像,模型需要重建完整图像。这些编码器之所以强大,是因为它们必须学会从残缺的信息中推断出“遮挡之下”的真相(what’s hiding behind the masked parts),即识别出“被隐藏的部分”是什么(what’s missing)。

不过,对于多模态语言模型(MLLMs)而言,CLIP 编码器的应用更为广泛,主要是由于其与文本处理之间存在着天然的联系。

然而,如果我们希望建立一个像 ChatGPT 那样,能够同时处理图像和文本的模型,我们又该如何着手搭建这样一个系统呢?

03 多模态系统的主要类型

创建多模态系统主要有三种方法。

3.1 从通过工具实现多模态系统到真正的多模态大语言模型(MLLM)

有三类方法构建 MLLM 系统,但仅两类可称得上是真正的多模态大语言模型。

  • Tool-Augmented LLMs:这类方案是将大语言模型(LLMs)与可以处理其他类型数据的外部系统相结合。这些系统并不算作多模态大语言模型,因为我们仅仅是通过集成另一个模型或工具来扩展大语言模型的功能。以 ChatGPT 的语音/音频处理功能为例,实际上它是将大语言模型与语音转文本(Speech-to-Text)及文本转语音(Text-to-Speech)两个独立模型相连。这样,每当模型接收到音频,就将其转交给这些系统处理,而非真正的多模态大语言模型直接处理数据。
  • Grafting:该方法是指将两个已经训练完成的组件 —— 编码器(encoder)和大语言模型(LLMs) —— 拼接起来形成多模态大语言模型。因为它具有很高的成本效益比,这种方法在开源社群中极为流行,通常只需训练一个适配器(adapter)来连接这两个预训练模型。
  • Native MLLM(Generalist Systems):此途径为那些最热门且财力充足的人工智能研究机构所采纳。其核心在于一开始就将大语言模型和编码器连接在一起,从零开始进行训练。虽然这种方式能带来最优效果,但同时也是最烧钱的。GPT-4V(ChatGPT)、Grok 1.5V、Claude 3 与 Gemini 等皆属此类方法的应用实例。

我们或许还可以考虑另一种方法,那就是在不使用 separate encoder(译者注:在多模态或多任务学习架构中独立处理不同类型输入数据的编码器。) 的情况下构建MLLM,Adept 的 MLLMs 就属于这种情况。不过,使用这种方法构建的多模态模型相当罕见。

不论是选择第二种还是第三种方案(再次强调一次,第一种方案其实并非纯粹的 MLLM 模型,而是一套 MLLM 系统),它们的工作原理是什么呢?

3.2 The MLLM pipeline

我们将重点讨论最常见的 MLLM 方案(即结合图像编码器(image encoder)和 LLMs 的第二种方案)构建能同时处理图像与文本的多模态模型。有一点需要在此强调,这种方案只要更换编码器,也能处理其他模态的数据,比如使用音频编码器处理音频信号。 LLMs 因其具备与用户交流及在某些特定情形下处理复杂问题的能力,始终是不可或缺的组成部分。

向 MLLM 输入数据,通常遵循两种模式:

  • 纯文本:在这种情况下,我们仅向模型输入文本信息,因此我们只希望让模型如同常规 LLM 一样运行。若想深入了解这一过程的具体细节,请阅读此处有关 Transformers 的博文(https://thewhitebox.ai/transformers-the-great-paradigm-shift/ )。
  • 图文并茂:在此情形下,模型接收到的是一张图片及其相关的文本描述。接下来,我们将重点探讨这种情况。

以 Sphinx 为例,这是一个开源的多模态 LLM,让我们以此为参照。
在这里插入图片描述
source: https://arxiv.org/pdf/2311.07575.pdf

  • 目前,我们手头的数据是一幅描绘狮身人面像的卡通图像,以及对该图像的文本描述,我们希望 MLLM 能够同时解析这两部分内容,并能够描述图像所描绘的内容。
  • 随后,图像被划分为若干小块(本例中,他们还额外生成了一个低分辨率的小块(patch),以较低的分辨率表示完整的图像)
  • 这些小块随后被送入图像编码器,由其进行处理并生成相应的嵌入向量(patch embeddings)。每一项嵌入都精准地反映了其所代表图像区域的含义。

此时,会有两种情况发生。如果采用的是先分别预训练图像编码器和 LLM,后续再结合的方法,一般会使用一个适配器(adapter),将图像嵌入转化为与 LLM 嵌入空间相匹配的形式。而如果使用的是通用方法,图像编码器在设计之初就已具备为 LLM 生成有效嵌入的能力。

  • 与此同时,图像的文本描述同样被输入至模型中。在本例中,文本序列(text sequences)遵循了我们之前在介绍 Transformer LLMs 时所述的流程(分词、查找嵌入向量、拼接位置嵌入(positional embedding)以及执行插入(insertion)操作)
  • 至此,LLM 将所有输入整合为单一序列,并依据图像与文本输入共同提供的信息,生成新的序列。

04 Final Thoughts

多模态大语言模型(Multimodal Large Language Models,简称 MLLMs)是当前生成式人工智能最先进技术的重要组成部分。MLLMs 凭借单一模型即可实现多种模态数据的处理,开启了以前只能想象的许多前景广阔的应用场景。

多模态也拉近了机器与人类的距离,因为人类生来就是通过多种感官实现多模态的。所以,机器迟早会模仿人类的这一特性。

在追求构建通用人工智能(Artificial General Intelligence,简称 AGI)或超人工智能(Artificial Super Intelligence,简称 ASI)的过程中,多模态起着至关重要的作用。因为人类之所以能够成为今天的智能生物,很大程度上归功于我们具备处理和理解多种模态数据的能力,这让我们能够适应并驾驭周遭的生存环境。

因此,多模态对于机器人而言是进入物理世界的关键要素,它使得机器能够像人类一样观察、感知、聆听并和我们所处的物理世界进行互动。

Thanks for reading!

Ignacio de Gregorio

I break down frontier AI systems in easy-to-understand language for you. Sign up to my newsletter here: https://thetechoasis.beehiiv.com/subscribe

END

原文链接:

https://thewhitebox.ai/mllm-multiple-modalities-one-model/

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

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

相关文章

2024年06月CCF-GESP编程能力等级认证Python编程二级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证…

GESP C++一级真题

PDF图片1-7 点赞❤️关注😍收藏⭐️ 互粉必回🙏🙏🙏

【Linux】打包命令——tar

打包和压缩 虽然打包和压缩都涉及将多个文件组合成单个实体,但它们之间存在重要差异。 打包和压缩的区别: 打包是将多个文件或目录组合在一起,但不对其进行压缩。这意味着打包后的文件大小可能与原始文件相同或更大。此外,打包…

上位机图像处理和嵌入式模块部署(mcu项目1:假设用51单片机实现)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 到目前位置,我们借助于qt和apm32 mcu芯片,实现了大多数功能。大家如果回过头来看,其实这些功能并不复杂。从固件…

现场Live震撼!OmAgent框架强势开源!行业应用已全面开花

第一个提出自动驾驶并进行研发的公司是Google,巧的是,它发布的Transformer模型也为今天的大模型发展奠定了基础。 自动驾驶已经完成从概念到现实的华丽转变,彻底重塑了传统驾车方式,而大模型行业正在经历的,恰如自动驾…

Canvas:掌握颜色线条与图像文字设置

想象一下,用几行代码就能创造出如此逼真的图像和动画,仿佛将艺术与科技完美融合,前端开发的Canvas技术正是这个数字化时代中最具魔力的一环,它不仅仅是网页的一部分,更是一个无限创意的画布,一个让你的想象…

计算云服务2

第二章 裸金属服务器 什么是裸金属服务器(BMS) 裸金属服务器(Bare Metal Server,BMS)是一款兼具虚拟机弹性和物理机性能的计算类服务为用户以及相关企业提供专属的云上物理服务器,为核心数据库、关键应用系统、高性能计算、大数据等业务提供卓越的计算…

PCIe 规范核心知识线介绍

0,总体Topology x86 处理器系统中 PCIe的拓扑结构: PCIe Switch的总体结构 1,PCIe 枚举 BIOS 负责枚举与分派配置设备的 BusID[7:0] : DeviceID[4:0] : FunctionID[2:0]; cpu先识别 Host-PCI-Bridge,其下是Bus0; 在…

Linux:DHCP服务配置

目录 一、DHCP概述以及DHCP的好处 1.1、概述 1.2、DHCP的好处 二、DHCP的模式与分配方式 2.1、模式 2.2、DHCP的分配方式 三、DHCP工作原理 四、安装DHCP服务 五、DHCP局部配置并且测试 5.1、subnet 网段声明 5.2、客户机预留指定的固定ip地址 一、DHCP概述以及DHCP…

在CentOS7云服务器下搭建MySQL网络服务详细教程

目录 0.说明 1.卸载不要的环境 1.1查看当前环境存在的服务mysql或者mariadb 1.2卸载不要的环境 1.2.1先关闭相关的服务 1.2.2查询曾经下载的安装包 1.2.3卸载安装包 1.2.4检查是否卸载干净 2.配置MySQLyum源 2.1获取mysql关外yum源 2.2 查看当前系统结合系统配置yum…

EN-SLAM:Implicit Event-RGBD Neural SLAM解读

论文路径:https://arxiv.org/pdf/2311.11013.pdf 目录 1 论文背景 2 论文概述 2.1 神经辐射场(NeRF) 2.2 事件相机(Event Camera) 2.3 事件时间聚合优化策略(ETA) 2.4 可微分的CRF渲染技术…

最新版Python安装教程

一、安装Python 1.下载Python 访问Python官网: https:/www.oython.orgl 点击downloads按钮,在下拉框中选择系统类型(windows/Mac OS./Linux等) 选择下载最新稳定版本的Python 以下内容以演示安装Windows操作系统64位的python 左边是稳定发布版本Stabl…

芯片封装简介

1、背景 所谓“封装技术”是一种将集成电路用绝缘的塑料或陶瓷材料打包的技术。以CPU为例,实际看到的体积和外观并不是真正的CPU内核的大小和面貌,而是CPU内核等元件经过封装后的产品。封装技术对于芯片来说是必须的,也是至关重要的。因为芯片…

LLM4Decompile——专门用于反编译的大规模语言模型

概述 论文地址:https://arxiv.org/abs/2403.05286 反编译是一种将已编译的机器语言或字节码转换回原始高级编程语言的技术。该技术用于分析软件的内部工作原理,尤其是在没有源代码的情况下;Ghidra 和 IDA Pro 等专用工具已经开发出来&#…

灵活视图变换器:为扩散模型设计的革新图像生成架构

在自然界中,图像的分辨率是无限的,而现有的图像生成模型在跨任意分辨率泛化方面存在困难。虽然扩散变换器(DiT)在特定分辨率范围内表现出色,但在处理不同分辨率的图像时却力不从心。为了克服这一限制,来自上…

java 栅栏(CyclicBarrier)

Java中的栅栏(CyclicBarrier)是一种用于协调多个线程并发工作的同步辅助类。与CountDownLatch不同,CyclicBarrier允许一组线程相互等待,直到所有线程都到达一个共同的屏障点(barrier)后,才继续执…

【qt】TCP 服务端怎么收到信息?

上一节,我已经讲了,TCP的监听,是基于上一节的,不知道的可以看看. 当我们的TCP 服务器 有 客户端请求连接的时候,会发出一个信号newConnection(). 在TCP服务端与客户端的通信中,我们需要使用到套接字 QTcpSocket类. 套接字相当于是网络通信的接口,服务段和客户端都要通过它进行通…

聚焦大模型应用落地,2024全球数字经济大会人工智能专题论坛在京举办

7月1日下午,2024全球数字经济大会人工智能专题论坛在中关村国家自主创新示范区会议中心举办。论坛紧扣大模型应用落地这一热点,以“应用即未来——大模型赋能千行百业,新生态拥抱产业未来”为主题,备受社会各界关注。 一、北京已…

STM32点灯闪烁

stm32c8t6引脚图 开发板引脚图 GPIO端口的每个位可以由软件分别配置成 多种模式。 ─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功能 ─ 开漏复用功能 配置GPIO端口步骤:开启时钟->使用结构体设置输出模式…

LabVIEW从测试曲线中提取特征值

在LabVIEW中开发用于从测试曲线中提取特征值的功能时,可以考虑以下几点: 数据采集与处理: 确保你能够有效地采集和处理测试曲线数据。这可能涉及使用DAQ模块或其他数据采集设备来获取曲线数据,并在LabVIEW中进行处理和分析。 特…