type
status
date
slug
summary
tags
category
icon
password
comment
Introduction
这是一篇23年的文章,或许是利用LLM对理解Mobile UI并进行交互的较早的尝试。
利用自然语言进行人机交互对于一些有障碍人群无疑是一件好事,现有的Siri和Google Assistants已经能够通过语言完成简单的日常任务,但是如果我们询问一些屏幕上显示的消息,他们很难回答,因为他们缺少了对UI的理解能力。
现有的研究已经探讨了与移动端UI进行语言交互的一些核心技术:例如总结屏幕内容用于更好的理解,将语言指令和一些UI组件匹配,对GUI进行建模使其更利于交互。但这些方法只解决了部分问题,且需要训练专有的模型,构造大规模的数据集,我们需要更轻量和更通用的一些方法。
而大模型只需要少量的任务演示作为示例提示,就能很好的适用于下游任务,下面我们将探讨利用大模型理解UI并进行交互的可行性。
我们的主要贡献可总结如下:将交互情景分为了四类;开发了一套提示技术能够用UI去提示大模型;并开发了一套深度优先遍历的算法,能够将安卓的UI层次结构树转化为HTML的文本;并在四项关键任务(Screen Question-Generation, Screen Summarization, Screen QuestionAnswering, and Mapping Instruction to UI Action)上进行了详细的实验。
Conversation For Mobile UI Tasks
我们可以将对话交互分为四种情景,根据主动性分为用户主动和Agent主动,再根据请求信息还是提供信息分为四类。如下图所示:
Prompting LLMs for Mobile UI Tasks
大模型的few-shot prompting能力很强,问题之一我们如何用文本表示UIs来做few-shot prompting,问题之二是如何根据UI信息来诱导LLM的推理。
Screen Representation
我们有这样一个认识,如果prompt能落在模型训练数据的分布上,那么他将在few-shot上表现更好。所以我们会将view hierachy转化为类Html形式的文本作为UI的表示,因为LLMs其实接受了互联网大量的web语料训练,Html格式对LLM更好理解。具体表示可以参考以下几个小点。
- View Hierarchy Properties
安卓界面的View Hierachy数据非常详细,如果直接作为输入会超过一些大模型的token limit。我们提取了一个和UI元素文本描述相关的子集:
Class: 元素的类型
Text: 元素内可见的文本内容
Resource_id: 表明元素相关资源的文本标识器
Content_desc: 辅助描述元素作用的内容
- Class Mapping
提取出的Class属性将会转变为对应的Html标签。
Classes | Html tag |
TextView | <p> |
button-related class | <button> |
image-related class | <img> |
EDITTEXT | <input> |
the others | <div> |
- Text, Resource_Id, and Content Description
我们会将text属性插入Html开始和结束的tag之间;其次是resource_id 他包含了三个实体,包名,资源类型,资源名字。其中,资源的名字是对元素功能的额外描述,所以我们将其做为class标识符的值插入到html中,因为其中经常会包含下划线,我们还会将_转化为空格;最后,我们将content description作为alt标识符的值插入到html中。
- Numeric Indexes for Referencing
我们会按照深度优先搜索view hierachy tree时的递增顺序,给每个元素的id标识符赋值,方便之后的各种指令通过id标识符选中UI元素。
下面是一个example
Chain-of-Thought Prompting
思维链即在推理时先产生中间结果最后链接在一起得到最终答案的方法,这样模型得到的答案会与中间结果更符合,即更加合理和更具解释性。不过这项工作还未在Mobile UI导向的任务中实施,但其确实在需要多步完成的任务中奏效。
Prompt Structure
提示词的结构如图构成,我们先给定一个preamble前言,描述提示词的作用;然后根据N-shot的N的数量,给出N个示例,其中每个示例分别由Screen HTML,Chain of Thoughts,Task Output构成;最后给上我们的屏幕内容作为输入,LLM将给出思维链和输出结果。
Feasibility Experiments
作者接下来对四种情景的Agent表现进行了详细的实验和评估,其内容主要包括情景简介,提示词的构成,环境和数据集等的建立,结果分析等等,其提示词的构成能在附录中找到示例,这里暂时略过这一部分。
Discussions And Future Work
作者对该项研究的意义,方法的局限性和未来工作做了讨论。
首先是我们的方法让构建一个交互原型就像设计一个数据示例一样简单,不必花费大量精力用于专有的数据集构建和训练,而对于更多模态的输入输出方式,我们也可以将这些技术示例用于提示词,来增强模型的表现能力,还可以用思维链等等…
其次是方法的可行性,虽然他在某些任务上的表现比不上专有的模型,但他是few-shot。我们的研究大多聚焦于单轮任务,这点在开头有提到,因此如果是多轮任务和多个屏幕,需要我们进一步研究如何存储表示多轮屏幕的信息和上下文的构成等等。
然后是样本的个数和长度,研究表明第一个样本示例在提示中占有更重要的位置,而其他示例可能会提供一些边际效益缩小模型的焦点,而模型本身也会限制输入长度,限制样本个数,需要我们在样本个数和长度做取舍,尽可能的提高性能。未来模型可能会取消输入限制,但利用压缩模型表示Html文本也是一个可以研究的方向。
我们利用了视图层次结构树来对UI进行表示,但实际上该部分的文本表述可能会缺失,我们可能需要其他的多模态方法去利用屏幕中的信息。
在问题生成中,Agent可以将几个问题合并成单个问题,也可能在内容总结中产生幻觉,生成不存在的信息,因此进一步提高模型的可行性和可靠性也是研究工作之一。
我们的方法还能迁移用于在其他系统构建智能体等等…
- Author:E1ainay
- URL:https://e1ainay.top/article/LLMframework
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts
Attacking Vision-Language Computer Agents via Pop-ups
LlamaTouch: A Faithful and Scalable Testbed for Mobile UI Task Automation
DroidBot: A Lightweight UI-Guided Test Input Generator for Android
PERSONAL LLM AGENTS: INSIGHTS AND SURVEY ABOUT THE CAPABILITY, EFFICIENCY AND SECURITY
AutoDroid: LLM-powered Task Automation in Android