视觉ChatGPT来了,微软发布,代码已开源

Visual ChatGPT 将 ChatGPT 和一系列可视化根本模型连接起来,以支持在聊天过程中发送和接收图象。

近年来,大型谈话模型(LLM)取得了令人难以置信的进展,尤其是去年 11 月 30 日,OpenAI 重磅推出的聊天对话模型 ChatGPT,短短三个月席卷社会各个领域。ChatGPT 会的东西五花八门,能陪你聊天、编写代码、修改 bug、解答问题……

但即便是非常强大的 ChatGPT 也存在短板,由于它是用单一谈话模态训练而成,因此其处置视觉信息的能力非常有限,相比较而言,视觉根本模型(VFM,Visual Foundation Models)在计算机视觉方面潜力巨大,因而能够了解和天生复杂的图象。例如,BLIP 模型是了解和供应图象描述的专家;大热的 Stable Diffusion 可以基于文本提醒合成图象。然而由于 VFM 模型对输入 – 输入款式的苛求和固定限制,使得其在人机交互方面不如会话谈话模型灵活。

我们不禁会问,能否构建一个同时支持图象了解和天生的类似 ChatGPT 的体系?一个直观的想法是训练多模态对话模型。然而,建立这样一个体系会消耗大量的数据和计算资源。此外,另一个挑战是,如果我们想整合谈话和图象以外的模态,比如视频或语音,该怎么办?每次涉及新的模态或功能时,是否有必要训练一个全新的多模态模型?

来自微软亚洲钻研院的钻研者提出了一个名为 Visual ChatGPT 的体系来回答上述问题,他们将 ChatGPT 和多个 SOTA 视觉根本模型连接,实现在对话体系中了解和天生图片。为了方便复现,该钻研已经将代码完全开源。

视觉ChatGPT来了,微软发布,代码已开源

论文地址:https://arxiv.org/pdf/2303.04671.pdf

项目地址:https://github.com/microsoft/visual-chatgpt

他们不是从头开始训练一个新的多模态 ChatGPT,而是直接基于 ChatGPT 构建 Visual ChatGPT,并结合了各种 VFM。为了弥合 ChatGPT 和这些 VFM 之间的差距,该钻研提出了一个 Prompt Manager,其支持以下功能:

1)明确告诉 ChatGPT 每个 VFM 的功能并指定输入输入款式; 

2) 将不同的视觉信息,例如 png 图象、深度图象和 mask 矩阵,转换为谈话款式以匡助 ChatGPT 了解; 

3) 处置不同 VFM 的历史、优先级和冲突。

在 Prompt Manager 的匡助下,ChatGPT 可以利用这些 VFM,并以迭代的方式接收它们的反馈,直到满足用户的需求或达到结束条件。

总结而言,本文贡献如下: 

提出 Visual ChatGPT,打开了 ChatGPT 和 VFM 连接的大门,使 ChatGPT 能够处置复杂的视觉义务;

设计了一个 Prompt Manager,其中涉及 22 个不同的 VFM,并定义了它们之间的内在关联,以便更好地交互和组合;

进行了大量的零样本实验,并展示了大量的案例来验证 Visual ChatGPT 的了解和天生能力。

如图 1 所示,用户上传了一张黄色花朵的图象,并输入一条复杂的谈话指令「请根据该图象天生的深度图在天生一朵红色花朵,然后逐步将其制作成卡通图片。」在 Prompt Manager 匡助下,Visual ChatGPT 启动了和 VFM 相关的执行链。

其执行过程是这样的,首先是深度估计模型,用来检测图象深度信息;然后是深度 – 图象模型,用来天生具有深度信息的红花图象;最后利用基于 Stable Diffusion 的风格迁移 VFM 将该图象风格转换为卡通图象。

在上述 pipeline 中,Prompt Manager 作为 ChatGPT 的调度器,供应可视化款式的类型并记录信息转换的过程。最后,当 Visual ChatGPT 从 Prompt Manager 获得卡通提醒时,它将结束执行 pipeline 并显示最终结果。

视觉ChatGPT来了,微软发布,代码已开源

在接下来的示例中,用户输入提醒:你能帮我天生一张猫的图象吗?收到指示后,Visual ChatGPT 天生一张正在看书的猫的图象。

