摘要
人工智能(AI)最近取得了令人难以置信的进步。一方面,像ChatGPT这样的强大基础模型可以在广泛的开放领域任务上提供强大的对话,上下文学习和代码生成能力。他们还可以根据他们获得的常识知识来生成针对特定领域任务的高级解决方案。但是,他们仍然在一些专业任务上遇到困难,因为它们在预训练期间缺乏足够的特定领域的数据,或者在需要准确执行的任务上由于神经网络计算而出现错误。另一方面,也有许多现有的模型和系统(基于符号系统或基于神经网络的)可以很好地完成某些特定领域的任务。但是,由于实现方式或工作机制不同,它们不容易访问或与基础模型不兼容。因此,清楚而迫切需要一种机制,该机制可以利用基础模型提出任务解决方案概述,然后自动将概述中的某些子任务与具有特殊功能的现成模型或系统匹配,以顺序解决他们。受此启发,我们引入TaskMatrix.AI,以作为一个新的AI生态系统,该系统将基础模型与数百万个API连接起来,以完成特定任务。与旨在改善单个AI模型的大多数先前工作不同,TaskMatrix.AI更多地着重于使用现有基础模型(作为大脑的中央处理系统)链接其他AI模型或系统(作为子任务求解器),来在数字和物理领域中实现多元化的任务。作为一篇意见论文,我们将介绍如何建立这样的生态系统,解释每个关键组成部分,并使用研究案例来说明这种愿景的可行性以及我们接下来需要解决的主要挑战。
1.介绍
从可以处理和理解不同模态数据的理解模型(例如BERT,ViT,Whisper)到可以生成各种类型输出并与世界交互的生成式模型(例如GPT-4,GPT-3,Codex,DALL·E),基础模型在这十年中取得了显着的进步。ChatGPT令人印象深刻,许多人认为这是生成式智能(AGI)出现的标志。但是,基础模型在一些特定任务上仍然面临局限性和挑战,例如执行准确数学计算的任务或在现实世界完成需要处理文本和视觉技能的多步骤任务。同时,现有的模型和系统(基于数学理论,符号规则或神经网络) 在某些特定领域的任务上表现出色。但是由于实现或工作机制不同,它们不容易实现或与基础模型不兼容。因此,明确需要一种可以将基础模型与这些系统联系起来的机制,以在数字世界和物理世界中完成多元化的任务。
受此驱动的情况下,我们提出了构建一个新AI生态系统的愿景,命名为TaskMatrix.AI,该系统将基础模型与数百万现有模型或系统API链接起来以完成多元化的任务。与任意的单AI模型不同,TaskMatrix.AI可以看作是具有执行数字和物理任务能力的超级AI,具有以下关键优势:
- TaskMatrix.AI可以通过使用基础模型作为核心系统来执行数字和物理任务,首先理解不同类型的输入(例如文本,图像,视频,音频和代码),然后生成可以调用任务完成API的代码。
- TaskMatrix.AI 拥有一个API平台作为各种任务的专家库。该平台上的所有API均具有相同的文档格式,使其易于被基础模型使用,并允许开发人员添加新的API。
- TaskMatrix.AI具有强大的终身学习能力,因为它可以通过在API平台中添加具有特定功能的新API来扩展其技能以处理新任务。
- TaskMatrix.AI对其响应具有更好的解释性,因为任务解决逻辑(即动作代码)和API的结果都是可以理解的。
我们的愿景是建立一个利用基础模型链接其他擅长特定任务并可以作为API访问的模型和系统的生态系统。通过将基础模型与API联系起来,TaskMatrix.AI可以平稳整合神经和符号系统,完成数字和物理任务,并提供强大的终身学习和可靠的功能。
2.TaskMatrix.AI Architecture
2.1 Overview
TaskMatrix.AI的整体结构(如图1所示)由以下四个关键部分组成:(1)Multimodal Conversational Foundation Model (MCFM),该模型(MCFM)负责与用户交流,了解其目标和(多模态)上下文,并基于API来生成可执行代码,以完成特定任务。(2)API Platform,它提供了一个统一的API文档模式,以存储具有不同类型功能的数百万个API,并允许API开发人员或所有者注册,更新和删除其API。(3)API Selector,可以根据MCFM对用户命令的理解推荐相关的API。(4)API Executor,可以通过调用相关API来执行生成操作代码,并返回中间和最终执行结果。
此结构中的关键过程是MCFM能够根据用户指令生成操作代码的能力。我们将此过程形式化为:
A
=
M
C
F
M
(
θ
,
P
,
I
,
C
)
(1)
\mathcal A=MCFM(\theta,\mathcal P,\mathcal I,\mathcal C)\tag{1}
A=MCFM(θ,P,I,C)(1)
MCFM采用四个输入:基础模型的参数,称为
θ
θ
θ;API平台,称为
P
\mathcal P
P;用户指令,表示为
I
\mathcal I
I;对话上下文,表示为
C
\mathcal C
C。使用这些输入,该模型生成操作代码来完成用户的指令,表示为
A
A
A。
TaskMatrix.AI还提供了两种可学习的机制,可以更好地使MCFM与这些API对齐。这两种机制都需要用户反馈,表示为
F
\mathcal F
F。我们计算损失函数,表示为
L
(
A
,
F
)
=
L
(
M
C
F
M
(
θ
,
P
,
I
,
C
)
,
F
)
\mathcal L(\mathcal A,\mathcal F)=L(MCFM(θ,\mathcal P,\mathcal I,\mathcal C),\mathcal F)
L(A,F)=L(MCFM(θ,P,I,C),F)。然后,可以通过调整基础模型
θ
θ
θ的参数来优化此损失函数,并在API平台中更新文档
P
\mathcal P
P。首先,输出信号可以通过Reinforce Learning from Human Feedback (RLHF) 机制使MCFM增强对API的理解,以及从用户命令中生成动作代码的技能,同时也能增强API selector的检索性能。我们将其表示为
m
i
n
θ
L
(
M
C
F
M
(
θ
,
P
,
I
,
C
)
,
F
)
min_{\theta}\mathcal L(MCFM(θ,\mathcal P,\mathcal I,\mathcal C),\mathcal F)
minθL(MCFM(θ,P,I,C),F)。其次,输出信号也可以用作对API开发人员的反馈,以改善API的文档,并使它们更易于理解和由MCFM调用。我们将其表示为
m
i
n
P
L
(
M
C
F
M
(
θ
,
P
,
I
,
C
)
,
F
)
min_{\mathcal P}\mathcal L(MCFM(θ,\mathcal P,\mathcal I,\mathcal C),\mathcal F)
minPL(MCFM(θ,P,I,C),F)。
2.2 Multimodal Conversational Foundation Model (MCFM)
理想的MCFM应该具有四个主要功能:(1)它应该能够采用多模态输入和上下文(例如文本,图像,视频,音频和代码),并基于可以完成特定任务的API生成可执行代码。大多数现有的多模态模型(例如,CLIP和Flamingo)不适合此任务,因为它们只能编码不同的模态,但缺乏对话能力和代码生成技巧。ChatGPT是一个可以很好地理解语言和对话并相应地生成代码的模型,但仅适用于文本和代码模态。GPT-4是到目前为止最合适的模型,因为它可以处理多模态输入并同时生成文本和代码。(2)它应该能够从用户指令中提取特定任务,并提出合理的解决方案大纲(如图1所示),以帮助选择代码生成的最相关的API。ChatGPT和GPT-4都具有此功能,因为它们在文本和代码语料库中都进行了预训练,这使这两种模型具有强大的知识来推理和计划。(3)它应该能够基于API文档快速学习如何使用这些API,并基于常识和API使用历史将这些API匹配到特定任务。(4)它应包含明确的代码验证机制,以确认生成的代码的可靠性和可信度。
有了这些功能,MCFM参与了两个主要步骤(如图1所示为步骤1和步骤2)。首先,步骤1将每个用户指令和相应的对话上下文作为输入,并生成解决方案大纲。用户经常使用简短的表达方式来传达其高级任务意图,因此MCFM通过利用其对世界知识的深刻理解来生成更全面的为完成任务所需步骤的文本描述。然后,用户可以在对话期间主动编辑大纲。如果没有合适的API来实现特定步骤,或者某个步骤的结果无法满足用户的指令,则MCFM还可以编辑大纲。但是,如果用户的指令已经为完成任务提供了足够的详细信息,则可以跳过此步骤。其次,在API selector将解决方案大纲作为输入并检索相关的API之后,步骤2使用选定的API生成动作代码。在这里,由于开发人员不断上传和修改API,MCFM必须支持基于动态动作空间的决策,并且不同用户指令的检索结果各不相同。虽然生成一系列动作通常就足够了,但将动作代码作为生成结果纳入可以增强表达能力。
2.3 API Platform
API平台具有两个主要功能:第一,它为MCFM可以访问的不同类型的API提供存储;其次,它允许API开发人员或所有者通过注册,更新或删除它们来管理其API。为了帮助MCFM更好地理解和利用API,API平台指定了一个统一的API文档模板,对于每个API文档,该模板由以下五个方面组成:
- API Name:API名称提供了API的摘要。它可以帮助MCFM将用户指令链接到此API,并作为动作执行器的一部分。该名称在自然语言上应清晰,并避免与其他API名称产生歧义。
- Parameter List:API的参数列表包括输入参数和返回值,每个参数都有一个参数名称,参数描述,数据类型和默认值。此信息可以帮助MCFM正确填充相应位置的参数,并使用适当的格式填充。
- API Description:与API名称相比,API描述包含有关API的功能,其工作方式,其输入和输出以及可能的任何潜在错误或异常的更多信息。
- Usage Example (Optional):提供复杂API的用法示例可以帮助证明如何使用API,而对于简单的API可能不是必需的。
- Composition Instructions (Optional):提供打包API的开发人员可以提供组合指令。这可以作为模型的指导,以了解如何组合多个API以完成复杂的用户指令。例如,在文件编辑方案中,模型可能需要在进行编辑之前打开目标文件,然后在完成编辑后保存文件。
我们提供了一个用于打开文件的API文档的示例,该文件是Python中开源的简化版本。
2.4 API Selector
API选择器的目标从API平台中识别并选择适合MCFM所理解的任务要求和解决方案大纲的最合适的API。由于API平台可能具有数百万个API,因此API选择器需要具备搜索能力才能检索语义相关的API。API选择器还可以利用模块策略来快速找到相关的API。每个API包都对应于特定领域,例如视觉模型,数学,特定软件或特定物理设备的封装。
2.5 Action Executor
动作执行器旨在执行操作代码。TaskMatrix.AI使用动作执行器运行各种API,从简单的HTTP请求到需要多个输入参数的复杂算法或AI模型。执行后,动作执行器将结果返回给用户。为了提高准确性和可靠性,动作执行器还需要一种验证机制来确认生成的代码或结果是否满足人类指示中指定的任务。
2.6 Reinforcement Learning with Human Feedback (RLHF)
RLHF是一种通用技术,它使用强化学习方法来优化基于人类反馈的机器学习模型。它已成功用来使在文本数据通用语料库中训练的大型模型与用户指令进行对齐(例如InstructGPT)。
在TaskMatrix.AI中,我们使用RLHF从人类反馈的知识和意见中受益,以增强MCFM和API选择器。这可能会导致TaskMatrix.AI在复杂任务上更快收敛并获得更好的性能。具体来说,我们利用人类反馈来训练一个可以分类任务是否已完成的奖赏模型。在RLHF训练期间,MCFM和API选择器可以探索各种计划解决方案,选择并组合API,并且奖赏模型可以提供反馈。使用RLHF,MCFM和API选择器可以优化其策略,并发现完成任务的更好方法。