当前位置:首页 > 每日看点 > 正文内容

如何评价GLM开源CogAgent-9,成为GLM-PC基座模型?

卡卷网1年前 (2025-01-10)每日看点229

11月29,智谱正式提出GLM-OS概念,并发布AutoGLM和GLM-PC两款Agent产品。近期GLM-PC的基座模型——CogAgent-9开源,供社区进一步开发。 

CogAgent-9-20241220是基于GLM-4V-9训练而成的专用Agent任务模型。该模型仅需屏幕截图作为输入(无需HTML等文本表征),便能根据用户指定的任意任务,结合历史作,预测下一步的GUI作。得益于屏幕截图和GUI作的普适性,CogAgent可广泛应用于各类基于GUI交互的场景,如个人电脑、、车机设备等。 

相较于2023年12月开源的第一版CogAgent模型,CogAgent-9-20241220在GUI感知、推理预测准确性、动作空间完性、任务普适性和泛化性等方面均实现了显著提升,并支持中英文双语的屏幕截图和语言交互。

<>论文:

s://arxiv.org/as/2312.08914

<>代码:

s://githu/THUDM/CogAgent

<>模型:

s://modelscope/models/ZhipuAI/cogagent-9-20241220(方便下载)

<>体验链接:

s://modelscope/studios/ZhipuAI/CogAgent-Demo

<>技术文档:

s://cogagent.aminer/log#/articles/cogagent-9-20241220-technical-report

<>执行过程

CogAgent以GUI截图为唯一环境输入,结合已完成的动作历史,计算当前GUI截图中最合适的动作。该动作通过CogAgent端侧应用(如GLM-PC和CogAgentDemoApp)注入GUI,GUI响应并更新图像内容;同时,该动作被添加至动作历史。CogAgent根据更新后的历史动作和截图,计算后续作。此过程循环往复,直至CogAgent判定指令执行完毕。 

CogAgent的输入仅包含三部分:用户的自然语言指令、已执行历史动作记录和GUI截图,无需任何文本形式表征的布局信息或附加元素标签(setofmarks)信息。 

其输出涵盖以下四个方面: 

    <>思考过程(Status&Plan):CogAgent显式输出理解GUI截图和决定下一步作的思考过程,包括状态(Status)和计划(Plan)两部分,输出内容可通过参数控制。<>下一步动作的自然语言描述(Action):自然语言形式的动作描述将被加入历史作记录,便于模型理解已执行的动作步骤。<>下一步动作的结构化描述(GroundedOperation):CogAgent以类似函数调用的形式,结构化地描述下一步作及其参数,便于端侧应用解析并执行模型输出。其动作空间包含GUI作(基础动作,如左键单击、文本输入等)和拟人行为(高级动作,如应用启动、调用语言模型等)两类。<>下一步动作的敏感性判断:动作分为“一般作”和“敏感作”两类,后者指可能带来难以挽回后果的动作,例如在“发送邮件”任务中点击“发送”按钮。

<>模型升级

<>模型基座与结构升级:CogAgent采用了更强大的视觉语言模型GLM-4V-9作为基座,显著提升了模型的图像理解性能。 

<>视觉处理模块优化:实现了更高效、一的视觉处理模块,支持1120*1120原生高分辨率图像输入。通过带参数的下采样方法,在几乎不损失模型能力的前提下,提高了模型效率。CogAgent在结构上支持任意例或大小的图像输入,但在训练和推理中,一将输入图像缩放到1120*1120。尽管输入图像尺寸固定,结果显示,即使在2K或更高分辨率的屏幕上,模型仍能保持准确的理解能力。为获得更佳表现,建议用户适当增加图标和文字的相对大小,确保缩放后截图中的内容清晰可辨。 

<>数据集丰富与完:广泛收集并整合了多种数据集,包括无数据和GUI指令微调数据集。无数据涵盖开源GUI布局数据集、自采集的应用和网页数据集;GUI指令微调数据集则包含更长链路、更多应用、跨应用的GUIagent任务数据集等。此外,利用CogAgent自我生成数据,进一步扩充和完了数据集。 

<>预训练策略优化:VLM和GUI预训练旨在提升模型对视觉输入和GUI界面的基础理解能力。研究团队首次提出了GUIGrounding预训练,利用屏幕截图和布局对,构建界面子区域与布局表征(如DOM元素)的对应关系,从而构造GUI的REG和REC任务: 

    GUIReferringExpressionGeneration(REG):预测截图上某一区域对应的布局表征。GUIReferringExpressionComprehension(REC):预测截图中某一元素对应的位置。此方法已应用于多个GUI理解数据构造和GUIagent工作中。在原论文中,我们使用40万网页数据,构造了1.4亿的REC&REG训练样本。在此基础上,进一步扩充和优化了训练数据,加入了桌面应用和移动应用的布局数据,使模型更适应实际应用场景。