视觉ChatGPT来了,微软发布,代码已开源

你还可以要求 Visual ChatGPT 将图象中的猫换成狗,然后把书删除:

视觉ChatGPT来了,微软发布,代码已开源

你甚至还能要求 Visual ChatGPT 天生 canny 边缘检测,然后基于此天生另一张图象:

视觉ChatGPT来了,微软发布,代码已开源

接下来我们看看该钻研是如何实现的。

方法:Visual ChatGPT

下图为 Visual ChatGPT 概览。左边进行了三轮对话,中间是 Visual ChatGPT 如何迭代调用 Visual Foundation Models 并供应答案的流程图。右侧展示了第二次 QA 的详细过程。

视觉ChatGPT来了,微软发布,代码已开源

体系原则 prompt 管理 视觉ChatGPT来了,微软发布,代码已开源

Visual ChatGPT 是一个集成了不同 VFM 来了解视觉信息并天生相应答案的体系。因此,Visual ChatGPT 需要定制一些体系原则,并将其转化为 ChatGPT 可以了解的 prompt。这些 prompt 有多种用途,包括:

Visual ChatGPT 本身的用途:Visual ChatGPT 旨在协助完成一系列与文本和视觉相关的义务,例如 VQA、图象天生和编辑;

VFM 的可访问性:Visual ChatGPT 可以访问 VFM 列表来解决各种 VL( vision-language ) 义务。运用哪种根本模型完全由 ChatGPT 模型本身决定,因此 Visual ChatGPT 可以轻松支持新的 VFM 和 VL 义务;

文件名敏感度:Visual ChatGPT 根据文件名访问图象文件,运用精确的文件名以避免歧义至关重要,因为一轮对话可能包含多个图象及其不同的更新版本,滥用文件名会导致混淆图片。因此,Visual ChatGPT 被设计为严格运用文件名,确保它检索和操作正确的图象文件;

Chain-of-Thought:如上图 1 所示天生卡通图片的过程,涉及深度估计、深度到图象和风格转换的 VFM,这种看似简单的命令可能需要多个 VFM,为了通过将查问分解为子问题来解决更具挑战性的查问,Visual ChatGPT 引入了 CoT 以匡助决定、利用和调度多个 VFM;

推理款式的严谨性:Visual ChatGPT 必须遵循严格的推理款式。因此,该钻研运用精细的正则表达式匹配算法解析中间推理结果,并为 ChatGPT 模型构建合理的输入款式,以匡助其确定下一次执行,例如触发新的 VFM 或返回最终响应;

可靠性作为一种谈话模型,Visual ChatGPT 可能会伪造假图象文件名或事实,这会使体系不可靠。为了处置此类问题,该钻研对 prompt 进行了设计,要求 Visual ChatGPT 忠于视觉根本模型的输入,而不是伪造图象内容或文件名。此外,多个 VFM 的协作可以提高体系可靠性,因此本文构建的 prompt 将引导 ChatGPT 优先利用 VFM,而不是根据对话历史天生结果。

下表为 Visual ChatGPT 支持的 22 种根本模型:

视觉ChatGPT来了,微软发布,代码已开源

根本模型的 prompt 管理 视觉ChatGPT来了,微软发布,代码已开源

Visual ChatGPT 配备了多个 VFM 来处置各种 VL 义务。由于这些不同的 VFM 可能有一些相似之处,例如,图象中对象的替换可以被视为天生新图象,图象到文本(I2T)义务和图象问答(VQA)义务都可以了解为根据供应的图象给出响应,区分它们至关重要。如图 3 所示,Prompt Manager 具体定义了以下几个方面来匡助 Visual ChatGPT 准确了解和处置 VL 义务:

名称:名称 prompt 为每个 VFM 供应了整体功能的抽象,例如回答关于图象的问题,它不仅有助于 Visual ChatGPT 简明扼要地了解 VFM 的用途,而且名称还是 VFM 的入口。

用法:用法 prompt 描述了应该运用 VFM 的一定场景。例如,Pix2Pix 模型适用于改变图象的风格。供应此信息有助于 Visual ChatGPT 做出将哪个 VFM 用于一定义务的明智决策。

