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

简介: 视觉ChatGPT来了,微软发布,代码已开源(下)

正文



基础模型的 prompt 管理 9.png


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 以及处理更复杂的查询。


11.png


用户查询的 prompt 管理 12.png


Visual ChatGPT 支持多种用户查询,包括语言或图像,简单或复杂的查询,以及多张图片的引用。Prompt Manager 从以下两个方面处理用户查询:


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


确保正确触发 VFM。为了保证 Visual ChatGPT 的 VFM 成功触发,该研究在 13.png面附加了一个后缀提示,这个提示有两个目的:1)提示 Visual ChatGPT 使用基础模型,而不是仅仅依靠它的想象;2) 鼓励 Visual ChatGPT 提供由基础模型生成的特定输出,而不是通用响应。



基础模型输出的 prompt 管理14.png


对于来自不同 VFM 15.png的中间输出,Visual ChatGPT 将隐式汇总并将它们提供给 ChatGPT 进行后续交互,即调用其他 VFM 进行进一步操作,直到达到结束条件或将结果反馈给 ChatGPT 用户。内部步骤可以拆解为生成链式文件名、调用 VFM、询问用户更多细节以确定用户命令。


实验及结果


多轮对话完整案例


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


16.png


Prompt Manager 案例研究


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


17.png18.png


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


19.png


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


29.png


相关文章
|
5月前
|
人工智能 自然语言处理 搜索推荐
微软开源基于ChatGPT的,超级文本代码智能体
【7月更文挑战第17天】微软的TaskWeaver是开源的LLM框架,聚焦领域特定数据分析与个性化需求。它以代码优先,将用户请求转为可执行代码,增强处理复杂任务的效率和准确性。通过用户定义插件实现定制,适应多种场景。然而,转化请求可能引入复杂性和错误,非技术用户使用插件有难度,且开源带来的安全与隐私问题需关注。[论文链接](https://arxiv.org/abs/2311.17541)**
69 4
|
3月前
|
JavaScript 前端开发 Java
ChatGPT与代码扫描
ChatGPT与代码扫描,感觉英文回答比中文好
31 5
|
4月前
|
数据可视化 Java
使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】
这篇文章介绍了使用Java语言和Swing框架实现的扫雷小游戏的详细代码和实现过程。
使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】
|
3月前
|
调度
CPU调度器实现提示:针对特定体系结构代码【ChatGPT】
CPU调度器实现提示:针对特定体系结构代码【ChatGPT】
|
4月前
|
SQL 人工智能 搜索推荐
如何有效利用ChatGPT写代码?
如何有效利用ChatGPT写代码?
|
3月前
|
安全 Linux 调度
保持内核代码的可抢占安全 【ChatGPT】
保持内核代码的可抢占安全 【ChatGPT】
|
3月前
|
存储 Linux 开发工具
提交补丁:将您的代码提交到内核的基本指南 【ChatGPT】
提交补丁:将您的代码提交到内核的基本指南 【ChatGPT】
|
3月前
|
机器学习/深度学习 Linux 开发工具
Linux内核开发流程指南 - 5. 编写正确的代码【ChatGPT】
Linux内核开发流程指南 - 5. 编写正确的代码【ChatGPT】
|
3月前
|
缓存 编译器 Linux
Linux内核开发流程指南 - 4. 编写正确的代码【ChatGPT】
Linux内核开发流程指南 - 4. 编写正确的代码【ChatGPT】
|
4月前
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现

热门文章

最新文章