AI多模态模型架构之输出映射器:Output Projector

news2024/12/22 18:38:22

探索AI的无限可能,微信关注“AIGCmagic”公众号,让AIGC科技点亮生活

本文作者:AIGCmagic社区   刘一手

前言

AI多模态大模型发展至今,每年都有非常优秀的工作产出,按照当前模型设计思路,多模态大模型的架构主要包括以下几个部分:

  1. 模态编码器(Modality Encoder):负责将不同模态的输入编码成特征。常见的编码器包括图像的NFNet-F6、ViT、CLIP ViT等,音频的Whisper、CLAP等,视频编码器等。

  2. 输入投影器(Input Projector):负责将其他模态的特征投影到文本特征空间,并与文本特征一起输入给语言模型。常用的投影器包括线性投影器、MLP、交叉注意力等。

  3. 语言模型骨架(LLM Backbone):利用预训练的语言模型,负责处理各种模态的特征,进行语义理解、推理和决策。常用的语言模型包括ChatGLM、Qwen、LLaMA等。

  4. 输出投影器(Output Projector):负责将语言模型输出的信号转换成其他模态的特征,以供后续模态生成器使用。常用的投影器包括Tiny Transformer、MLP等。

  5. 模态生成器(Modality Generator):负责生成其他模态的输出。常用的生成器包括图像的Stable Diffusion、视频的Zeroscope、音频的AudioLDM等。

在本文中,刘一手将详细解读AI多模态架构中的输出投影器(Output Projector),并以NExT-GPT为例,阐述输出投影器的工作原理!持续更新,欢迎关注! 

一、输出投影器的引入

在前期多模态架构系列文章中,我们说到大语言模型在多模态任务中负责处理各种模态的特征,进行语义理解、推理和决策。那么一旦大型语言模型(LLM)完成了生成任务,我们就需要将编码后的数据转换回所需的格式或所需的模态,即输出投影器接收LLM的输出,并将其转换回目标任务所需的格式。例如,如果任务是图像描述,那么它将把LLM的输出转换成描述图像的单词序列。输出投影器也可以像模态编码器一样以不同的模态输出。常见的输出投影器包括Tiny Transformer、MLP等,其实做的工作即是做数据空间的转换。

二、NExT-GPT中的输出投影器

2.1 NExT-GPT简介

NExT-GPT是一个先进的多模态大型语言模型(Multimodal Large Language Model,简称MM-LLM),它具备从任意模态到任意模态(Any-to-Any)的转换能力。这种模型能够理解和生成多种类型的数据,包括但不限于文本、图像、音频和视频,实现了跨模态的理解和表达。结构图如下所示:

从图上可以看出,NExT-GPT的输出映射器包括三类:Image Output Projection、Audio Output Projection、Video Output Projection,在NExT-GPT论文中,这三类任务统一称为Instruction-following Alignment(中文译为:指令跟随对齐)。

2.2 指令跟随对齐

"Instruction-following Alignment"(指令跟随对齐)是用于训练多模态大型语言模型(MM-LLM)的一个关键概念,特别是在模型的解码阶段。这个概念的目的是确保模型能够正确理解和执行来自用户的指令,并且能够在适当的模态中生成内容。

具体来说,"Instruction-following Alignment" 包括以下几个方面:

  1. 特殊信号令牌(Signal Tokens):为了指示模型生成特定模态的内容,模型使用了特殊格式的信号令牌,例如 "[IMGi]" 用于图像,"[AUDi]" 用于音频,以及 "[VIDi]" 用于视频。这些令牌作为指令,告诉解码器生成相应模态的内容。

  2. 编码器和解码器的对齐:在传统的多模态模型中,解码器(例如扩散模型)通常只根据文本编码器的输出来生成内容。然而,这种以文本为中心的条件限制了模型对非文本模态的理解。为了解决这个问题,NExT-GPT 模型将LLM的模态信号令牌表示作为扩散模型去噪过程中的条件输入,以指导生成适当的图像、视频或音频。

  3. 最小化表示差异:为了加速对齐学习,模型试图最小化信号令牌表示与扩散模型的条件文本表示之间的距离。这有助于确保LLM能够准确地解释指令并生成期望的内容。

  4. 训练过程:在对齐训练阶段,使用来自不同数据集的标题作为输入,并与信号令牌作为输出进行组合。损失函数包括产生信号令牌的负对数似然、LLM产生的信号令牌与扩散模型文本编码器派生的条件文本表示之间的l2距离,以及条件潜在去噪损失。

  5. 冻结的扩散模型:在对齐学习过程中,扩散模型的主干(例如U-Net)是冻结的,这意味着只有输入和输出投影层的参数在训练中进行更新,从而实现高效的训练。

