[AutoDroid] 2. AutoDroid 실행하기

DeepDIV!·2024년 6월 12일
0

AutoDroid 구현

목록 보기
2/3
post-thumbnail

AutoDroid를 개발하기 위해 개발 환경을 구축해뒀으니 이제 간단하게 AutoDroid를 실행해보자!

1. AutoDroid Git Clone

AutoDroid Github Link

$ git clone git@github.com:MobileLLM/AutoDroid.git

$ cd AutoDroid/

$ pip install -e .

2. GPT API Key 등록

  • GPT API Key 발급 방법 : 이 사이트 참고하기

  • GPT API Key 등록 방법

    • tool.py 에서 os.environ['GPT_URL'] 에 발급받은 GPT API Key 복붙하기

3. APK file 다운로드

간단하게 테스트해볼 예정이라, AutoDroid github에서 제공하는 APK file을 사용했다.

4. DroidBot 실행

Camer 앱 실행해보기

$ droidbot -a /Users/sophia/skt/AutoDroid/apk/com.naver.labs.translator_102_apps.evozi.com.apk/Users/sophia/skt/AutoDroid/apks/com.simplemobiletools.camera_5.6.3-86_minAPI29.apk -o camera -task 'take a selfie' -keep_env -keep_app
  • -a < apk file 경로>
  • -o < app name >
  • -task < '실행하고자하는 task 입력' >
  • Camera 앱을 찾고, 실행함
    (Emulator에서 실행했기 때문에, 실제로 사진을 찍지는 못함)

Calendar 앱 실행해보기

$ droidbot -a /Users/sophia/skt/AutoDroid/apks/com.simplemobiletools.calendar_3.4.2-118_minAPI16.apk -o calendar -task 'create a new event, the task is "skt ai fellowship meeting", save it' -keep_env -keep_app
  • Calendar 앱을 찾을 수 있지만, 새로운 event를 생성하는 task는 실행하지 못함
    (이 화면에서 멈춰있음)

Papago 앱 실행해보기

$ droidbot -a /Users/sophia/skt/AutoDroid/apk/com.naver.labs.translator_102_apps.evozi.com.apk -o Papago -task 'Open the app' -keep_env -keep_app
  • Papago 앱 자체를 못찾음

DroidBot 실험 결과
DroidBot 실험한 결과들은 노션 페이지에 정리해두었다.
(앞으로 계속 업데이트 할 예정! 🤓)

5. Limitations

  • The current implementation is not good at determining task completion.
    = Task 성공률이 낮다.

  • The task automation performance may be unstable due to the randomness of LLMs, the style/quality of app GUI and task descriptions, etc.
    = LLM, app GUI의 style/quality, task description에 따라 task automation performance가 달라진다 (Robust하지 않다.)
    = 이 3가지에 따라 영향을 받는 것 같다

  • It requires connecting to a host machine via adb, instead of a standalone on-device solution.
    = DroidBot이 ADB에 연결된 디바이스를 이용함

AutoDroid 실행해보면서 궁금했던 점

AutoDroid에서 제공한 APK file을 실행할 때, android 기본 앱과 같은 기능의 앱을 새로 만들어서 실행함

  • 논문을 읽었을 때는 DroidBot이 app instruction도 필요 없고, 암호화된 앱에도 접근할 수 있는 이유가 앱 내에 있는 정보를 code로 이해하는게 아니라, UI Screenshot을 녹화해서 GUI information을 이해하기 때문이라고 생각했는데 APK file이 필요한 이유를 모르겠음
  • 결국 APK file을 받아서 task를 실행해야한다면, DroidBot이 explore하면서 user task에 맞는 앱을 찾는게 아니라 apk file을 지정받아서 앱을 실행시키는거 아닌가?
  • 아? DroidBot은 앱을 특정해야하고, 특정 앱 속에서 task를 실행시키기 위한 UTG를 구축하는 것까지만 하는건가?
  • 그럼 AutoDroid는 DroidBot을 통해서 구축된 UI screenshot을 보고 UI information을 HTML 형식으로 바꿔서 LLM prompt가 task automation으로 이어지도록 만드는거네?
  • 그럼 LLM prompt를 더 잘 이해할 수 있는 방법으로 개선하면 되나?
  • Apk file은 앱을 실행하기 위한 모든 리소스를 담고 있으니까, 필요한가? 근데 UI screenshot으로 UTG를 구축해서 이해하면 Apk file이 필요한가? Apk file에 정확히 어떤 리소스가 있지?
  • GUI information을 HTML 형식으로 바꿔서 prompt를 action으로 바꿀 때 사용하는걸로 보면, Apk file 안에 있는 리소스를 이용해서 실행시키는 것도 아닌데 왜 Apk file이 필요하지?

APK file (Android Package Kit)
안드로이드 운영 체제에 애플리케이션을 배포하고 설치하는데 사용되는 파일 형식

연구에서 해결하면 좋을 부분

Robust한 DroidBot 구축

  • 현재는 Task, App에 따라 실행 여부가 많이 달라짐
    (LLM, app GUI의 style/quality, task description도 영향을 주는 것 같음)
  • 어떤 앱에서 어떤 task를 실행하든 끝까지 완료할 수 있도록 robust한 DroidBot을 구축해야할 것 같음

Task Completion 확률 높이기

  • 논문에 적혀있는 방법 외, Task Completion을 높일 수 있는 새로운 방법을 고안해야함
  • (아이디어) Action prompt도 HTML 형식으로 전달하면 어떨지

On-Device DroidBot 구축

  • DroidBot이 ADB에 연결된 디바이스를 이용하기 때문에, On-Device에서 DroidBot을 실행할 수 있는 방법이 필요함

앱의 APK file을 자동으로 가져오는 파이프라인 구축

  • 현재는 실행하고자하는 App의 Apk file을 직접 생성해서 폴더 안에 넣어줘야함
  • 사용자가 새로운 앱을 깔고 LAM을 실행할 때, Apk file을 사용자가 직접 생성해서 넣을 수는 없음
  • Apk file에 대한 파이프라인을 구축하던지 아니면 Apk file 없이 UTG를 구축할 수 있는 방법을 찾아봐야할 것 같음

0개의 댓글