输入 / 输入:输入和输入 prompt 概述了每个 VFM 所需的输入和输入款式,因为款式可能有很大差异,并且为 Visual ChatGPT 正确执行 VFM 供应明确的指导至关重要。

示例(可选):示例 prompt 是可选的,但它可以匡助 Visual ChatGPT 更好地了解如何在一定的输入模板下运用一定的 VFM 以及处置更复杂的查问。

视觉ChatGPT来了,微软发布,代码已开源

用户查问的 prompt 管理 视觉ChatGPT来了,微软发布,代码已开源

Visual ChatGPT 支持多种用户查问,包括谈话或图象,简单或复杂的查问,以及多张图片的引用。Prompt Manager 从以下两个方面处置用户查问:

天生唯一的文件名。Visual ChatGPT 可以处置两种类型的图象相关查问:涉及新上传图象的查问和涉及引用现有图象的查问。对于新上传的图象,Visual ChatGPT 会天生一个具有通用唯一标识符 (UUID) 的唯一文件名,并添加一个前缀字符串「image」来表示相对目录,例如「image/{uuid}.png」。虽然新上传的图象不会被输入 ChatGPT,但会天生一个虚假的对话历史记录,其中包含一个说明图象文件名的问题和一个表明图象已收到的答案。这个虚假的对话历史有助于以下对话。对于涉及引用现有图象的查问,Visual ChatGPT 会忽略文件名检查。这种方法已被证明是有益的,因为 ChatGPT 能够了解用户查问的模糊匹配,前提是它不会导致歧义,例如 UUID 名称。

确保正确触发 VFM。为了保证 Visual ChatGPT 的 VFM 成功触发,该钻研在 视觉ChatGPT来了,微软发布,代码已开源 后面附加了一个后缀提醒,这个提醒有两个目的:1)提醒 Visual ChatGPT 运用根本模型,而不是仅仅依靠它的想象;2) 鼓励 Visual ChatGPT 供应由根本模型天生的一定输入,而不是通用响应。

根本模型输入的 prompt 管理视觉ChatGPT来了,微软发布,代码已开源

对于来自不同 VFM 视觉ChatGPT来了,微软发布,代码已开源的中间输入,Visual ChatGPT 将隐式汇总并将它们供应给 ChatGPT 进行后续交互,即调用其他 VFM 进行进一步操作,直到达到结束条件或将结果反馈给 ChatGPT 用户。内部步骤可以拆解为天生链式文件名、调用 VFM、询问用户更多细节以确定用户命令。

实验及结果

多轮对话完整案例

图 4 为 Visual ChatGPT 进行的 16 轮多模态对话案例。在本例中,用户同时询问文本和图象问题,Visual ChatGPT 能够以文本和图象的方式给出响应。

视觉ChatGPT来了,微软发布,代码已开源

Prompt Manager 案例钻研

体系原则 prompt 管理分析钻研如图 5 所示:为了验证体系原则 prompt 的有效性,该钻研从中删除了不同的部分来比较模型性能。结果显示每次移除都会导致不同的容量退化。

视觉ChatGPT来了,微软发布,代码已开源

图 6 为根本模型 prompt 管理的案例分析。前面也提到 VFM 的名称非常重要,需要明确定义。当名称缺失或模糊时,Visual ChatGPT 会进行多次猜测,直到找到现有的 VFM,或遇到错误终止,如左上角所示。此外,VFM 应清楚地描述在一定的场景下所运用的模型,以避免错误的响应,右上图显示风格迁移被错误地处置成替换。还有一点需要注意的是,输入输入款式的 prompt 要准确,避免参数错误,如左下图。示例 prompt 可以匡助模型处置复杂的用法,但它是可选的,如右下图所示,虽然本文删除了示例 prompt,但 ChatGPT 还可以总结对话历史和人类意图以运用正确的 VFM。

视觉ChatGPT来了,微软发布,代码已开源

图 7 上半部分分析了用户查问 prompt 管理的案例钻研,图 7 底部分析了模型输入的 prompt 管理案例。

视觉ChatGPT来了,微软发布,代码已开源

了解更多内容,请参考原论文。

原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/22255

(0)
上一篇 2023年3月10日 上午2:39
下一篇 2023年3月10日 下午2:19

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注