微软交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 72|回复: 1

微软-多模态ChatGPT来了:Visual ChatGPT: Talking ...

[复制链接]

2

主题

6

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-3-13 17:22:23 | 显示全部楼层 |阅读模式
摘要

ChatGPT吸引了各个领域的兴趣,因其提供了一个跨领域的具有卓越会话能力和推理能力的语言界面。然而,由于ChatGPT是一个语言模型,目前无法处理、生成来自视觉世界的图像。同时,视觉基础模型Visual Foundation Model(VFM),如视觉变换器或Stable Diffusion,虽然显示出强大的视觉理解和生成能力,但只是具有一轮固定输入和输出的 特定任务的专家。为此,构建了一个名为Visual ChatGPT的系统,结合了不同的视觉基础模型(VFM),使用户能够通过以下方式与ChatGPT进行交互:1)发送和接收语言及图像;2)给”复杂的视觉问题或视觉编辑“提供操作指南,通常此类操作需要多个ai模型通过多轮协作来完成。3) 提供反馈并询问正确结果。设计了一系列提示,将视觉模型信息注入ChatGPT,主要应用于多个输入/输出的模型或者需要视觉反馈的模型。实验表明,Visual ChatGPT打开了借助视觉基础模型(VFM)研究ChatGPT的大门。此系统的开源代码如下https://github.com/microsoft/visual-chatgpt
1 简介

近年来,大型语言模型(LLM)的开发取得了令人难以置信的进展,如T5[32]、BLOOM[36]和GPT-3[5]。最重要的突破之一是ChatGPT,基于Instruct-GPT[29],以真­正的对话方式与用户交互,保存当前对话的上下文,处理后续问题,并自己生成正确的答案。
尽管ChatGPT功能强大,但处理视觉信息的能力有限,因为是通过单语言模态,而视觉基础模型­(VFM)凭借其理解和生成­复杂图像的能力在计算机视觉中显示出巨大的潜力。例如,BLIP模型[22]是理解和提供图像描述的专家。Stable Diffusion[35]擅长基于”文本提示“生成图像。然而,由于不同任务之间的差异,固定且严苛的输入输出格式使得VFM模型在人机交互中不如对话语言模型灵活。
能否构建一个类似ChatGPT的系统,同时支持图像理解和生成?一个直观的想法是,训练一个多模态对话模型。然而,构建此系统将消耗大量的数据和计算资源。此外,另一个挑战­是,如何处理语言和图像之外的形式,如视频或语音?每次涉及到新的模式或功能时,都需要训练一个全新的多模式模型?通过提出一个名为Visual ChatGPT的系统来回答上述问题。­无需从头训练新的多模态ChatGPT,而是基于ChatGPT并结合多种VFM构建Visual ChatGPT。为了弥补ChatGPT和VFM之间的差距,本文提出了一个PromptManager,支持以下功能:
1)显式地告知ChatGPT每个VFM的能力,并指定输入输出格式;
2) 将不同的视觉数据(例如png图像、深度图像和掩码矩阵)转换为语言格式,­以帮助ChatGPT理解;
3) 处理不同视觉基础模型VFM的历史、优先级和冲突­。在PromptManager的帮助下,ChatGPT可以利用这些VFM并以迭代的方式接收他们的反馈,直到满足用户的要求或达到结束条件。



图1. Visual ChatGPT架构图

如图1所示,用户上传一张黄花的图像,并输入一个复杂的语言指令“请根据该图像的空间深度生成一朵红花,然后一步一步做成动画”。在PromptManager的帮助下,VisualChatGPT启动了相关VFM模型的执行链。在这种情况下,首先应用”深度估计模型“来­预测深度,然后利用深度到图像模型来生成同样空间深度的红花图形,最后利用基于Stable Diffusion模型的风格转移VFM来将该图像的风格改变为卡通。在上述过程中,PromptManager通过提供­可视格式类型并记录信息转换过程,充当ChatGPT的中央调度器。最后,当VisualChatGPT从PromptManager获得“卡通”的提示时,将结束执行流程并显示最终结果。
总之,本文贡献如下:
• 提出了Visual ChatGPT,打开了将ChatGPT和Visual Foundation模型相结合的大门,并使ChatGPT能够处理复杂的可视化任务;
• 设计了一个PromptManager,涉及22个不同的VFM,并定义了们之间的内部关联,以便更好地交互和组合;
进行了大量的零样本zero-shot实验,并展示了大量的案例,以验证Visual ChatGPT的理解和生成能力。
2 相关工作

