Berkeley-NLP/Agent-Eval-Refine
요약
UC Berkeley 연구진이 개발한 이 프로젝트는 웹 및 모바일 기기를 제어하는 디지털 에이전트의 성능을 평가하고 자율적으로 개선하는 프레임워크를 제공합니다. 평가 모델을 통해 에이전트의 궤적을 분석하며, DigiRL과 같은 모델을 활용해 Android 제어 성공률을 17%에서 67%까지 대폭 향상시키는 성과를 보였습니다.
핵심 포인트
- 디지털 에이전트의 성능 평가 및 자율적 개선을 위한 평가 모델 설계
- WebArena에서 20.2%의 SOTA 성능을 달성한 Reflexion + GPT-4 에이전트 포함
- iOS 환경에서 CogAgent 모델의 성공률을 약 75% 개선
- Android 및 iOS 에뮬레이터를 위한 Python 바인딩 제공
- DigiRL(2B VLM)을 통한 Android 제어 성공률의 비약적 향상(17% -> 67%)
Jiayi Pan, Yichi Zhang, Nicholas Tomlin, Yifei Zhou, Sergey Levine, Alane Suhr
UC Berkeley, University of Michigan
COLM 2024 / MAR Workshop CVPR 2024 최우수 논문 (Best Paper)
본 연구에서는 웹을 탐색하거나 모바일 기기를 제어하는 디지털 에이전트 (digital agents)의 성능을 평가하고 자율적으로 개선 (refine)하기 위해 평가 모델 (evaluation models)을 설계하고 사용합니다.
평가기 (evaluator) 및 평가 코드는 ./agent_eval/ 폴더에 제공됩니다. 오픈 웨이트 (open weight) 모델 또는 GPT-4V 기반 모델을 사용하여 디지털 에이전트의 성능을 평가할 수 있습니다. 자세한 내용은 평가 (Evaluation) 섹션을 참조하십시오.
개선 (refinement) 및 ios/android 에뮬레이터 (emulator) 코드는 ./exps/ 폴더에 제공됩니다. 이는 WebArena/Android/iOS에서 다양한 에이전트를 실행 및 개선할 수 있는 예시를 제공합니다. 특히 다음을 포함합니다:
- WebArena에서 20.2%를 달성하여 현재 최첨단 (state-of-the-art) 성능을 보이는 Reflexion + GPT-4 에이전트.
- iOS에서 성공률을 상대적으로 75% 개선한 개선된 CogAgent 모델.
- 디지털 에이전트의 개선 및 엔드 투 엔드 (end-to-end) 평가를 용이하게 하기 위한 iOS 및 Android 에뮬레이터용 Python 바인딩 (Python binding).
자세한 내용은 개선 (Refinement) 섹션을 참조하십시오.
모든 모델, 에이전트 궤적 (agent trajectories) 및 데이터셋을 Huggingface Hub에 공개합니다.
- 2024년 7월 10일: 논문이 COLM 2024에 채택되었습니다. 또한 CVPR 2024의 MAR Workshop에서 최우수 논문상 (best paper award)을 수상했습니다.
- 2024년 6월 14일: DigiRL을 공개합니다. 당사의 2B VLM은 자율 평가기 (autonomous evaluator, 보상 모델 (reward model))로 사후 학습 (post-trained)되었을 때, Android 기기 제어 작업에서의 성공률을 17%에서 67%로 향상시킵니다.
설치 (Setup)
먼저 agent_eval 패키지를 설치하십시오.
cd agent_eval
pip install -e .
캡셔너 (captioner) 모델로 추론 (inference)을 수행하려면, transformers 패키지를 이전 버전으로 추가로 되돌려야 합니다.
pip install transformers==4.32.0
에이전트 궤적 평가 (Evaluate Agent Trajectories)
에이전트 궤적을 평가할 수 있습니다. 논문에서 사용된 모든 에이전트 궤적은 이 링크에서 다운로드할 수 있습니다.
다음 파일들을 방문하여 설정을 변경하고, OpenAI API Key (GPT-4용) 또는 Anyscale API key (Mixtral용)를 설정한 후, 다음 명령어를 실행하여 에이전트 궤적 (agent trajectories)을 평가하십시오.
cd ./agent_eval/agent_eval/scripts
# 도메인에 따라 적절한 명령어를 선택하세요
python run_eval_web.py # webarena 에이전트 평가용
...
에이전트 궤적 검사/주석 달기 (Inspect/Annotate Agent Trajectories)
우리는 에이전트 궤적을 저장하기 위해 공유된 UnifiedTrajectory 형식을 정의하며, 이는 ./agent_eval/agent_eval/domains/unified.py에 정의되어 있습니다. 가공되지 않은(raw) 에이전트 궤적을 UnifiedTrajectory로 변환하려면 ./agent_eval/agent_eval/domains/ 폴더 아래에 있는 해당 노트북 (notebooks)을 사용할 수 있습니다.
다음 명령어를 실행하여 에이전트 궤적을 검사하거나 인간 주석 (human annotations)을 제공할 수 있습니다:
python -m agent_eval.eval.annotate_app --dataset <path-to-dataset> --log_name <log-name>
캡셔너 (Captioner)
캡셔너 VLM (Vision Language Model)은 모듈형 평가기 (modular evaluator)에서 스크린샷에 대한 조밀한 설명 (dense descriptions)을 제공하는 데 사용되며, 이 설명은 이후 에이전트의 행동을 추론하기 위해 언어 모델 (LM)에 입력됩니다. 우리는 Huggingface Hub를 통해 데모, 가중치 (weights) 및 학습 데이터를 제공합니다.
다음 명령어를 실행하여 캡셔너 서버를 시작할 수 있습니다:
python -m agent_eval.captioner.captioner_server --port <PORT_NUMBER>
./agent_eval/agent_eval/captioner에는 또한 다음이 포함되어 있습니다:
annotate_screenshots.py: GPT-4V로 스크린샷에 주석을 다는 코드gen_captions.sh: 대량의 스크린샷에 캡션을 달아 주석을 다는 스크립트
실험에 사용된 모든 에이전트 궤적은 이 링크에서 다운로드할 수 있습니다.
-
결과 재현 방법에 대한 자세한 내용은
exps/webarena_exp/README.md를 참조하십시오. -
우리가 사용한 작업 (tasks)은
exps/ios_exp/train_tasks.txt및exps/ios_exp/eval_tasks.txt에 나열되어 있습니다. -
결과 재현 방법에 대한 자세한 내용은
exps/ios_exp/README.md를 참조하십시오. -
우리가 사용한 작업은
exps/android_exp/assets/instructions.txt에 나열되어 있습니다. -
exps/android_exp/README.md를 참조하십시오.
결과를 재현하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
- 이 실험 부분에 대해서는 DigiRL과 코드베이스를 공유합니다.
본 프로젝트가 귀하의 연구에 도움이 된다면 저희 논문을 인용해 주시기 바랍니다:
@misc{pan2024autonomous,
title={Autonomous Evaluation and Refinement of Digital Agents},
author={Jiayi Pan and Yichi Zhang and Nicholas Tomlin and Yifei Zhou and Sergey Levine and Alane Suhr},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기