视觉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


相关文章
|
人工智能 Linux API
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
Omnitool 是一款开源的 AI 桌面环境,支持本地运行,提供统一交互界面,快速接入 OpenAI、Stable Diffusion、Hugging Face 等主流 AI 平台,具备高度扩展性。
1672 94
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
|
存储 人工智能 关系型数据库
HiveChat:告别模型选择困难!开源ChatGPT聚合神器上线:一键切换10+模型,权限管控全免费
HiveChat 是一款专为中小团队设计的开源 AI 聊天应用,支持多种主流 AI 模型,提供高效的团队沟通和智能辅助功能。
759 9
HiveChat:告别模型选择困难!开源ChatGPT聚合神器上线:一键切换10+模型,权限管控全免费
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
441 35
|
前端开发 JavaScript Java
使用ChatGPT生成登录产品代码
使用ChatGPT生成登录产品代码
361 33
|
存储 人工智能 API
ChatGPT-on-WeChat:Star32.4k, DeepSeek加持!这款开源神器秒变AI助手,聊天体验直接起飞!
嗨,大家好,我是小华同学。今天为大家介绍一款结合DeepSeek引擎的开源项目——ChatGPT-on-WeChat,由开发者zhayujie打造。它将微信变成智能AI助手,支持文本、图片、语音对话,具备定时提醒、天气查询等扩展功能,完全开源且易于定制。项目地址:https://github.com/zhayujie/chatgpt-on-wechat。关注我们,获取更多优质开源项目和高效学习方法。
1774 11
|
JavaScript 前端开发 Java
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
274 16
|
前端开发 JavaScript Java
使用ChatGPT关于登录产品代码的代码评审
整体来看,您的测试代码结构清晰,覆盖面广,关注了安全性测试。通过一些小的改进,可以提高代码的可维护性和安全性。继续保持良好的测试习惯,并考虑使用一些现代化的工具和库来简化测试工作。
239 13
|
JavaScript 前端开发 Java
通过ChatGPT生成产品代码
通过ChatGPT生成产品代码
249 13
|
JavaScript 前端开发 Java
ChatGPT与代码扫描
ChatGPT与代码扫描,感觉英文回答比中文好
219 5
|
调度
CPU调度器实现提示:针对特定体系结构代码【ChatGPT】
CPU调度器实现提示:针对特定体系结构代码【ChatGPT】