近日,智谱在公众号陆续放出电脑版本与手机版本的AI Agent实操视频:
电脑版:总结百科发微信、旅游攻略/自动点餐等
手机版:只需接收简单的文字/语音指令,它就可以模拟人类操作手机。理论上,AutoGLM 可以完成人类在电子设备上可以做的任何事,它不受限于简单的任务场景或 API 调用,也不需要用户手动搭建复杂繁琐的工作流,操作逻辑与人类类似。
据智谱微信公众号,上面这些工作,主要基于以下两项研究:
1、CogAgent:一个替代终端用户理解、使用图形用户界面(GUI),完成信息获取和功能触发的智能体,更具泛化性和拟人性,目前支持在 Windows、macOS 软件上进行自然语言交互(包括打字输入和语音输入)、截图交互和划词交互;
2、AutoGLM-Web:一个能模拟用户访问网页、点击网页的浏览器助手,可以根据用户指令在私域网站上完成高级检索并总结信息、模拟用户看网页的过程进行批量、快速的浏览并总结多个网页,结合历史邮件信息回复邮件。
同时,今日微软发布OmniParser开源AI Agent论文,效果与智谱演示效果类似:
用户:将约翰内斯堡提供素食选择的餐厅保存到我的行程中
结合智谱相关论文及微软OmniParser论文,我们总结得到:
AI Agent都基于视觉语言模型(VLM),理解和处理来自屏幕截图的视觉信息以及用户指令的语言内容,如理解当前屏幕信息和预测当前屏幕的下一个动作。
CogAgent是一个专门用于理解和导航图形用户界面(GUI)的视觉语言模型(VLM)。它通过结合低分辨率和高分辨率的图像编码器,支持高达1120×1120分辨率的输入,使其能够识别页面上的微小元素和文本。这个模型在多个文本丰富的视觉问答(VQA)基准测试中达到了最新水平,并在PC和Android GUI导航任务上超越了基于大型语言模型(LLM)的方法。
图 1|CogAgent 生成的视觉代理样本
CogAgent的工作原理可以分为以下几个关键部分:
双分辨率图像编码器:CogAgent利用低分辨率和高分辨率图像编码器来处理输入图像。这使得模型能够识别页面上的微小元素和文本。
交叉注意力模块:CogAgent增加了一个交叉注意力模块来处理高分辨率输入。这个模块允许模型在保持适当计算预算的同时,平衡分辨率和隐藏层的大小。
预训练和微调:CogAgent在多个数据集上进行预训练,以增强其理解高分辨率图像的能力,并适应GUI应用场景。预训练数据包括文本识别、视觉定位和网页元素的数据。此外,CogAgent还在多种任务上进行微调,以提高其在GUI环境中的性能。
多任务微调和对齐:为了使模型能够处理多种任务,并与自由形式的人类指令对齐,CogAgent在广泛的任务上进行微调。
1. 双分辨率图像编码器
CogAgent使用两种不同分辨率的图像编码器来处理输入图像。这种设计允许模型同时处理低分辨率和高分辨率的图像数据,以适应GUI环境中对细节识别的需求。
低分辨率图像编码器:使用EVA2-CLIP-E模型,处理224×224像素的图像。这个编码器适用于捕捉图像中的一般对象和布局信息。
高分辨率图像编码器:使用轻量级的EVA2-CLIP-L模型,处理高达1120×1120像素的图像。这个编码器专注于捕捉文本和细小图标等细节信息。
通过这种双编码器设计,CogAgent能够有效地识别和理解GUI中的各种元素,无论是大的布局结构还是小的文本和图标。
图 2|CogAgent 的模型架构
2. 交叉注意力模块
CogAgent引入了一个交叉注意力模块,专门用于处理高分辨率输入。这个模块的核心思想是在保持计算效率的同时,增强模型对高分辨率图像的理解能力。
高分辨率交叉模块:这个模块使用较小的隐藏层尺寸(例如1024),与高分辨率图像编码器的输出进行交叉注意力计算。这种设计减少了模型在处理高分辨率图像时的计算负担。
计算效率:通过引入交叉注意力模块,CogAgent能够在保持高分辨率图像细节的同时,减少计算量。这对于实时或资源受限的应用场景尤为重要。
3. 预训练和微调
CogAgent在多个数据集上进行预训练,以增强其对高分辨率图像的理解能力,并适应GUI应用场景。
预训练数据:CogAgent的预训练数据包括文本识别、视觉定位和网页元素的数据。这些数据帮助模型学习如何在高分辨率图像中识别和定位文本、图标和其他GUI元素。
微调:在预训练的基础上,CogAgent在多种任务上进行微调,以提高其在特定GUI环境中的性能。这包括对不同设备和操作系统的适应,以及对特定应用场景的优化。
4. 多任务微调和对齐
为了使CogAgent能够处理多种任务,并与自由形式的人类指令对齐,模型在广泛的任务上进行微调。
多任务微调:CogAgent在多个公开可用的视觉问答(VQA)数据集上进行微调,以提高其在各种视觉和语言任务上的性能。
对齐:通过微调,CogAgent能够更好地理解和执行人类的自然语言指令,使其在实际应用中更加灵活和有效。
实验评估
1.基础视觉理解能力评估
CogAgent在八个VQA基准测试中进行了广泛的评估,包括VQAv2、OK-VQA、TextVQA、OCR-VQA、ST-VQA、ChartQA、InfoVQA和DocVQA。
图 3|VQA评估基准
结果显示,CogAgent在通用VQA基准测试与文本丰富的VQA基准测试中均取得了最佳分数。
图 4|CogAgent在VQA基准测试中的表现
2.GUI代理:计算机界面
CogAgent在Mind2Web数据集上进行了评估,该数据集包含了来自真实世界网站的2000多个开放式任务。
结果显示,CogAgent在跨网站、跨域和跨任务的三个子集上的表现均优于其他方法,包括基于语言模型的方法和视觉语言模型。
图 5|CogAgent在Mind2Web数据集评估中的表现
3.GUI代理:智能手机界面
CogAgent在Android in the Wild (AITW)数据集上进行了评估,这是一个大规模的Android设备代理数据集,包含了71.5万个操作案例,覆盖了3万条不同的任务指令。
结果显示,CogAgent在所有测试集上的表现均超过了先前的方法——包括了仅基于语言的方法以及视觉语言模型的基线。
图 6|CogAgent在AITW数据集评估中的表现
OmniParser是一个为了提升基于视觉的GUI代理系统性能而开发的工具,它通过解析用户界面截图,将其转换成结构化的元素。这一过程显著增强了大型视觉语言模型(如GPT-4V)在生成精确定位于界面对应区域的动作的能力。
一个复杂操作任务通常被分解为多个步骤,每个步骤都需要模型(如GPT-4V)完成两个主要任务:
1.理解当前屏幕的UI内容
2.预测当前屏幕上的下一个动作。
研究人员发现,在屏幕解析阶段提取屏幕语义信息,可以减轻GPT-4V的负担,使其能够更专注于动作预测。
图 7|OMNIPARSER解析屏幕截图和语义
OmniParser的工作原理包括以下2个关键部分:
1.可交互区域检测
专注于从用户界面(UI)截图中识别和定位可交互的区域,如按钮、图标和其他控件。
数据集构建:创建了一个包含67,000个不同的屏幕截图的数据集。这些截图来自于流行的网页,并且每个截图都标记有可交互图标的边界框。这些边界框是从网页的DOM(文档对象模型)树中提取的,确保了它们对应于网页上实际可点击的元素。
图 8|可交互区域检测数据集
边界框处理:在检测过程中,除了识别图标和按钮,还有一个OCR模块来识别和提取文本的边界框。为了减少冗余和提高准确性,系统会合并来自图标检测和OCR模块的边界框,去除那些重叠度超过90%的框。
ID分配:每个边界框都会被分配一个独特的ID,这样在后续的动作预测阶段,模型可以引用这些ID来确定用户想要交互的具体元素。
2.整合功能的局部语义
提高模型对用户界面(UI)元素的理解能力,并帮助模型更准确地预测和执行用户任务。
仅提供覆盖有边界框和数字ID的UI截图可能不足以帮助模型(如GPT-4V)准确地理解和预测动作。这是因为模型可能难以同时识别每个图标的语义信息并预测在特定图标上执行的下一个动作。为了解决这个问题,OmniParser 引入了局部语义的概念,即每个检测到的图标或文本框的功能描述。这种描述提供了关于图标或文本框可能功能的额外信息,有助于模型更好地理解UI元素的用途。
数据集构建与模型微调:研究人员构造了一个包含7000对「图标-描述」的数据集。并在数据集上微调了一个基于 BLIP-v2 的模型,使其能够为常见的应用图标生成更准确的功能描述。
功能描述:在检测到每个图标后,微调过的模型会为该图标生成一个描述其功能的文本。这些描述被设计得简洁且信息丰富,以便为模型提供足够的上下文来理解图标的用途。对于文本框,OmniParser 使用检测到的文本及其标签作为局部语义信息。
图 9|局部语义提高GPT-4V理解图标能力
增强的提示信息:在预测阶段,OmniParser 将这些局部语义信息(即图标的功能描述和文本框的内容)整合到模型的提示信息中。这样,模型不仅可以看到UI截图的视觉提示,还可以阅读有关每个元素功能的文本描述。
实验评估
1. SeeAssign任务
为了测试和比较 GPT-4V 模型在有无局部语义信息辅助的情况下,预测用户界面(UI)中正确图标标签 ID 的能力,制作了一个包含 112 个任务的数据集,覆盖移动设备、桌面和网页浏览器三个平台。每个任务包括一个简洁的任务描述和一个屏幕截图,任务描述指向截图中的某个可交互图标。
没有使用局部语义信息时,GPT-4V 的正确率较低,尤其是在屏幕上有很多边界框的情况下。当提供了图标和文本框的局部语义信息后,GPT-4V 的正确率显著提高,从 0.705 提高到 0.938。评估显示,为 GPT-4V 提供局部语义信息可以显著提高其在 UI 任务中的动作预测能力,证明了 OmniParser 在增强模型对 UI 元素理解方面的有效性。
图 10|GPT-4V有无局部语义的对比
2.ScreenSpot基准测试
ScreenSpot 数据集包含了来自移动设备(iOS、Android)、桌面(macOS、Windows)和网页平台的600多个界面截图。
OmniParser 在这个基准测试上显著提高了 GPT-4V 的性能,甚至超过了一些专门针对 GUI 数据集进行微调的模型,如 SeeClick、CogAgent 和 Fuyu。结合局部语义(Local Semantics)和交互区域检测(Interactable Region Detection)的 OmniParser 进一步提高了整体性能,表明准确的交互元素检测和功能局部语义的结合对于 UI 任务的成功至关重要。
图 11|ScreenSpot基准上的比较
3.Mind2Web基准测试
Mind2Web 是一个针对网页导航场景的基准测试,包含了跨领域、跨网站和跨任务等不同类别的任务。
OmniParser 在这个基准测试中表现出色,即使不使用解析后的 HTML 信息,也能大幅度超越使用 HTML 的 GPT-4V 性能。与 GPT-4V+SOM(使用 Set-of-Marks 提示)相比,OmniParser 在跨网站和跨领域类别中的表现更好,而在跨任务类别中略有不足,但总体上,OmniParser 提供了比 DOM 和顶级相关元素提议更高质量的信息。
图 12|Mind2Web基准上的比较
4.AITW基准测试
AITW(Android in the Wild)基准测试包含了30万条指令和71.5万条轨迹,用于评估移动设备导航能力。
在测试中,OmniParser 表现出显著的性能提升,与使用专门针对 Android 图标检测模型的 GPT-4V 相比,整体得分提高了4.7%。这表明 OmniParser 能够很好地泛化到移动屏幕,并在移动设备控制任务中提供显著的性能提升。
图 13|AITW基准上的比较
资料来源:
智谱演示及论文:https://mp.weixin.qq.com/s/iuTo2Gf-XJQKNDl08ods3Q
论文:https://arxiv.org/abs/2312.08914
Demo:http://36.1 03.203.44:7861/
代码:https://github.com/THUDM/CogVLM
模型:
微软论文:https://huggingface.co/microsoft/OmniParser
文章来自于“计算机司令部”,作者“吕伟/胡又文团队”。
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner