一文看懂最火的AutoGPT、HuggingGPT、Visual ChatGPT到底是什么逻辑?
我们在前面说ChatGPT改变了用户与应用交互的核心逻辑,从点触逻辑到自然语言逻辑。用户使用自然语言输入,ChatGPT把自然语言结构化后输入给应用,应用解决用户的需求,然后应用返回结构化数据给ChatGPT,ChatGPT把结构化数据用更自然的方式输出给用户。
整个流程里ChatGPT充当了一个大脑的角色。它理解用户的自然语言需求,它将需求拆解为多个有顺序的目标任务,它把任务分配给对应的应用(叫工具、Agent都行)去执行,它把所有应用执行的结果总结起来解决用户需求,并通过更自然的方式告诉用户。这个逻辑跟ReAct的逻辑非常类似。
在这个逻辑里,假设大模型的自然语言理解能力可以达到100%的准确,那么精准调用应用就可以解决用户的需求了。在应用足够丰富的情况下,任何复杂的任务都可以在这个逻辑里解决,就可以无限扩大大模型的能力边界。
以上就是:大模型即大脑的逻辑。
接下来我们用大模型即大脑的逻辑,对最近流行的项目做一个拆解。不同项目的主要差别在于Prompt的逻辑以及调用应用的范围不一样,这里的应用叫工具、agent都行,主要包含Visual ChatGPT、HuggingGPT、Toolformer、AutoGPT等。
01
—
Visual ChatGPT[1]微软亚洲研究院
Visual ChatGPT是最简单的一种大模型即大脑的项目,Visual ChatGPT调用的应用范围仅限于各种视觉基础模型(Visual Foundation Models)。这种形态的项目,虽然能力边界小,但是大模型LLM的负担是最轻的,每一个步骤以及流程是更加的可控。未来各种垂直领域的产品,这种形态应该更为常见。
根据论文提供的架构图[1],这个系统是利用ChatGPT和Prompt Manager(简称M)来做自然语言理解和用户意图识别,然后决定调用哪些应用来解决问题。
题外话PM除了Product Manager以外多了一个定义Prompt Manager。
上图描述了一个3轮对话:
第一轮对话:逻辑简单,大模型直接处理(左上)。(1) 用户Q1输入一张图片(2) 大模型回答A1收到。
第二轮对话:处理逻辑比较复杂,大模型需要调用应用来解决(左中、中间列、右边列)。
(1)用户Q2输入了“replace the sofa in this image with a desk and then make it like a water-color painting” M+ChatGPT理解到“沙发改为桌子”和“把画风改为水彩画”两个要求。
(2) M+ChatGPT 把需求拆解为两个任务,“沙发改为桌子”和“把画风改为水彩画”,并排序了这两个任务。
(3) M+ChatGPT理解到第一个任务是“沙发改为桌子”,需要分配给(Visual Foundation Models,VFM)因此系统调用VFM的替换东西功能(Replace Something From The Photo),生成了符合第一个任务的图。
(3) M+ChatGPT理解到第二个任务是“把画风改为水彩画”,需要分配给(Visual Foundation Models,VFM)因此系统调用VFM的通过语言修改图片功能(Instruct Image Using Text),生成了符合第二个任务的图。(4)M+ChatGPT理解到两个任务已经完成了,总结出最后这张图就是用户想要的图片,生成了一个中间回答(Intermediate Answer)因为还有第三轮问答,如果没有就是最终回答。
第三轮对话:比第二轮对话简答,大模型也需要调用应用来解决(左下)。
(1) 用户提出Q3图中的墙是什么颜色的?
(2) M+ChatGPT理解不需要调用VFM,只需要调用视觉问题回答功能(visual question answering)VQA回答问题得到答案A3图片中的墙是蓝色的。
02
—
HuggingGPT[2]
浙江大学,微软研究院亚洲
HuggingGPT能调用的应用范围是huggingface社区的所有模型(包括但不仅限于文生图、图生文、语音转文字、文字合成语音等),从而让大模型LLM能驱动其他智能Agent,实现多模态能力。
HuggingGPT将大模型即大脑的整个过程分为为4步[2]:
任务规划:利用ChatGPT理解用户的意图,并分解成可能解决的计划任务。 模型选择:ChatGPT 根据托管在Hugging Face 上的模型的模型描述,给模型分配计划任务( 跟ChatGPT的插件是一个逻辑,ChatGPT也是根据插件的描述来选择插件)。 任务执行:调用并执行每个选定的模型,并将预测(结果)返回给ChatGPT。 生成结果:最后,使用ChatGPT总结所有模型的结果,为用户生成答案。
上图描述了一个多模态的对话:
Q:你能描述一下这幅画吗?数数这幅画里有多少个对象? + 【图片】A:一段文字可以描述给定的图片:一群长颈鹿和斑马正在草地上吃草。此外,检测到了五个对象,得分分别为长颈鹿99.9%,斑马99.7%,斑马99.9%,长颈鹿97.1%,斑马99.8%。上方的图片显示了边界框。我对这张图片进行了图像分类、目标检测和图像描述,是结合nlpconnet/vit-gpt2-imagecaptioning、facebook/detr-resnet-101和google/vit模型的预测结果输出的。+ 【图片,放大看图片里面框出了不同的动物】
03
—
Toolformer[3]
Meta人工智能研究院
Toolformer的主要思路是希望训练一个模型,用于决定调用哪些API、何时调用它们、传递什么参数,并且如何最佳地将结果融入到token的生成中。
所以Toolformer调用的范围是外部工具。
上图演示了Toolforme自主地决定调用不同的API(从上到下依次为:问答系统、计算器、机器翻译系统和Wikipedia搜索引擎)来获取对完成一篇文章有用的信息。这个工作实际上也为后续的AutoGPT和BabyAGI等项目提供了灵感。
04
—
AutoGPT[4]
先写到这里,后面再补充一篇。
欢迎大家:
关注、点赞、在看、转发!
参考文献:
[1]https://arxiv.org/pdf/2303.04671.pdf
Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models
Chenfei Wu Shengming Yin Weizhen Qi Xiaodong Wang Zecheng Tang Nan Duan
Microsoft Research Asia
[2]https://arxiv.org/pdf/2303.17580.pdf
HuggingGPT: Solving AI Tasks with ChatGPT and its
Friends in Hugging Face
Yongliang Shen1,2∗ , Kaitao Song2∗ , Xu Tan2 , Dongsheng Li2 , Weiming Lu1 , Yueting Zhuang1
Zhejiang University1 , Microsoft Research Asia2
[3]https://arxiv.org/pdf/2302.04761.pdf
Toolformer: Language Models Can Teach Themselves to Use Tools
Timo Schick Jane Dwivedi-Yu Roberto Dessì† Roberta Raileanu Maria Lomeli Luke Zettlemoyer Nicola Cancedda Thomas Scialom
Meta AI Research †Universitat Pompeu Fabra
[4]https://github.com/Significant-Gravitas/Auto-GPT
Auto-GPT is an experimental open-source application showcasing the capabilities of the GPT-4 language model. This program, driven by GPT-4, chains together LLM "thoughts", to autonomously achieve whatever goal you set. As one of the first examples of GPT-4 running fully autonomously, Auto-GPT pushes the boundaries of what is possible with AI.