代码:https://github.com/microsoft/JARVIS
论文:https://arxiv.org/abs/2303.17580
解决不同领域和模式的复杂人工智能任务是关键一步走向先进的人工智能。虽然有大量的人工智能模型可用于不同的领域和模式,但它们无法处理复杂的人工智能任务。考虑到大型语言模型(LLM)在语言理解、生成、互动和推理,作者主张LLM可以作为控制器来管理现有的人工智能模型,以解决复杂的问题人工智能任务和语言可以是一个通用接口来实现这一点。
基于根据这一理念,作者提出了HuggingGPT,一个利用LLM的框架(例如。,ChatGPT)来连接机器学习社区中的各种AI模型(例如huggingface)来解决人工智能任务。
具体来说,作者使用ChatGPT来执行任务当收到用户请求时进行规划,根据其功能选择型号“Huggingface”中提供的描述,使用选定的执行每个子任务人工智能模型,并根据执行结果总结响应。通过利用ChatGPT强大的语言能力和丰富的人工智能模型库Huggingface,HuggingGPT能够在不同的模式和领域,并在语言、视觉和语言方面取得了令人印象深刻的成果,演讲和其他具有挑战性的任务,为高级学习铺平了新的道路人工智能。
具体步骤包括:
任务规划
在 HuggingGPT 的第一阶段,大型语言模型接受用户请求并将其分解为一系列结构化任务。复杂的请求往往涉及多个任务,大型语言模型需要确定这些任务的依赖关系和执行顺序。为了促使大型语言模型进行有效的任务规划,HuggingGPT 在其提示设计中采用了基于规范的指令和基于演示的解析。通过在提示中注入几个演示,HuggingGPT 允许大型语言模型更好地理解任务规划意图和标准。
模型选择
在解析任务列表之后,HuggingGPT 为任务列表中的每个任务选择适当的模型。为了实现这一过程,该研究首先从 HuggingFace Hub 获得对专家模型的描述(模型描述大致包括模型功能、体系架构、支持的语言和域、许可等信息。)然后通过上下文中的任务模型分配机制动态地为任务选择模型。
任务执行
一旦将任务分配给特定模型,接下来就是执行任务,即执行模型推理。为了加速和计算稳定性,HuggingGPT 在混合推理端点上运行这些模型。将任务参数作为输入,模型计算推理结果,然后将信息反馈给大型语言模型。
响应生成
所有任务执行完成后,HuggingGPT 进入响应生成阶段。在这一阶段,HuggingGPT 将前三个阶段(任务规划、模型选择和任务执行)的所有信息整合成一个简洁的摘要,包括计划任务列表、模型选择和推理结果。其中最重要的是推理结果,它是 HuggingGPT 做出最终决策的基础。这些推理结果以结构化格式出现,例如对象检测模型中具有检测概率的 bounding boxes、问答模型中的答案分布等。
例如:
对于“please generate an image where a girl is reading a book, and her pose is the same as the boy in the image example.jpg. Then please describe the new image with your voice. ”
处理流程如下:
对于一个简单的尽可能详细地描述图像的请求,HuggingGPT 可以将其扩展为五个相关任务,即图像字幕、图像分类、物体检测、分割和视觉问答。HuggingGPT 为每个任务分配专家模型,这些模型从 LLM 的不同方面提供与图像相关的信息。最后,LLM 将这些信息进行整合,并做出全面而详细的描述。
研究人员在广泛的多模态任务上测试了HuggingGPT。在ChatGP和专家模型的配合下,HuggingGPT可以解决语言、图像、音频和视频等多种模式的任务,包含了检测、生成、分类和问题回答等多种形式的任务。