<>后训练策略改进:后训练在提升模型GUIagent分析、推理、预测能力方面至关重要。我们采用了更科学的后训练策略,分为两个难度递进的阶段:

    GUIinstructiontuning:融合GUI相关多任务数据,深化模型对GUI内容和功能的理解,具备初步问答能力。使用了广泛的开源数据和私有收集数据。GUIagentT:使模型具备完的GUIagent推理能力,训练数据包括开源数据集(如Mind2We)和额外收集的多平台跨应用数据。

<>模型推理及思维链优化:将思维链分解为Status(当前屏幕状态)、Plan(全局计划)、Action(下一步自然语言描述)、Operation(下一步形式语言描述)。通过随机采样混合多种模式训练数据(如Action-Operation、Status-Action-Operation等),可根据交互情景、计算资源和准确率需求灵活调整和控制推理过程中的实际输出。 

<>动作空间完:明确了基础动作空间,并新增了LLM、QUOTE_TEXT、LAUNCH等高级动作,增强了模型的使用工具和交互能力。 

<>评测结果

CogAgent在以下四个数据集中了CogAgent-9-20241220和类似模型的性能。

02.最佳实践

<>模型推理

代码下载

gitclones://githu/THUDM/CogAgent.git cdCogAgent

模型下载

modelscopedownload--modelZhipuAI/cogagent-9-20241220--local_dir./cogagent

CLI模型推理

pythoninference/cli_demo.py--model_dir./cogagent--platform"Mac"--max_length4096--top_k1--output_image_path./results--format_keystatus_action_op_sensitive

推理结果:

显存占用:

搭建WeUI可直接clone魔搭社区创空间并运行:

gitclones://modelscope/studios/ZhipuAI/CogAgent-Demo.git cdCogAgent-Demo pipinstall-rrequirements.txt pythonapp.py

<>模型微调

我们使用ms-swift对cogagent-9-20241220进行微调。ms-swift是魔搭社区提供的大模型与多模态大模型训练和部署框架。ms-swift开源:s://githu/modelscope/ms-swift

在这里,我们将展示可直接运行的demo,并给出自定义数据集的格式。

在开始微调之前,请确保您的环境已准备妥当。

gitclones://githu/modelscope/ms-swift.git cdms-swift pipinstall-e.[llm]

微调脚本如下:

CUDA_VILE_DEVS=0\ swiftt\ --modelZhipuAI/cogagent-9-20241220\ --dataset'modelscope/coco_2014_caption:validation#20000'\ --train_typelora\ --torch_dtypefloat16\ --num_train_epochs1\ --per_dev_train_atch_size1\ --per_dev_eval_atch_size1\ --learning_rate1e-4\ --lora_rank8\ --lora_alpha32\ --target_modulesall-linear\ --freeze_vittrue\ --gradient_accumulation_steps16\ --eval_steps100\ --se_steps100\ --se_total_limit5\ --logging_steps5\ --max_length2048\ --output_diroutput\ --warmup_ratio0.05\ --dataloader_num_workers4

训练显存资源:

自定义数据集格式如下,只需要指定`--dataset<dataset_path>`即可:

自定义数据集文档:s://swift.readthedo.io/zh-cn/la/Customization/%E8%87%AA%E5%AE%9A%E4%9%89%E6%95%0%E6%8D%AE%E9%9%86.html