Instruction-following Alignment一般使用轻量级的Transformer模型具体实现,其参数量仅为31M~32M:

Instruction-following Alignment包括三个步骤:

信号令牌的生成与处理 --> 特征转换与条件扩散模型 -- > 端到端训练与优化

下面具体阐述不同模态输出投影器的具体内容。

2.3 图像输出投影

(1)信号令牌的生成与处理

在 "Image Output Projection" 的初始阶段,NExT-GPT 模型首先接收来自语言模型(LLM)的输出,这包括直接生成的文本回复和特定模态的信号令牌,如图像信号令牌 "[IMGi]"。这些信号令牌充当指令,指示模型需要生成图像内容。接着,这些信号令牌会通过一个可训练的投影层,该层负责将LLM的输出转换成图像解码器能够理解的特征表示。

(2)特征转换与条件扩散模型

特征转换是 "Image Output Projection" 的核心步骤。在这里,信号令牌通过 Transformer 架构的输出投影层进行处理,该层由多个编码器和解码器层组成,具备隐藏层大小为 512,4 个注意力头,以及 dropout 比率设置为 0.1。这使得模型能够将信号令牌的语义信息转化为适合图像生成的条件特征。随后,这些特征被送入条件扩散模型,如 Stable Diffusion,该模型根据接收到的条件特征生成图像内容。

(3)端到端训练与优化

在 "Image Output Projection" 的最后阶段,模型进行端到端的训练,以确保图像生成的质量和与LLM输出的一致性。这包括对输出投影层的参数进行微调,使用损失函数来衡量生成的图像与预期输出之间的差异,并据此更新参数。训练过程中,除了输出投影层之外,大部分的编码器和解码器参数保持冻结状态,以利用预训练模型的稳定性和效率。通过这种方式,模型学习如何更准确地生成与LLM输出相匹配的图像,实现了从文本到图像的有效转换。

2.4 视频输出投影

(1)视频信号令牌的生成与处理

在"Video Output Projection"的实现过程中,首先,NExT-GPT模型接收到来自语言模型(LLM)的输出,这包括文本回复和视频信号令牌(例如"[VIDi]")。这些视频信号令牌是模型生成视频内容的关键指令。随后,这些令牌通过一个专门的视频输出投影层,该层负责将LLM的输出转换成适合视频解码器的特征表示。视频输出投影层是可训练的,并且在模型的微调过程中会更新其参数,以更好地适应视频内容的生成需求。

(2)特征转换与条件扩散模型

特征转换是"Video Output Projection"中至关重要的一步。视频信号令牌通过一个基于Transformer的架构进行处理,这个架构可能包括多个编码器和解码器层,以及适当的隐藏层大小和注意力头数量,类似于图像输出投影的配置。这样的设计允许模型深入理解信号令牌中的语义信息,并将其转化为能够指导视频生成的条件特征。接着,这些特征被送入一个条件扩散模型,例如Zeroscope,该模型能够根据提供的条件特征生成视频内容。

(3)端到端训练与优化

在"Video Output Projection"的最后阶段,模型通过端到端的训练进行优化。这包括对视频输出投影层的参数进行微调,以确保生成的视频内容与LLM的输出信号令牌相匹配。训练过程中,模型使用特定的损失函数来衡量生成的视频与预期输出之间的一致性,并据此调整参数。与图像输出投影类似,大部分预训练的视频编码器和解码器参数在训练中保持冻结,以利用它们的稳定性和效率。通过端到端的训练,NExT-GPT模型学习如何准确地生成与LLM输出相对应的视频,实现了文本到视频的有效转换,并提高了多模态交互的准确性和自然性。

