研究院最近开源了Visual ChatGPT,这是一个聊天机器人系统,可以根据人类文本提示生成和操作图像。该系统将OpenAI 的 ChatGPT与 22 种不同的视觉基础模型 (VFM) 相结合,以支持多模态交互。
该系统在 arXiv 上发表的一篇论文中进行了描述。用户可以通过键入文本或上传图像与机器人进行交互。该机器人还可以根据文本提示从头开始生成图像,或者通过操纵聊天历史记录中的先前图像来生成图像。机器人中的关键模块是提示管理器,它将用户的原始文本修改为“思维链”提示,帮助 ChatGPT 确定是否需要 VFM 工具来执行图像任务。根据微软团队的说法,Visual ChatGPT 是:
一个包含不同 VFM 的开放系统,使用户能够超越语言格式与 ChatGPT 进行交互。为了构建这样一个系统,我们精心设计了一系列提示,以帮助将视觉信息注入 ChatGPT,从而可以逐步解决复杂的视觉问题。
ChatGPT等大型语言模型(LLM)表现出了非凡的自然语言处理能力;但是,他们经过训练只能处理一种输入模式:文本。微软团队没有训练新模型来处理多模式输入,而是设计了一个提示管理器来为 ChatGPT 生成文本输入,从而产生可以调用 VFM(例如 CLIP 或 Stable Diffusion)来执行计算机视觉任务的输出。
视觉 ChatGPT 架构。图片来源: https: //github.com/microsoft/visual-chatgpt
Prompt Manager 基于LangChain Agent,VFM 定义为 LangChain agent Tools。为确定是否需要工具,代理会结合来自用户提示和对话历史的输入(其中包括图像文件名),然后应用提示前缀和后缀。前缀包括文本:
Visual ChatGPT 不能直接读取图像,但它有一个工具列表来完成不同的视觉任务。每张图片都会有一个格式为“image/xxx.png”的文件名,Visual ChatGPT可以调用不同的工具来间接理解图片。
前缀中的附加文本引导 ChatGPT 询问自己“我需要使用工具吗?” 来处理用户所需的任务,如果是这样,它应该输出工具的名称及其所需的输入,例如图像文件名或要生成的图像的文本描述。代理将反复调用 VFM 工具,将生成的图像发送到聊天室,直到它不再需要使用工具。届时,最后生成的文本输出将发送到聊天。
在关于这项工作的Hacker News线程中,一位用户注意到 VFM 使用的内存比语言模型少得多,并想知道为什么。另一位用户回复:
图像模型可能非常差,但仍会产生令人满意的结果。考虑一下,我可以从字面上随机改变图像中的所有像素 10%,你只会看到它的质量有点低,但在其他方面是完美结合的图像。语言模型就没有这样的运气,他们试图解决的问题是“更尖锐”的方式,即使有一点偏差,他们的结果也很容易完全错误。所以你需要一个更大的模型来获得足够的文本“清晰度”。”