近年来,大型谈话模型(LLM)取得了令人难以置信的进展,尤其是去年 11 月 30 日,OpenAI 重磅推出的聊天对话模型 ChatGPT,短短三个月席卷社会各个领域。ChatGPT 会的东西五花八门,能陪你聊天、编写代码、修改 bug、解答问题……
但即便是非常强大的 ChatGPT 也存在短板,由于它是用单一谈话模态训练而成,因此其处置视觉信息的能力非常有限,相比较而言,视觉根本模型(VFM,Visual Foundation Models)在计算机视觉方面潜力巨大,因而能够了解和天生复杂的图象。例如,BLIP 模型是了解和供应图象描述的专家;大热的 Stable Diffusion 可以基于文本提醒合成图象。然而由于 VFM 模型对输入 – 输入款式的苛求和固定限制,使得其在人机交互方面不如会话谈话模型灵活。
我们不禁会问,能否构建一个同时支持图象了解和天生的类似 ChatGPT 的体系?一个直观的想法是训练多模态对话模型。然而,建立这样一个体系会消耗大量的数据和计算资源。此外,另一个挑战是,如果我们想整合谈话和图象以外的模态,比如视频或语音,该怎么办?每次涉及新的模态或功能时,是否有必要训练一个全新的多模态模型?
来自微软亚洲钻研院的钻研者提出了一个名为 Visual ChatGPT 的体系来回答上述问题,他们将 ChatGPT 和多个 SOTA 视觉根本模型连接,实现在对话体系中了解和天生图片。为了方便复现,该钻研已经将代码完全开源。
论文地址: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 并显示最终结果。
在接下来的示例中,用户输入提醒:你能帮我天生一张猫的图象吗?收到指示后,Visual ChatGPT 天生一张正在看书的猫的图象。
你还可以要求 Visual ChatGPT 将图象中的猫换成狗,然后把书删除:
你甚至还能要求 Visual ChatGPT 天生 canny 边缘检测,然后基于此天生另一张图象:
接下来我们看看该钻研是如何实现的。
方法:Visual ChatGPT
下图为 Visual ChatGPT 概览。左边进行了三轮对话,中间是 Visual ChatGPT 如何迭代调用 Visual Foundation Models 并供应答案的流程图。右侧展示了第二次 QA 的详细过程。
体系原则 prompt 管理
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 种根本模型:
根本模型的 prompt 管理
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 以及处置更复杂的查问。
用户查问的 prompt 管理
Visual ChatGPT 支持多种用户查问,包括谈话或图象,简单或复杂的查问,以及多张图片的引用。Prompt Manager 从以下两个方面处置用户查问:
天生唯一的文件名。Visual ChatGPT 可以处置两种类型的图象相关查问:涉及新上传图象的查问和涉及引用现有图象的查问。对于新上传的图象,Visual ChatGPT 会天生一个具有通用唯一标识符 (UUID) 的唯一文件名,并添加一个前缀字符串「image」来表示相对目录,例如「image/{uuid}.png」。虽然新上传的图象不会被输入 ChatGPT,但会天生一个虚假的对话历史记录,其中包含一个说明图象文件名的问题和一个表明图象已收到的答案。这个虚假的对话历史有助于以下对话。对于涉及引用现有图象的查问,Visual ChatGPT 会忽略文件名检查。这种方法已被证明是有益的,因为 ChatGPT 能够了解用户查问的模糊匹配,前提是它不会导致歧义,例如 UUID 名称。
确保正确触发 VFM。为了保证 Visual ChatGPT 的 VFM 成功触发,该钻研在 后面附加了一个后缀提醒,这个提醒有两个目的:1)提醒 Visual ChatGPT 运用根本模型,而不是仅仅依靠它的想象;2) 鼓励 Visual ChatGPT 供应由根本模型天生的一定输入,而不是通用响应。
根本模型输入的 prompt 管理
对于来自不同 VFM 的中间输入,Visual ChatGPT 将隐式汇总并将它们供应给 ChatGPT 进行后续交互,即调用其他 VFM 进行进一步操作,直到达到结束条件或将结果反馈给 ChatGPT 用户。内部步骤可以拆解为天生链式文件名、调用 VFM、询问用户更多细节以确定用户命令。
实验及结果
多轮对话完整案例
图 4 为 Visual ChatGPT 进行的 16 轮多模态对话案例。在本例中,用户同时询问文本和图象问题,Visual ChatGPT 能够以文本和图象的方式给出响应。
Prompt Manager 案例钻研
体系原则 prompt 管理分析钻研如图 5 所示:为了验证体系原则 prompt 的有效性,该钻研从中删除了不同的部分来比较模型性能。结果显示每次移除都会导致不同的容量退化。
图 6 为根本模型 prompt 管理的案例分析。前面也提到 VFM 的名称非常重要,需要明确定义。当名称缺失或模糊时,Visual ChatGPT 会进行多次猜测,直到找到现有的 VFM,或遇到错误终止,如左上角所示。此外,VFM 应清楚地描述在一定的场景下所运用的模型,以避免错误的响应,右上图显示风格迁移被错误地处置成替换。还有一点需要注意的是,输入输入款式的 prompt 要准确,避免参数错误,如左下图。示例 prompt 可以匡助模型处置复杂的用法,但它是可选的,如右下图所示,虽然本文删除了示例 prompt,但 ChatGPT 还可以总结对话历史和人类意图以运用正确的 VFM。
图 7 上半部分分析了用户查问 prompt 管理的案例钻研,图 7 底部分析了模型输入的 prompt 管理案例。
了解更多内容,请参考原论文。
原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/22255