2.1. 自然语言与视觉

在各种形式(声音、视觉、视频)的包围下,语言和视觉是­生活中传递信息的两种主要媒介。自然语言和视觉之间存在自然联系,大多数问题需要两个流的联合建模以产生满意的结果[15,26,48],例如,视觉问答(VQA)[2]将图像和一个对应的问题­作为输入,并需要根据给定图像中的信息生成答案。由于像InstructionGPT[29]这样的大型语言模型(LLM)的成功,人们可以很容易地与模型交互或以自然语言格式获得反馈,但这些
LLM无法处理视觉信息。为了将视觉­处理能力融合到这样的LLM中,由于很难训练大型语言模型或视觉模型,而且需要精心设计的­指令和繁琐的转换来连接不同的模态,因此面临着一些挑战。尽管一些­工作已经探索了利用预训练的LLM来提高视觉语言(VL)任务的性能,但这些方法支持几个特定的VL任务(从语言到版本或从版本到语言),并且需要标记数据进行训练
2.2 VL任务的预训练模型
为了更好地提取视觉特征,早期作品[9,25,54]中采用了冻结的预训练图像编码器,最近的LiT[52]使用冻结的ViT模型[51]应用了CLIP预训练[30]。从另一个角度来看,­利用LLM的知识也很重要。根据Transformer[39]的指示,经过预训练的LLM­展示了强大的文本理解和生成能力[31,19,37,5],这些突破也有利于VL建模,其中这些工作在经过预训练LLM中添加了额外的适配器模块,以将视觉特征与文本空间对齐。随着模型参数数量的增加,很难训练那些预­训练的LLM,因此已经付出了更多的努力来直接利用现成的冻结预训练LLM来执行VL任务
2.3 VL任务预训练LLM指南
为了处理复杂的任务,例如常识­推理[11],提出了思想链(CoT)来引出LLM的多步骤推理能力[42]。更­具体地说,CoT要求LLM生成最终结果的中间答案。现有研究[57]将这种技术分为两类:少射CoT[56]和零射CoT[20]。对于少数镜头­设置­,LLM通过多次演示执行CoT推理[58,41],结果表明LLM可以获得­更好的解决复杂问题的能力。­此外,最近的研究[20,47]已经表明,LLM可以通过在零炮设置下利用自己生成的理论来自我改进。上述研究主要集中于单一模态,即语言。最近,多模式CoT[57]被提出将语言和视觉模式纳入两阶段框架,该框架将理论­基础生成和答案推理分开。然而,这种方法仅在特定场景下显示出优势,即ScienceQA基准[28]。简而言之,此项工作将CoT的潜力扩展到大量任务,包括但不限于文本到图像生成[27]、图像到图像翻译[18]、图像到文本生成[40]等。
3 Visual ChatGPT




图2. Visual ChatGPT概览

设S = {(Q_{1}, A_{1}),(Q_{2}, A_{2}),...,(Q_{N}, A_{N})}  是一个N轮对话系统。 从第i轮对话中要获得响应 A_{i},此外, 截断最大长度的对话历史 A_{i}^{(j)} ,其中 j 表示 i 轮中第 j 个VFM( F ) 的输出。更具体地说,在处理  Prompt Manager M 时,A_{i}^{(j)}的格式会不断修改,­以满足每个 F 的输入格式。公式(1)提供了Visual ChatGPT的正式定义:
A_{i}^{(j)}  = ChatGPT (M(P), M(F), M(H_{<i}), M(Q_{i}),M(R_{i}^{(<j)}),M(F(A_{i}^{(j)})))                 (1)
系统原理 P :系统原理为Visual ChatGPT提供了基本规则,例如,对图像文件名敏感,使用VFM来处理图像,而不是根据聊天历史生成结果。
视觉基础模型 F :Visual ChatGPT的一个核心是各种VFM的组合: F = \left\{ f_{1},f_{2},...,f_{N} \right\} 其中每个基础模型fi包含具有显式输入和输出的确定函数。通过在逻辑上调用不同的VFM,从而生成多个中间答案。
对话历史 H_{<i} :阈值以满足ChatGPT模型的输入长度。
用户查询 Q_{i} :在可视化ChatGPT中,查询是一个通用术语,因为可以包括语言和视觉查询。例如,图2显示了包含查询文本和相应图像的查询示例。
推理过程 R_{i}^{(<j)} :为了解决一个复杂的问题,Visual ChatGPT可能需要多个VFM的协作。对于第i轮对话,<j)是来自j个调用的VFM的所有先前推理历史。
中间答案 A^{(j)} :通过在逻辑上调用不同的VFM,从而生成多个中间答案,逐步回答问题。
提示管理器 M :提示管理器旨在将所有视觉信号转换为语言,以便ChatGPT模型能够理解。在以下小节中,将重点介绍M如何管理以上不同部分: P、F、Q_{i}、F(A_{i}^{(j)}) 。
3.1 系统原理的快速管理 M(P)
Visual ChatGPT是一个集成不同VFM以理解视觉信息并生成­相应答案的系统。为了实现这一­点,需要定制一些系统原则,然后将其转换为ChatGPT能够理解的提示。这些提示有多种用途,包括:

  • Visual ChatGPT Visual ChatGPT的作用旨在帮助完成一系列文本和视觉相关任务,如VQA、图像生成和编辑。
