ChatGPT新玩法:Visual-ChatGPT开启GPT多模态交流范式
发布时间:2023-03-20 07:00
摘要
自2022年底以来,ChatGPT凭借跨领域的卓越会话能力和推理能力火速出圈。然而,ChatGPT作为语言模型,无法处理和生成视觉图像。2023年3月微软提出的Visual ChatGPT系统重磅来袭。该系统结合如Stable Diffusion等前沿视觉基础模型(VFM),以多模态的方式进行交互。Visual ChatGPT走向多模态对话的同时,展示了很好的图像理解和生成能力。
介绍
ChatGPT真正以对话的方式与用户交互,并保存历史会话结果,引导后续答案生成。实际上,对于一些复杂的问题,图像更具备丰富的内容和表征能力。但ChatGPT仅限于基于文本的问询和答案,难以理解和处理视觉信息。与此同时,视觉基础模型(VFM)[1]在复杂图像的理解和生成上展示了超强的能力。例如,BLIP模型为图像理解和描述专家(输入图像,输出图像描述或者问答。试玩网址:BLIP - a Hugging Face Space by Salesforce);Stable Diffusion为基于文本提示生成图像专家(输入文本提示,输出图像。试玩网址:Stable Diffusion Online (stablediffusionweb.com));pixel2pixel完成风格迁移任务(输入图像,输出另一种域分布图像)。据此,微软提出了Visual ChatGPT系统,结合ChatGPT和VFM支持图像理解和生成会话。为了消除ChatGPT和VFM之间的差距和VFM输入输出上的格式差异,文中提出了PromptManager。PromptManager显式地告知ChatGPT每个VFM的功能并定义了们之间的内部关联,指定每个VFM的输入输出格式;支持将不同的视觉数据(不同格式图像、深度图像和掩码矩阵)转换为语言格式,帮助ChatGPT理解对话内容;支持接受反馈,处理不同视觉基础模型VFM的中间输出、优先级和冲突等。
Visual ChatGPT
假设 表示Visual ChatGPT系统N轮对话,
是经过一系列VFM得到的输出,
表示第
轮对话中第
个VFM(F)的输出。在处理 Prompt Manager M 时,
的输入格式在不断地被修改,以满足每个F的输入。Visual ChatGPT的定义如公式(1)所示:
公式(1)中P为系统原理,为Visual ChatGPT系统提供了基本规则。F为视觉基础模型。表1展示了系统中所涉及的VFM、对应的显存占用和具体任务。 表示第i轮对话前的历史对话。
包含语言和视觉用户查询。
为来自j个调用的VFM的所有先前推理历史。
为不同VFM的中间结果。M作为提示管理器,将上述组成转换为语言提示,以便ChatGPT模型能够理解。图1为Visual ChatGPT的整体概述,下文将详细介绍上述组成。
图1 Visual ChatGPT概述。左侧显示三轮对话,中间显示Visual ChatGPT迭代调用Visual Foundation模型并提供答案。右侧显示了第二次QA的详细流程。
图片来源:https://arxiv.org/abs/2303.04671
表1 Visual ChatGPT系统中包含的VFM
图片来源:https://arxiv.org/abs/2303.04671
Foundation Model |
GPU Memory (MB) |
任务 |
ImageEditing |
3981 |
Remove/Replace Something From The Photo |
InstructPix2Pix |
2827 |
Instruct Image Using Text |
Text2Image |
3385 |
Generate Image From User Input Text |
ImageCaptioning |
1209 |
Get Photo Description |
Image2Canny |
0(cpu) |
Edge Detection On Image |
CannyText2Image |
3531 |
Image Generation Condition On Canny Image |
Image2Line |
0(cpu) |
Line Detection On Image |
LineText2Image |
3529 |
Generate Image Condition On Line Image |
Image2Hed |
0(cpu) |
Hed Detection On Image |
HedText2Image |
3529 |
Generate Image Condition On Soft Hed Boundary Image |
Image2Scribble |
0(cpu) |
Scribble Detection On Image |
ScribbleText2Image |
3531 |
Generate Image Condition On Scribble Image |
Image2Pose |
0(cpu) |
Pose Detection On Image |
PoseText2Image |
3529 |
Generate Image Condition On Pose Image |
Image2Seg |
919 |
Uniformer Segmentation |
SegText2Image |
3529 |
Generate Image Condition On Segmentations |
Image2Depth |
0(cpu) |
Predict Depth On Image |
DepthText2Image |
3531 |
Generate Image Condition On Depth |
Image2Normal |
0(cpu) |
Predict Normal Map On Image |
NormalText2Image |
3529 |
Generate Image Condition On Normal Map |
VisualQuestionAnswering |
1495 |
Answer Question About The Image |
基于系统的提示管理器
为Visual ChatGPT提供了基本规则。包括(1)VFM Accessibility;(2)保持文件名敏感;(3)思维链Chain of Thought;(4)严格控制推理格式;(5)极大化可靠性。图2为
示例。
VFM Accessibility是指:Visual ChatGPT可以访问VFM列表。由ChatGPT模型本身决定使用哪些VFM的排列组合。
保持文件名敏感具体是指:由于每轮历史对话会包含多个图像及不同的更新版本,使用精确的文件名会避免歧义和混淆。Visual ChatGPT严格规定文件名的命名规则,以确保在对话中正确检索和操作图像文件。
Chain of Thought(CoT)借助CoT作为提示,将用户较复杂的查询分解为子问题。以帮助Visual ChatGPT决定、使用并调度多个VFM。
严格控制推理格式是指:使用复杂的正则表达式匹配算法解析中间推理结果,并为ChatGPT模型构建合理的输入格式,以帮助确定下一次执行内容,例如,触发新的VFM或返回最终响应。
极大化可靠性是指:要求Visual ChatGPT忠于VFM的输出,而不是历史输出。
图2 基于系统原理的提示管理器概述
图片来源:https://arxiv.org/abs/2303.04671
基础模型的提示管理器
Visual ChatGPT配备了21个VFM来处理各种vision-language任务,但这些模型间存在不同程度重叠的相似度。例如,图像中物体替换和去除可以视为图像生成任务;Image-to-Text (I2T)和Image Question Answering(VQA)都可以视为对图像的响应。因此需要提示管理器对基础模型的(1)模型名称;(2)模型用法;(3)模型输入/输出;(4)示例进行定义,区分这些相近的VFM并帮助Visual ChatGPT准确理解和处理查询中的VL任务。图3为 示例。
模型名称提示提供了每个VFM的功能摘要。不仅有助于Visual ChatGPT以简洁的方式理解VFM的具体任务,而且还作为VFM的入口。
模型用法提示描述了每个VFM的应用场景。例如,Pix2Pix模型用于改变图像的样式;Image2Depth模型生成深度图像等。这些提示信息帮助Visual ChatGPT决定将哪些VFMs用于特定任务。
模型输入/输出提示概述了每个VFM的输入和输出格式。不同模型接收和输出的格式可能会有较大差异,所以需要为Visual Chat GPT提供明确的指导。
示例提示作为可选项,有助于Visual ChatGPT更好地理解如何在特定输入模板下使用特定的VFM并处理更复杂的查询。
图3 基于基础模型的提示管理器概述
图片来源:https://arxiv.org/abs/2303.04671
用户查询的提示管理器
支持多种用户查询,包括语言或图像,简单或复杂的查询,或多个图像的引用。提示管理器M在以下两个方面处理用户查询:生成唯一文件名和强制VFM思维。
生成唯一文件名是指对于新上传的图像,Visual ChatGPT生成具有通用唯一标识符(UUID)的唯一文件名,并添加表示相对目录的前缀字符串“image”,例如“image/UUID.png”。也就是说,上传的图像不会被输入到ChatGPT,但会生成一个假的对话历史,对话包含一个说明图像文件名的问题和一个表示已收到图像的答案。这段假对话历史将作为后续对话的引导。
强制VFM思维是为了确保VFM触发。由于ChatGPT是一个文本语言模型,Visual ChatGPT必须使用VFM Tool来观察和处理图像,而不是想象。这些想法和观察结果只对VisualChatGPT可见。在 中,需要在
后面添加下述提示“Thought: Do I need to use a tool?”。这个提示有两个作用:(1)提示Visual ChatGPT优先使用基础模型而不是依赖想象;(2)鼓励VisualChatGPT提供从基础模型得到的特定输出而不是像“here you are” 这种通用的回答。
图4 基于用户查询的提示管理器概述
图片来源:https://arxiv.org/abs/2303.04671
基础模型输出的提示管理器
对于次序排列的VFM产生的中间输出 ,Visual ChatGPT将对其隐式汇总并反馈给ChatGPT进行后续交互,向用户提供反馈执行其他VFM进行进一步操作直到达到结束条件。内部步骤包括:(1)生成链接文件名;(2)调用更多VFM;(3)询问更多详细信息。
由于Visual ChatGPT的中间输出将成为下一轮隐式对话的输入,中间输出的文件名应该具逻辑性和可理解性,以帮助LLM更好地理解推理过程。具体来说,从Visual Foundation模型生成的图像保存在“image/”文件夹下,提示表示图像名称的字符串。然后,将图像命名为”Name_Operation_Prev_Name_Org_Name”。例如:“image/ui3c_edge_of_o0ec_nj9dcgf.png”表示nj9dcgf为最原始图像名称,o0ec当前Operation的输入图像名称、edge是Operation的名称、ui3c是操作过后的图像名称。使用这样的命名规则,可以向ChatGPT提示中间结果属性,以及VFM的执行顺序。
自动调用更多的VFM来完成用户的命令。是在每一次生成的末尾增加一个后缀“Thought:”,让ChatGPT不断询问自己是否继续需要VFM来解决当前问题。
当用户的命令不明确时,Visual ChatGPT应该询问用户更多详细信息,以帮助更好地使用和调度VFM。这种设计保障了对话安全,在输入信息不足的条件下,LLM不允许在没有依据的情况下任意篡改或推测用户的意图。
图5 基于基础模型输出的提示管理器概述
图片来源:https://arxiv.org/abs/2303.04671
Demo展示
文章示例:
图6 文章展示对话示例
图片来源:visual-chatgpt/demo_short.gif at main · microsoft/visual-chatgpt · GitHub
实测示例:
图7 右侧对话中,基于“remove”查询生成的提示不稳定,多次实测中都会生成其他object而不是正确去除。
测试来源:Visual Chatgpt - a Hugging Face Space by microsoft
思考
ChatGPT训练自语言,只能接收和理解语言格式的输入。Visual ChatGPT,是一个包含不同VFM的开放系统,使用户能够与ChatGPT进行超越语言格式的交互。Visual ChatGPT的主体为Prompt Manager+ChatGPT,Prompt Manager设计了一系列提示,以帮助将视觉信息注入ChatGPT,从而可以逐步解决复杂的视觉问题。论文展示大量的实验和选定的案例证明了Visual ChatGPT对于不同任务的巨大潜力和能力。但是在实际测试中,实际的生成效果不太令人满意,如实测示例中“remove”的提示时常生成不匹配的图像,从而导致对话失败。我们猜测是由于提示的不稳定性,使VFM中同时具有ImageEditing功能的模型出现了混淆而导致VFM的错误调用。为了解决上述问题,可以添加自校正模块来检查执行结果与人类意图的一致性,但这种行为会导致模型更复杂的思考,这势必会增加推理时间。那么在目前推理时间不算短的前提下,如何平衡推理速度和对话质量应该是Visual ChatGPT持续研究的话题。
Visual ChatGPT打开多模态交流范式,间接地使ChatGPT理解并在对话中生成图像。在3月15号,OpenAI紧接着发布了多模态模型GPT4。Visual ChatGPT和GPT4最大的不同之处是,前者并没有从头训练一个多模态模型,Visual ChatGPT系统的核心还是ChatGPT。此外,从表1可以看出配备所有VFM对GPGPU的显存有一定要求,虽然微软官方已提供了选择性加载视觉模型的低显存版本,但无疑会降低对话质量,这显然不是最优解。Visual ChatGPT可以视为GPT4推出前的临时解决方案,虽然GPT4没有公开更多的模型细节,但依旧话题不断。与此同时,我们看到了多模态大语言模型的研究价值和空间。
参考文献
[1] Wu, Chenfei et al. “Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models.” (2023).
本文中所引用的图片和视频来源均已标明,若有侵权请联系我们予以删除。
上一个: 人人有“丹”炼—大模型低成本微调技术
下一个: LLM大语言模型量化方法介绍(一)
近期文章