Skip to main content

GPT-4V和LLaVA的多模态功能

· 4 min read
Beibin Li

多模态预览

简介:

  • 引入多模态对话代理LLaVA代理以增强LMM的功能。
  • 用户可以使用<img img_path>标签同时输入文本和图像,以指定图像加载。
  • 通过GPT-4V笔记本进行演示。
  • 通过LLaVA笔记本进行演示。

引言

大型多模态模型(LMM)通过处理多感官数据来增强大型语言模型(LLM)的能力。

本博文和最新的AutoGen更新专注于视觉理解。用户可以输入图像,提出关于图像的问题,并从这些LMM中获得基于文本的回答。 我们现在支持来自OpenAI的gpt-4-vision-preview模型和来自Microsoft的LLaVA模型。

在这里,我们强调多模态对话代理LLaVA代理,因为它们越来越受欢迎。 GPT-4V代表图像理解的前沿,而LLaVA是一个高效的模型,从LLama-2进行了精细调整。

安装

在AutoGen安装过程中加入lmm功能:

pip install "pyautogen[lmm]"

然后,从AutoGen中导入多模态对话代理LLaVA代理

from autogen.agentchat.contrib.multimodal_conversable_agent import MultimodalConversableAgent  # 用于GPT-4V
from autogen.agentchat.contrib.llava_agent import LLaVAAgent # 用于LLaVA

使用方法

已定义了一个简单的语法,可以在单个字符串中同时包含消息和图像。

示例中的上下文学习提示:

prompt = """您现在是一个面部表情分类器。这里有一些例子。

<img happy.jpg> 描述了一个快乐的表情。
<img http://some_location.com/sad.jpg> 代表了一个悲伤的表情。
<img obama.jpg> 描绘了一个中性的表情。

现在,请识别这个人的面部表情:<img unknown.png>
"""

agent = MultimodalConversableAgent()
user = UserProxyAgent()
user.initiate_chat(agent, message=prompt)

MultimodalConversableAgent会解释输入提示,并从本地或互联网源提取图像。

高级用法

与其他AutoGen代理类似,多模态代理支持与其他代理的多轮对话、代码生成、事实查询和通过GroupChat接口进行管理。

例如,在我们的GPT-4V笔记本LLaVA笔记本中,FigureCreator集成了两个代理:一个编码器(AssistantAgent)和评论家(多模态代理)。 编码者为可视化草图编写Python代码,而评论家则提供改进的见解。这些代理人共同努力,旨在改进可视化输出。 通过设置 human_input_mode=ALWAYS,您还可以为更好的可视化提供建议。

参考资料

未来的改进

如有进一步的疑问或建议,请在AutoGen存储库中提出问题,或直接与我联系,我的邮箱是beibin.li@microsoft.com

AutoGen将继续发展,融入更多的多模态功能,如DALLE模型集成、音频交互和视频理解。敬请期待这些令人兴奋的发展。