[ { "messages":[ { "role":"user", "content":"Task:在设置的桌面与程序坞部分,开启调度中心板块中“显示器具有单空间”的选项\n(Platform:Mac)\n(AnswerinAction-Operation-Sensitiveformat.)\nHistorysteps:\n0.CLICK(ox=[[588,946,616,985]],element_='设置')\t点击屏幕下方的“设置”菜单,从而打开设置\n1.CLICK(ox=[[227,561,297,585]],element_='桌面与程序坞')\t点击左侧菜单中的“桌面与程序坞”选项,进入桌面与程序坞的设置界面。\n2.SCROLL_DOWN(ox=[[367,39,691,929]],step_count=75,element_='动')\t在当前屏幕的右侧动区域中,向下动以查看更多选项。\n" }, { "role":"assistant", "content":"Action:点击“调度中心”板块中的“显示器具有单空间”选项,从而开启该功能。\nGroundedOperation:CLICK(ox=[[655,842,671,857]],element_='“显示器具有单空间”的开关按钮')\n<<一般作>>" } ],"images":["images/0000000000336.png"] }, { "messages":[ { "role":"user", "content":"Task:通过启动台打开设置,导航到“网络”部分,将DNS设置手动IP为8.8.4.4。\n(Platform:Mac)\n(AnswerinAction-Operation-Sensitiveformat.)\nHistorysteps:\n0.CLICK(ox=[[7,6,27,31]],element_='苹果标志')\t点击屏幕左上角的“苹果”图标,以便打开设置。\n1.CLICK(ox=[[3,77,161,99]],element_='设置…')\t点击屏幕左上角菜单栏中的“设置…”选项,以打开设置界面。\n2.CLICK(ox=[[7,478,125,512]],element_='网络')\t点击左侧菜单中的“网络”选项,进入网络设置界面。\n3.CLICK(ox=[[155,217,459,270]],element_='Wi-Fi,已连接')\t点击屏幕中间偏上的“Wi-Fi”选项,进入Wi-Fi设置界面。\n4.CLICK(ox=[[405,280,447,296]],element_='详细信息…')\t点击Wi-Fi名称旁边的“详细信息…”按钮,以查看当前Wi-Fi的详细信息。\n5.CLICK(ox=[[27,344,45,362]],element_='DNS')\t点击左侧菜单中的“DNS”选项,进入DNS设置界面。\n6.CLICK(ox=[[166,308,442,399]],element_='8.8.8.8')\t点击DNS输入框,准备输入新的DNS。\n7.TYPE(ox=[[163,308,443,322]],text='8.8.4.4',element_='ip输入框')\t在DNS输入框中输入8.8.4.4,以设置手动IP。\n8.CLICK(ox=[[410,636,440,651]],element_='好')\t点击界面右下角的“好”按钮,以确认并保存DNS设置的更改。\n" }, { "role":"assistant", "content":"Action:已经完成了“通过启动台打开设置,导航到‘网络’部分,将DNS设置手动IP为8.8.4.4”这一任务,执行结束。\nGroundedOperation:END()\n<<END>>" } ],"images":["images/0000000000482.png"] } ]

训练完成后,使用以下命令对训练时的验证集进行推理:

这里`--adapters`需要替换成训练生成的lastcheckpoint文件夹.由于adapters文件夹中包含了训练的参数文件,因此不需要额外指定`--model`。

CUDA_VILE_DEVS=0\ swiftinfer\ --adaptersoutput/vx-xxx/checkpoint-xxx\ --streamtrue\ --load_data_argstrue\ --max_new_tokens2048

点击链接阅读<>原文,即可跳转模型链接:cogagent-9-20241220

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8618.html

分享给朋友:
返回列表

上一篇:如何理解ThreadLocal原理?

下一篇:在lazor中规定定时任务,可以使用什么类?

相关文章

为什么大家不再提 5G 了?

现在看来,只有美国那种5g的思路是对的。美国的运营商一开始就发现5g和4g并没有质的飞跃,无非就是提升频率/降低穿透力/提升带宽的故事。而美国运营商又是自负盈亏,因此一开始就仅在人口高密度地区或富裕地区布置5g。虽然说人家4g也菜,但是人家...

PHP承载百万/天 访问量需要用到什么技术?

当年做一个百万PV的商城,也不过是两台2c4g的阿里云虚机罢了(其实一台就够,另外一台主要的逼着大家一定开发的时候一定要有负载均衡和横向扩容的意识)。当时框架还是Thinkphp3.2,框架提高运行效率的开关全打开,标准的lnmp模式,单机...

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法.栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型,...

阿里云服务器续费价格好贵,想换一家云服务厂商,该怎么选择?

阿里云服务器续费价格好贵,想换一家云服务厂商,该怎么选择?

最近一台买了3年时间的腾讯云轻量服务器到期了,还有5天时间。当时买的价格是3年198元。配置是2核CPU、4GB内存,80GB SSD云硬盘,1200GB 流量包,然后中途给免费升级了CPU,从2核变成了4核。平均下来一年的费用70元不到,...

什么样的网站能快速捕获你的心?

什么样的网站能快速捕获你的心?

大家好,我是程序员鱼皮。大家如果平时使用网站或产品时出现了问题,一般都会去寻找 “联系客服” 的位置,从而获得人工的帮助。我们团队的面试刷题产品 - 面试鸭最近就遇到了这样一个难题:明明我们网站右下角就有联系客服按钮、而且我们每道面试题目下...

常微分方程的理论对偏微分方程的研究有没有帮助?

常微分方程的理论对偏微分方程的研究有没有帮助?

之前看到过一句话,好像是 Bourgain 说的,大意是做 ode 的做到深处就到了 pde,做 pde 的做到深处就到了 ode,ode 和 pde 最后是相通的。以我目前有限的知识,只知道下面两个方向:1. Hamilton 系统在现代...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。