
Paper : https://arxiv.org/pdf/2308.15272
[기존 연구 방법 ]
Mobile Task Automation 을 만들고 싶었지만,
그래서 사용자와 개발자 모두에게 귀찮고 복잡한 노력이 필요했음
[ 새로운 연구 방법 ]
AutoDroid : 어떤 안드로이드 앱이든 특별한 노력없이 Mobile Task Automation 수행 가능한 시스템
UI representation : UI와 LLM을 이어주는 방법
새로운 benchmark를 도입해서 158개의 common task에서 평가함
Multi-granularity query optimization module
데이터베이스 시스템에서 query를 최적화하기 위한 다양한 모듈
- 데이터 검색과 처리 시간을 단축시킬 수 있음
[ AutoDroid 연구 목적 ]
LLM-powered Mobile task Automation!
Autonomous agent
외부의 개입 없이 스스로 행동을 결정하고 실행할 수 있는 소프트웨어나 로봇
- 자신의 목표를 달성하기 위해 환경을 관찰하고, 의사 결정을 내리고, 그에 따라 행동할 수 있는 능력을 갖추고 있음
Dynamic App analysis
애플리케이션이 실제로 실행되는 동안 실시간으로 행동을 모니터링하고 분석하는 과정
- 악성 소프트웨어 분석, 성능 최적화, 그리고 품질 보증 과정에서 중요한 역할을 함
[ AutoDroid 연구 목표 ]
GUI Representation : Task Automator 에 들어가는 input과 output을 모두 GUI state와 action으로 설정함
HTML)으로 바꿔줌query로 바꿔줌Knowlege Integration : 어플에 대한 domain-specific knowledge를 LLM에게 학습시켜야함
Cost Optimization : LLM queries를 최적화해야함
Task Automators
특정 작업을 자동으로 수행하도록 설계된 소프트웨어 또는 도구
[ AutoDroid 정량 평가 ]
158개의 라벨링된 task로 Benchmark를 만듬
다양한 task를 user에게 받아서 자동으로 처리하는 것
target element : UI state를 제어함 (ex. button)action type : target element가 어떻게 제어되는지 보여줌 (ex. click, input)value : input action에 대한 text content (ex. input에 들어가는 text)따라서,
input으로 task에 대한 text를 받고, text를 분석하여 task를 수행할 수 있는 UI action에 대한 sequence를 output으로 내보냄.
이 output을 받아서 모바일 앱에서 target element와 action type를 수행함.
사용자에게 text를 input으로 받을 것이기 때문에, LLM을 사용했음
LLM language comprehension + reasoning ability = LLM-based GUI task Automation!
LLM을 personalize하면 무한한 확장성을 가질 수 있음
LLM-powered end-to-end mobil task automation system
[ AutoDroid 실행 방법 ]


GUI interface를 HTML prompt로 바꿔줌
LLM이 앱 내에서 Action을 수행할 수 있는 prompt만을 반환하도록 제한해야함
앱에 관한 정보를 LLM에게 전달해주지만, 이런 단점들을 가지고 있음
따라서, AutoDroid는 UI graph를 보면서 시뮬레이션을 돌림. 이런 시뮬레이션 데이터를 가지고 LLM은 user task를 어떻게 실행할지 학습하게됨.
Simulated Task Generation
AutoDroid는 UTG를 분석해서 simulated task를 생성함
UI states와 UI elements 사이의 관계를 이해하고 task를 실행할 수 있음
Simultaed task table : LLM이 UI elements가 일어날 수 있는 모든 가능성을 계산한 표 (만약 UI element가 multiple UI states에서 나타나면 초기 UI와 가장 가까운 것으로 고름)
: Simulated task
(이 UI element를 클릭함으로써 발생할 수 있는 모든 Simulated task 개수를 의미함)
: UI state
(임의의 UI state를 의미함)
: the number of UI elements
(초기 UI에서부터 UI state로 가기까지 모든 element들의 총 개수를 의미함)
UI states
(초기 UI에서부터 UI state로 가기까지의 UI states sequence를 의미함)
:
이 j는 무엇을 의미하는걸까?
이 table은 각각의 functionality를 archive함으로써 agent에게 주어진 task를 어떻게 효율적으로 완수할 수 있는지에 대한 정보를 제공함
UI function table : UTG에 있는 각 UI state에 대한 funcitionality를 제공함
Augmenting Prompts with App Memory
App knowledge를 prompt로 직접 학습시키에는 GPT token limit에 걸림
따라서, 가장 관련 있는 UI information만 select해서 prompt로 바꿨음
관련 있는 UI information을 select하는 방법
Instructor-XL 모델을 사용해서 simulated task와 current user task 사이의 cosine similarity를 계산함
( : simulated task, : current task)
Simulated task table에서 각 simulated task () 마다 해당하는 UI states와 UI elements를 검색해서 current task와 가장 비슷한 simulated task ()를 찾아내는 거임
Online stage에서 current task의 UI가 simulated task의 UI state와 맞으면 이 UI state에서 어떤 UI element를 클릭해야하는지 알려줌 (원래는 random하게 explore했는데, 이렇게 되면 LLM이 element를 클릭하면 어떤 outcome이 나오는지 simulated task를 보고 이해하게됨!)
이렇게 해서! app memory로부터 가장 관련있는 UI information에 대한 prompt만 augmentation 할 수 있는거임
Instructor-XL
Instruction-finetuned text embedding model
- Fine-tuning없이 간단하게 task instruction을 제공하는 모델
ex. "Remove all the events in the calendar"
Tuning Local LLM with App-specific Data
AutoDroid는 판단 모델로 small local LLM(ex. Vicuna-7B)도 사용할 수 있음
서버에서 GPT 모델을 쓰는게 아니라 offline-stage에서도 small LLM 모델을 써서 판단을 내릴 수 있음
High-quality의 학습 데이터(question, answer 쌍)을 구축하는 방법
Local LLM이 prompt를 통해 맞는 action을 고르도록 만들기 위해, Zero-shot Chain-of-Thought를 함
Zero-shot Chain-of-Thought
모델이 사전 훈련 없이도 문제를 논리적이고 단계적인 사고 과정을 통해 해결할 수 있는 능력
Large LLM으로 부터 생성된 thinking, reasoning data를 학습하여 fine-tuning함으로써 Local small LLM도 large LLM의 reasoning 능력을 따라할 수 있게 만듬
AutoDroid는 LLM을 querying하면서 초기 데이터를 얻음
따라서, 각 task에 대한 LLM query를 줄이면 AutoDroid에 대한
Pruning Tokens by Merging Functionally Equivalent Elements
Code : https://github.com/user1342/AutoDroid
My Demo : https://velog.io/@deepdiv/AutoDroid-2.-AutoDroid-실행
- AutoDroid 정량 평가에 쓰인 Benchmark를 우리가 만든 LAM에 적용하여 AutoDroid와 성능 평가 가능
- AutoDroid를 구현해보면서 취약점을 찾아 연구 방향성에 추가하기
- AutoDroid는 서버에서 LLM을 연동하고, 우리 연구는 On-Device 내에서 LLM을 작동시킴
- Online stage에서 수행하는 단계가 많은데 latency는 어느정도인지
- On-device AI와 비교했을때, Privacy Filter가 민감한 개인정보를 완벽하게 filtering 할 수 있는지
- 성능을 향상시킬 수 있는 여러 방법들을 제시하고 있으므로, 연구에서 사용해볼 수 있음