2.5 音频输出投影

(1)音频信号令牌的生成与处理

"Audio Output Projection" 的实现首先依赖于语言模型(LLM)生成的音频信号令牌,如 "[AUDi]"。这些令牌是指示模型生成音频内容的关键。LLM 在理解输入信息后,不仅生成文本回复,还产生特定模态的信号令牌。这些音频信号令牌随后被送入音频输出投影层,该层的目的是将LLM的输出转换成音频解码器能够理解的特征表示。音频输出投影层是模型的一个可训练部分,在微调过程中会更新其参数,以更好地适应音频内容的生成。

(2)特征转换与条件扩散模型

特征转换是"Audio Output Projection"中的核心步骤。在这里,音频信号令牌通过基于Transformer的架构进行处理,这个架构可能包含多个层,每个层都有助于提取和转换信号令牌中的语义信息。处理后的输出特征包含了生成音频所需的详细指令和内容信息。这些特征随后被送入条件扩散模型,例如AudioLDM,该模型能够根据接收到的条件特征生成音频内容。条件扩散模型是专为音频合成设计的,能够根据文本描述或其他条件生成连续的音频信号。

(3)端到端训练与优化

在"Audio Output Projection"的最后阶段,模型进行端到端的训练,以确保音频生成的质量和与LLM输出的一致性。这包括对音频输出投影层的参数进行微调,使用损失函数来衡量生成的音频与预期输出之间的差异,并据此更新参数。在训练过程中,除了音频输出投影层之外,大部分的编码器和解码器参数保持冻结状态,以利用预训练模型的稳定性和效率。通过这种方式,NExT-GPT模型学习如何更准确地生成与LLM输出相匹配的音频

下图展示了 "Decoding-side Instruction-following Alignment"(解码端指令跟随对齐)的过程,其一一对应每个模态输出映射的三个步骤。这是 NExT-GPT 模型中用于确保模型能够根据语言模型(LLM)的输出指令生成相应模态内容的关键技术。 

三、总结

3.1. 功能与目的

"Output Projection" 的主要功能是将语言模型(LLM)产生的信号令牌转换成适合不同模态解码器的表示形式。这些信号令牌包含了生成文本、图像、视频和音频等内容的指令。"Output Projection" 的目的是确保LLM的输出能够准确无误地传递给相应的模态生成模块,从而实现多模态内容的生成。

3.2. 实现细节

  • 架构设计:"Output Projection" 采用基于 Transformer 的架构,具备多个编码器和解码器层,以及特定的隐藏层大小和注意力头数量。
  • 特殊信号令牌:使用如 [IMGi][AUDi] 和 [VIDi] 的特殊令牌来指示不同模态的生成。
  • 条件扩散模型:将转换后的特征输入到条件扩散模型中,如 Stable Diffusion(图像)、Zeroscope(视频)和 AudioLDM(音频),这些模型根据条件生成相应模态的内容。
  • 端到端训练:通过端到端的训练方法,微调输入和输出投影层的参数,同时保持大部分预训练编码器和解码器参数的冻结状态。

3.3. 训练与优化

  • 损失函数:使用综合损失函数,包括负对数似然、标题对齐损失和条件潜在去噪损失,以优化信号令牌的生成和内容的对齐。
  • 对齐学习:通过最小化信号令牌表示与扩散模型条件文本表示之间的距离,加速模型对用户指令的理解和执行。
  • 效率与效果:"Output Projection" 通过轻量级的训练实现了高效的参数调整,同时保持了生成内容的高质量和对用户指令的忠实度。

总结来说,"Output Projection" 是 NExT-GPT 模型中实现多模态内容生成的重要环节,它通过精细的设计与训练,确保了模型能够根据 LLM 的输出在多种模态之间进行无缝转换和高效生成。这一机制不仅提高了模型的多模态理解能力,也为构建更接近人类交流方式的 AI 系统铺平了道路。


 推荐阅读:

