在现代数字世界中,图形用户界面(GUI)是人机交互的核心。然而,尽管大型语言模型(LLM)如ChatGPT在处理文本任务上表现出色,但在理解和操作GUI方面仍面临挑战,因此最近一年来,在学界和大模型社区中,越来越多的研究者和开发者们开始关注VLM-based GUI Agent。2023年12月,智谱发布了CogAgent,第一个基于视觉语言模型(Visual Language Model, VLM)的开源 GUI agent 模型,而在最近,最新的CogAgent模型 CogAgent-9B-20241220发布,让LLM操作GUI在技术上更进了一步。

1. CogAgent的诞生与发展

CogAgent是基于视觉语言模型的开源GUI代理模型。它的独特之处在于仅依赖于屏幕截图作为输入,不需要HTML等文本表征。这使得CogAgent能够在各种基于GUI交互的场景中应用,如个人电脑、手机、车机设备等。随着CogAgent的发布,越来越多的研究者和开发者开始关注VLM-based GUI Agent的研究。

1.1 CogAgent-9B-20241220的发布

CogAgent-9B-20241220是CogAgent团队经过一年迭代优化后的最新版本。该版本基于GLM-4V-9B双语开源VLM基座模型,通过数据采集与优化、多阶段训练与策略改进等方法,使其在GUI感知、推理预测准确性、动作空间完善性、任务的普适和泛化性上得到了大幅提升。

1.2 CogAgent 执行过程

下图展示了CogAgent-9B-20241220执行用户指令的过程。

  • 以 GUI 截图为唯一的环境输入,结合已经完成的动作历史,计算当前 GUI 截图中最合适的动作。
  • 根据更新后的历史动作和截图,计算后续的操作
  • 重复上述过程,直到CogAgent认为指令执行完毕

2. CogAgent-9B的技术架构与优化

CogAgent-9B-20241220在模型基座、视觉处理模块、数据集丰富与完善、预训练策略优化、后训练策略改进等方面进行了全面的升级。

2.1 模型基座和结构升级

CogAgent使用更强大的视觉语言模型GLM-4V-9B作为基座模型,大幅提升了模型的基座图像理解性能。在视觉处理模块上,CogAgent实现了更高效统一的视觉处理模块,支持1120*1120原生高分辨率图像输入。

2.2 数据集丰富与完善

CogAgent团队广泛收集并整合了多种数据集,包括无监督数据和GUI指令微调数据集。这些数据集的丰富性和多样性为CogAgent提供了更广泛的训练和测试基础,使其能够更好地适应实际应用场景。

2.3 预训练与后训练策略优化

在预训练阶段,CogAgent引入了GUI Grounding预训练方法,通过屏幕截图和layout对,构造界面子区域和layout表征的对应关系。在后训练阶段,CogAgent采用了更科学的GUI agent后训练策略,使模型具备了更强的分析、推理、预测能力。

3. CogAgent-9B的应用与性能评估

CogAgent-9B-20241220在多个数据集上的测试结果显示了其卓越的性能。尤其是在Screenspot、OmniAct、CogAgentBench-basic-cn、OSworld等数据集上,CogAgent均取得了领先的成绩。

CogAgent-9B-20241220模型在多平台、多类别的 GUI agent 及 GUI grounding benchmarks 上取得了当前最优的结果。

4. GUI Agent的未来展望