VFMs Accessibility Visual ChatGPT可以访问VFMs列表,以解决各种VL任务。使用哪个基础模型的决定完全由ChatGPT模型本身决定,因此可以轻松支持新的VFM和VL任务。
文件名敏感度 Visual ChatGPT根据文件名访问图像文件,使用精确的文件名以避免歧义至关重要,因为一轮对话可能包含多个图像及其不同的更新版本,文件名的误用将导致对当­前讨论的图像的混淆。因此,Visual ChatGPT被设计为严格控制文件名的使用,确保检索和操作正确的图像文件。
思维链Chain of Thought 如图1所示,为了处理一个看似简单的命令,可能需要多个­VFM,例如,“根据该图像的预测深度生成一朵红花,然后使其像卡通一样”的查询需要深度估计、深度到图像和风格转换VFM。为了通过将查询分解为子问题来解决更复杂的查询,Visual ChatGPT中引入了CoT,以帮助决定、利用和调度多个VFM。
推理格式严格Visual ChatGPT必须遵循严格的推理格式。因此,使用复杂的正则表达式匹配算法解析中间推理结果,并为ChatGPT模型构建合理的输入格式,以帮助确定下一次执行,例如,触发新的VFM或返回最终响应。
可靠性作为一种语言模型,Visual ChatGPT可能会伪造图像文件名或事实,从而使系统不可靠。为了处理这些问题,设计了提示,要求Visual ChatGPT忠于VFM的输出,而不是伪造图像内容或文件名。此外,多个VFM的协作可以提高系统可靠性,因此构建的提示将引导ChatGPT优先利用VFM,而不是基于会话历史生成结果。
3.2. 基础模型MF)的提示管理器




图3. 提示管理器概览,展示了非语言信号转为ChatGPT可理解的语言

Visual ChatGPT配备了多个VFM来­处理各种VL任务。由于这些不同的VFM可以共享一些相似性,例如,图像中对象的替换­可以被视为生成新图像,并且图像到文本(I2T)任务和图像问答(VQA)任务都可以被理解为根据所­提供的图像给出响应,因此在们之间进行区分是至关重要的。如图3所示,Prompt Manager专门定义了以下方面,以帮助Visual ChatGPT准确理解和处理VL任务:
名称:名称提示了每个VFM的整体功能的摘要,例如,回答有关图像的问题,不仅帮助Visual ChatGPT以简洁的方式理解VFM的目的,而且还作为VFM的入口。
用法:用法提示描述应使用VFM的特定场­景。例如,Pix2Pix模型[35]适合于改变图像的样式。提供这些信息有助于Visual ChatGPT做出明智的决定,决定将哪个VFM用于特定任务。
输入/输出:输入和输出提示概述了每个VFM所需的输入和输出格式,因为格式可能会有很大变化,为Visual Chat GPT正确执行VFM提供明确的指导至关重要。
示例(可选):示例提示是可选的,但有助于Visual ChatGPT更好地理解如何在特定输入模板下使用特定的VFM并处理更复杂的查询。
3.3. 用户查询 M(Q_{i}) 的提示管理器