《AIGCmagic星球》,五大AIGC方向正式上线!让我们在AIGC时代携手同行!限量活动
《三年面试五年模拟》版本更新白皮书,迎接AIGC时代
AIGC |「多模态模型」系列之OneChart:端到端图表理解信息提取模型
AI多模态模型架构之模态编码器:图像编码、音频编码、视频编码
AI多模态模型架构之输入投影器:LP、MLP和Cross-Attention

AI多模态模型架构之LLM主干(1):ChatGLM系列

AI多模态模型架构之LLM主干(2):Qwen系列

AI多模态模型架构之LLM主干(3):Llama系列  

AI多模态教程:从0到1搭建VisualGLM图文大模型案例

AI多模态教程:Mini-InternVL1.5多模态大模型实践指南 

AI多模态教程:Qwen-VL多模态大模型实践指南 

AI多模态实战教程:面壁智能MiniCPM-V多模态大模型问答交互、llama.cpp模型量化和推理 

智谱推出创新AI模型GLM-4-9B:国家队开源生态的新里程碑

技术交流:

加入「AIGCmagic社区」群聊,一起交流讨论,涉及 「AI视频、AI绘画、Sora技术拆解、数字人、多模态、大模型、传统深度学习、自动驾驶」等多个不同方向,可私信或添加微信号:【lzz9527288】,备注不同方向邀请入群!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QChart笔记6:显示点的值、显示点坐标值

在QChart笔记2: 添加鼠标悬停显示和格式处理_qchart 折线图 响应鼠标显示数据-CSDN博客上修改而来。 在笔记2中,通过鼠标悬停的方式显示了坐标轴Y的值,如果要一直显示应该怎么写呢?比如要达到下面的效果。 核心是这句: series1-…

Windows10安装——制作U盘启动盘(保姆级)

安装前准备: 一个不少于8G的U盘, 一个可以上网的windows电脑; 第一步:安装启动盘制作工具 首先我们下载启动盘制作工具, 官网网址:下载 Windows 10 (microsoft.com); 百度网盘下载&#xf…

赛氪网受邀参加中国国际科技促进会第五届第五次常务理事扩大会议

2024年7月27日,环球赛乐(北京)科技有限公司(以下简称“赛氪网”)受邀参加了中国国际科技促进会第五届第五次常务理事扩大会议。此次会议汇聚了众多科技界的精英和专家,共同探讨科技发展的新方向&#xff0c…

【Mybatis】xml 配置文件

Mybatis的开发有两种方式: 注解XML 使用Mybatis的注解方式,主要是来完成一些简单的增删改查功能。 如果需要实现复杂的SQL功能,建议使用XML来配置映射语句,也就是将SQL语句写在XML配置文件中。在Mybatis中使用XML映射文件方式开…

Cxx primer-chap10-Generic Algorithms

generic algorithms的解释:,具体而言iterator使得算法与容器类型无关:,但算法的实现成功与否有时依赖于(element type)元素类型:通用算法的实现依赖于iterator,具体而言algorithm –…

python windows环境部署

在官网安装www.python.org linux系统的只能编译安装 windows的可以直接安装 这里是windows安装 .3.9.6版本 一直下一步就可以,然后鼠标右键在按住shift用终端打开 输入py或者python验证一下是否安装成功 打开目录文件夹 在里面新建一下pip的文件夹,里…

OpenAI开发了一种新方法来教授AI模型与安全政策保持一致

OpenAI 宣布了一种新的方法来教授人工智能模型与安全政策保持一致,这种方法被称为"基于规则的奖励"(Rules Based Rewards)。据 OpenAI 安全系统负责人 Lilian Weng 介绍,基于规则的奖励(RBR)可以…

【研发日记】Matlab/Simulink技能解锁(十一)——Stateflow中的en、du、ex应用对比

文章目录 前言 项目背景 en类型 du类型 ex类型 组合类型 分析和应用 总结 参考资料 前言 见《【研发日记】Matlab/Simulink技能解锁(六)——六种Simulink模型架构》 见《【研发日记】Matlab/Simulink技能解锁(七)——两种复数移相算法》 见《【研发日记】Matlab/Simul…

