题目:Multimodal Agents: Chaining Multimodal Experts with LLMs
来源CVPR2023 Tutorial Talk 
演讲人
:Linjie Li

视频链接
:https://www.youtube.com/watch?v=Wb5ZkZUNYc4&list=PLB1k029in3UhWaAsXP1DGq8qEpWxW0QyS&index=6

内容整理
:王怡闻

在 Linjie Li 的演讲中,她回答了多模态智能体中的重要问题之一:如何用大模型将多模态智能体串联起来。
目录
  • 建模范式的迭代
  • 新范式的产生
  • MM-ReAct 设计
  • MM-ReAct 的应用
    • 多图像推理
    • 视频分析
  • 可扩展性
    • ChatGPT -> GPT-4
    • GPT + SAM -- 理解人类指令
    • 加入更多工具
  • 规划:通过生成代码来调用工具
    • 自我评估(Self-Assessment)
    • 指令调优(Instruct Tuning)
  • 未来方向
    • 工具生成
    • 检索增强的多模式代理
    • 多模态工具使用评估

建模范式的迭代

下图展示了建模范式的更新过程:
  • 将模型在小规模的、质量较高的数据集上进行训练,这样的模型只能完成一些和数据集相关的特定任务。
  • 在大规模的数据集上进行训练,在实际应用中用特定的、小规模的、质量较高的数据集进行微调。一个典型的例子是NLP领域的BERT模型。
  • 用更大规模的数据集做预训练,在极少量的样例上做zero-shot或者in-context fewshot,如GPT3。
  • 用大规模数据集做预训练,在小数据集上做instruct tuning,NLP领域如ChatGPT,视觉领域如LLaVa。
图1
图2

新范式的产生

因此,利用大型语言模型的优势,研究人员目前正在探索一种新的范式,从解决有限的预定义问题的独立模型,转向结合多个工具或专家模型,以解决复杂的开放性问题。只需要给这个系统一些示例,让它学习在不同的场景下该调用什么API。如下图所示:用户直接与LLM进行交互,具体的实施方案由LLM自己设计,最终由LLM返回结果给用户。
图3
这种范式在NLP领域已有所应用,将一些特定的工具(如搜索引擎等)应用到更加复杂的任务上。
图4
受到NLP领域的启发过去几个月间,多模态智能体领域的进展十分迅速,并且涉及到了多个领域,如下图。后面将以MM-ReAct作为例子展示多模态智能体是如何工作的。
图5

MM-ReAct 设计

MM-ReAct的完整的工作流程如下: 我们将一个图片发送给ChatGPT,ChatGPT就会调用外部接口去完成这个任务。
  • 首先,ChatGPT确认数据类型是图像,调用外部的模型,如图像描述、密集描述、物体分类、人脸检测等等,获得图像中物体的类别和位置。
  • 分析完图像后,ChatGPT发现图中出现了两个人脸,为了获取这两个人的身份信息,ChatGPT调用名人识别模型,确认左边的运动员是科比,右边是皮尔斯。这时,完成了基本的分析工作,ChatGPT回答用户:“这张图里有两个运动员,左边的运动员是科比,右边是皮尔斯。”
  • 用户提问:“图像中左边的运动员在职业生涯拿过几个总冠军。”ChatGPT判断,这个问题需要借助搜索引擎,所以调用了bing search,最终将答案反馈给用户。
图6

MM-ReAct 的应用

多图像推理

在这个例子中,用户上传了五张收据单,ChatGPT根据接收到的信息进行推理,回答了用户诸如:“我今天在便利店花了多少钱?”这类问题。
图7

视频分析

在这个例子中,用户上传了一段篮球赛的视频,并就其中的赛点等细节进行提问,ChatGPT分析视频做出回答,并能根据用户的要求为用户剪辑片段。
图8

可扩展性

ChatGPT -> GPT-4

通过上述新范式,现有的模型可以被继续扩展。例如,我们尝试将MM-ReAct原本使用的ChatGPT升级到仅限语言的GPT-4来处理任务,可以取得比原来更出色的效果。而随着大模型的不断更新,在这个新范式下建立的多模态智能体系统的能力也会随之增强。
图9

GPT + SAM -- 理解人类指令

我们可以将不同的模型结合到一起,以应对更复杂的任务。例如,将GPT和SAM结合到一起,用户可以指导模型对图像进行修改。
图10

加入更多工具

通过接入更多的工具,系统的能力以及处理任务的类型也在不断扩展。例如,HuggingGPT接入了HuggingFace上所有的模型,并结合了ChatGPT完成模型选择的任务。
图11

规划:通过生成代码来调用工具

也有一些工作尝试优化这个新范式中的规划(Planning)部分。前面提到多模态代理使用自然语言来提示大语言模型进行规划并决定使用哪些工具可以使用编程语言来更准确地执行,但是由于代码仍然是由大语言模型生成的,因此仍然存在不准确的问题。

自我评估(Self-Assessment)

最近的一项研究尝试通过自我评估来提高准确性。我们在系统中添加了检查和学习阶段,当一轮计划和执行完成时,系统检查结果是否推理成功,如果成功,它将自动添加这次推理到示例中来指导大语言模型。
图12

指令调优(Instruct Tuning)

提高准确性的另一个方法是将系统与指令调优结合起来,生成指令 API 对的数据集,以调整较小的大语言模型。
图13

未来方向

最后,我们展望了这一新范式的未来方向,表明我们还可以采取哪些措施来进一步改进当前的系统。

工具生成

设想一个情况:在全新的任务场景下,没有合适的工具可以调用,是否可以自己生成一个合适的工具来使用?
图14

检索增强的多模式代理

第二个方向是检索增强的多模态代理。例如,如果我们有一个包含产品图像的数据库和价格列表。即使只有图像作为提示时,多模态代理也可以检索到相应的价格。
图15

多模态工具使用评估

第三个方向是构建一个系统的方法来评估此类系统使用多模式工具的准确性。
图16
附上演讲视频:
继续阅读
阅读原文