随着CogAgent-9B-20241220的发布,GUI Agent的研究和工程热又迈入一个新的台阶,智谱表示此版CogAgent模型已被应用于智谱AI的GLM-PC产品 (https://cogagent.aminer.cn/home 申请内测),预计25年Q1会开展公测。

在之前,智谱发布了AutoGLM,通过CogAgent控制手机实现点餐、买票等操作,节省用户时间。我的理解这些场景还不是刚需,但是非常有潜力变成一个更通用的入口,不过手机终归还不是生产力平台,GLM-PC产品则更让人值得期待,杀死RPA的最后一根稻草。

现在豆包在强化浏览器的功能,就是要将豆包app打造为一个高生产力的入口平台,或许不远的将来,就能看到豆包支持操作PC各类应用的功能。

未来,GUI Agent产品有望在更多的应用领域中得到应用,如智能家居、智能座舱等,为用户提供更智能、更便捷的交互体验。

智谱开源CogAgent的最新模型CogAgent-9B-20241220,全面领先所有开闭源GUI Agent模型的更多相关文章

  1. [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush

    [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush 目录 [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush 0x0 ...

  2. [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现

    [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 目录 [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 0x00 摘要 0x01 并行Tr ...

  3. [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构

    [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 目录 [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 0x00 摘要 0x01 启动 1.1 分 ...

  4. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  5. Linux开源系统对比Windows闭源系统的优势解析

    当我们听到linux的时候是不是觉得高大上的感觉呢?在我刚上大学的时候,听着学长们给我讲他们的大学的学习经历,先学习C语言.单片机.然后做一些项目,现在正学习linux操作系统,当我听到linux操作 ...

  6. DL4NLP——词表示模型(一)表示学习;syntagmatic与paradigmatic两类模型;基于矩阵的LSA和GloVe

    本文简述了以下内容: 什么是词表示,什么是表示学习,什么是分布式表示 one-hot representation与distributed representation(分布式表示) 基于distri ...

  7. 第一次作业:基于Linux操作系统深入源码进程模型分析

    1.Linux操作系统的简易介绍 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使 ...

  8. 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定

    前文我们了解了puppe中模块的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14086315.html:今天我来了解下puppet的master/age ...

  9. [源码解析] 模型并行分布式训练 Megatron (4) --- 如何设置各种并行

    [源码解析] 模型并行分布式训练 Megatron (4) --- 如何设置各种并行 目录 [源码解析] 模型并行分布式训练 Megatron (4) --- 如何设置各种并行 0x00 摘要 0x0 ...

  10. 使用睿云智合开源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群

    一.Breeze简介 Breeze 项目是深圳睿云智合所开源的Kubernetes 图形化部署工具,大大简化了Kubernetes 部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取 G ...

随机推荐

  1. Need BLUETOOTH PRIVILEGED permission以及requestMtu导致蓝牙断连问题

    在部分Android手机上,当连接上GATTService后直接requestMtu有可能会造成蓝牙连接中断,随后继续重新连接会报错Need BLUETOOTH PRIVILEGED permissi ...

  2. C++版的Mc

    非常垃圾的c++版Mc. #include<bits/stdc++.h> #include<windows.h> #include<conio.h> using n ...

  3. mongodb副本集群使用总结

    一.该文档仅为了总结经验,方便下次部署时跳过踩过的坑.其中MongoDB的复制原理.特点等参照的菜鸟教程,附地址:https://www.runoob.com/mongodb/mongodb-repl ...

  4. 解决ros-melodic-desktop-full安装过程中未满足的依赖关系问题

    sudo apt install ros-melodic-desktop-full 正在读取软件包列表- 完成正在分析软件包的依赖关系树 正在读取状态信息- 完成 有一些软件包无法被安装.如果您用的是 ...

  5. 【题解笔记】PTA基础6-7:统计某类完全平方

    题目地址:https://pintia.cn/problem-sets/14/problems/739 前言 咱目前还只能说是个小白,写题解是为了后面自己能够回顾.如果有哪些写错的/能优化的地方,也请 ...

  6. 深度学习入门笔记——DataLoader的使用

    如何使用数据集DataSet? 在介绍DataLoader之前,需要先了解数据集DataSet的使用.Pytorch中集成了很多已经处理好的数据集,在pytorch的torchvision.torch ...

  7. Selenium测试form表单之下拉列表

    处理form表单中的下拉列表,需要用到一个Selenium工具类-Select 一.Select工具类常用属性和方法 方法/属性 描述 1 select_by_value() 根据值选择 2 sele ...

  8. C++多线程应用

    一个进程就是一个程序,一个程序里不止一个功能,每个功能的实现就可以交给一个线程去完成.一个进程就像是一个工程,这个工程里,有设计,有监理,有施工,就相当于三个线程,各干各的又相互配合. https:/ ...

  9. Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解

    title: Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解 date: 2024/11/5 updated: 2024/11/5 author: cmdr ...

  10. Lua语法基础教程(上篇)

    今天我们来学习Lua语法基础教程.由于篇幅过长,将分为上中下三篇进行讲解,本篇为上篇. 一.初识Lua Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放.这意味着什么呢?这意味着 ...