盘点适合新手使用的4个剪辑工具。

很多宝子们都觉得剪辑很难,想学习又觉得自己没有专业的剪辑知识指导,不好上手。那是因为不知道有这些工具,这4款专业的剪辑软件对新手来说简直就是福音。 1、福昕剪辑 直达链接:www.pdf365.cn/foxit-clip/ 这个软件的界面设置的…

cGDB 调试方法

用法总结 Ubuntu系统,安装cGDB sudo apt updatesudo apt install cgdb 编译代码 g -g -o example example.cpp -lpthread要确保有 -g ,代码是调试信息编译的 启动测试:cgdb ./可执行文件 此处可以使用esc进入命令模式,vim命令上下…

生活方式酒店升势迅起,喆啡酒店缘何成为投资热点?

伴随国内消费结构转型升级,旅游需求持续增加。文旅部发布的《国内旅游提升计划(2023—2025年)》提出,需丰富优质旅游供给,并进一步提高消费者体验及满意度,这将为酒店行业带来更广阔的客源和更高的质量要求…

SpringBoot上传超大文件导致OOM,完美解决办法

问题描述 上传大文件报错: Caused by: java.lang.OutOfMemoryError at java.io.ByteArrayOutputStream.hugeCapacity(ByteArrayOutputStream.java:123) ~[?:1.8.0_381] at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:117) ~[?:1.8.0_381] …

探索Axure在数据可视化原型设计中的无限可能

在当今数字化浪潮中,产品设计不仅关乎美观与功能的平衡,更在于如何高效、直观地传达复杂的数据信息。Axure RP,作为原型设计领域的佼佼者,其在数据可视化原型设计中的应用,正逐步揭开产品设计的新篇章。本文将从多个维…

同声翻译怎么做?其实有这几种方法

同声翻译怎么做?同声翻译(Simultaneous Interpretation)是指在说话人讲话的同时,翻译人员即时将内容转换成另一种语言的过程。随着全球化的发展和技术的进步,同声翻译已成为跨文化交流的重要工具。那么,今天…

stl-priority_queue 优先队列

目录 ​编辑优先队列 头文件:#include《queue》;即可 访问:只能访问队首.top() 添加。push(元素),按优先级排列 删除。pop(),删除队首元素(堆顶&#xff…

嵌入式初学-C语言-八

#接嵌入式初学-C语言-七# 分支结构 分支结构&#xff1a;又被称之为选择结构 选择结构的形式 多分支 语法&#xff1a; if(条件1) { 语句1; } else if(条件2) { 语句2; } ... else { 语句n1; }案例&#xff1a; #include <stdio.h> int main() { // 需求&#xff…

采购订单打开单据时表格行设置颜色

文章目录 采购订单打开单据时表格行根据条件显示背景色Python实现插件实现创建项目创建类&#xff0c;实现接口重写方法编译后挂载插件到表单插件启动开发环境进行测试单元格设置背景色行背景色 采购订单打开单据时表格行根据条件显示背景色 Python实现 import clr clr.AddR…

VitualBox虚拟机重启后配置无法保存,已安装软件变为没有安装

VitualBox虚拟机重启后虚拟机还原为上次开机的状态&#xff0c;安装的安装包配置啥的全部丢失。 按网上的配置了半天也没解决。最终用下面讨巧的办法&#xff0c;即不重启虚拟机。 我们不在重启虚拟机&#xff0c;那我们想关闭虚拟机的时候怎么办呢&#xff1f; 1、按下图所…

104 二叉树的最大深度

解题思路&#xff1a; \qquad 最大深度可以想到使用DFS(深度优先)或BFS(广度优先)来解决。 \qquad DFS&#xff1a;一般用 递归 or 迭代栈。递归实现较为简单。 \qquad BFS&#xff1a;一般用 迭代队列。 DFS&#xff1a; \qquad 对于每个节点&#xff0c;将左子树的最大深…