Visual ChatGPT支持多种用户查询,­包括语言或图像、简单或复杂的查询,以及多个图像的参考。Prompt Manager在以下两个方面处理用户查询:
生成唯一文件名:Visual ChatGPT可以­处理两种类型的图像相关查询:涉及­新上传图像的查询和涉及对现有图像的引用的查询。对于新上传的图像­,Visual ChatGPT生成具有通用唯一标识符(UUID)的唯一文件名,并添加表示相对­目录的前缀字符串“image”,例如“image/UUID.png”,生成带有陈述图像文件名的问题和指示图像已被接收的答案的假对话历史。这段假对话历史有助于以下对话。对于­涉及引用现有图像的查询,Visual ChatGPT将忽略文件名检查。这种方法已被证明是有益的,因为ChatGPT能够­理解用户查询的模糊匹配,如果不会导致歧义,例如UUID名称。
强制VFM思维­:为了确保Visual ChatGPT的VFM成功触发,在(i)后面加上一个后缀提示:“由于Visual ChatGPT是一个文本语言­模型,Visual ChatGPT必须使用工具来观察­图像,而不是想象。这些想法和观察结果只对VisualChatGPT可见,Visual ChatGPT应该记住在对人类的最终响应中重复重要信息。思考:我需要使用工具吗?”。这个提示有两个­目的:1)提示VisualChatGPT使用基础模型,而不是仅仅依靠的想象力;2)鼓励VisualChatGPT提供­基础模型生成的特定输出,而不是像“hereyouare”这样的通用响应。
3.4. 基础模型­输出MFAj)))的提示管理器

对于不同VFM的中间输出 F(A_{i}^{(j)}) ,Visual ChatGPT将隐式汇总并将其反馈给ChatGPT进行后续交互,即调用其他VFM进行进一步操作,直到达到结束条件或向用户提供反馈。内部步骤总结如下:
生成链接文件名:由于Visual ChatGPT的中间输出将成为下一轮隐式对话的输入,因此应该使这些输出更具逻辑性,以帮助LLM更好地理解推理过程。具体来说,从Visual Foundation模型生成的图像保存在“image/”文件夹下,提示以下表示图像名称的字符串。然后,将图像命名为“Name Operation Prev Name Org Name”,其中Name是上述UUID名称,Operation作为操作名称,Prev Name作为输入图像唯一标识符,Org Name作为用户上传­或VFM生成­的图像的原始名称。例如,“image/ui3c_edge_of_o0ec_nj9dcgf.png”是输入“o0ec”的名为“ui3c”的canny edge图像,该图像的原始名称为“nj9dc gf”。使用这样的命名规则,可以向ChatGPT提示中间结果属性,即图像,以及是如何从一系列操作中生成的。
调用更多VFM:Visual ChatGPT的一个核心是,可以自动调用更多的VFM来完成用户的命令。更具体地说,让ChatGPT不断询问自己是否需要VFM来解决当前问题,方法是在每一代的末尾扩展一个后缀“Thought:”。
询问更多详细信息:当用户的命令不明确时,Visual ChatGPT应该询问用户更多详细信息,以帮助更好地利用VFM。这种­设计是安全和关键的,因为LLM不允许在没有依据的情况下任意篡改或推测用户的意图,特别是当­输入信息不足时。
4 实验

4.1. 安装程序

使用ChatGPT[29](Ope nAI“text-davinci-003”版本)实现LLM,并使用LangChain[7]1指导LLM。从Hug gingFace Transformers[43]2、Maskformer[10]3和Con ControlNet[53]4收集基础模型。所有22个VFM的完全部署­需要4个Nvidia V100 GPU,但用户可以部署更少的基础模型,以灵活地节省GPU资源。聊天历史记录的最大长度为2000,多余的令牌将被截断以满足ChatGPT的输入长度。
4.2. 多轮对话的完整案例



图4. Visual ChatGPT的16轮多模式对话案例

图4显示了Visual ChatGPT的16轮多模式对话案例。在这种情况下,用户同时询问文本和图像问题,并使用文本和图像进行Visual ChatGPT响应。对话包括讨论多个图像、使用多个基本模型进行处理以及处理需要多个步骤的问题。
1.https://github.com/hwchase17/langchain
2.https://huggingface.co/docs/diffusers/index
3.https://github.com/facebookresearch/MaskFormer
4.https://github.com/lllyasviel/ControlNet
4.3 Prompt Manager案例研究




图5. 系统原理的提示管理的案例研究

图5分析了系统原理的提示管理的案例研究。为了验证系统原理提示的有效性,从中删除了不同的部分以比较模型性能。每次移除都会导致不同的容量下降。



图6. 基础模型快速管理的案例研究

图6基础模型快速管理的案例研究。VFM的名称是最重要的,需要明确定义。当名称缺失或不明确时,VisualChatGPT将多次猜测,直到找到现有的VFM,或遇到错误,如左上图所示。VFM的使用应该清楚地描述应该使用模型来避免错误响应的特定场景。右上角的图显示了样式转换被错误地处理到替换对象。应准确提示输入和输出格式,以避免参数错误,如左下角所示。示例提示可以帮助模型处理复杂的用法,但是可选的。如右下图所示,虽然删除了示例提示,但ChatGPT也可以总结对话历史和使用正确VFM的意图。完整的VFM提示如附录A所示。



图7.用户查询提示管理的案例

图7用户查询提示管理的案例
4.3 案例研究

左上图显示,如果没有图像文件的唯一命名,新上传的图像文件可能会被重命名,以避免被覆盖并导致错误引用。如右上图所示,通过将思维引导从 M(P) 移动到 M(Q) ,并将其作为一种强制思维在Visual ChatGPT的语音中表达,与第2页相比,更强调调用更多的VFM,而不是基于文本上下文的想象。通过强制Visual ChatGPT说“Thought:我需要使用工具吗?”, M(Q) 可以更容易地正确传递正则表达式匹配。相反,如果没有强制思考,3可能会错误地生成思想结束令牌,并直接将其所有ChatGPT输出视为最终响应。
图7底部分析了快速管理模型输出的案例研究。左下角的图片­比较了删除和保留链式命名规则的性能。使用链式命名规则,Visual Chat GPT可以识别文件类型,触发正确的VFM,并得出文件依赖关系命名规则。表明,链式命名规则确实有助于Visual Chat GPT理解。右下角的图片给出了一个例子,当项目推断不明确时,可以询问更多细节,这也表明了系统的安全性。
5 局限性

尽管Visual ChatGTP是一种很有前途的多模式对话方法,但也有一些局限性,包括:
对ChatGPT和VFMs的依赖Visual Chat GPT严重依赖ChatGPT来分配任务,并依赖VFMs来执行任务。因此,Visual ChatGPT的性能受到这些模型的准确性和有效性的严重影响。
重提示工程Visual ChatGPT需要大量的提示工程来将­VFM转换为语言并使这些模型­描述可区分。这个过程很耗时,需要计算机­视觉和自然语言处理方面的专业知识。
有限的实时能力Visual ChatGPT旨在通用。试图将一个复杂­的任务自动分解为几个子任务。因此,当处理特定任务时,Visual ChatGPT可能会调用多个VFM,与专门为特定任务训练的专家模型相比,实时能力有限。
令牌长度限制ChatGPT中的最大令牌长度可能会限制­可以使用的基础模型的数量。如果有数千或数百万个基础模型,则可能需要一个预过滤模块来限制馈送到ChatGPT的VFM。
安全和隐私轻松插拔基础模型的能力可能会引发安全和­隐私问题,尤其是通过API­访问的远程模型。必须仔细考虑并自动检查,以确保敏感数据不会被暴露或泄露。
6 结论

在这项工作中,提出了Visual ChatGPT,这是一个包含不同VFM的开放系统,使用户能够­与ChatGPT进行超越语言格式的交互。为了构建这样的系统,精心设计了一系列提示,以帮助将视觉信息注入ChatGPT,从而可以逐步解决复杂的视觉问题。大量的实验和选定的案例证明了Visual ChatGPT对于不同任务的巨大潜力和能力。除了上述限制之外,另一个问题是,­由于VFM的故障和提示的不稳定性,某些生成结果不令人满意。因此,需要一个自校正模块来检查执行结果与­人类意图之间的一致性,并相应地进行相应的编辑。这种自我修正行为会导致模型更复杂的思考,显著增加推理时间。我们会在之后的研究中解决这个问题。
回复

使用道具 举报

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-3-13 17:22:48 | 显示全部楼层
内容翔实,受益匪浅!赞[害羞]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|微软交流社区

GMT+8, 2025-1-8 12:04 , Processed in 0.075039 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表