WebVoyager 소개
WebVoyager는 대규모 멀티모달 모델(LMM, Large Multimodal Model)을 사용하여 사용자의 요청을 웹 상에서 완성적으로 수행하는 웹 에이전트를 만들려는 프로젝트입니다. WebVoyager는 Multomodal 모델을 활용하여 텍스트와 시각 정보를 통합할 수 있습니다. 이를 통해 일반적인 탐색 접근 방식을 도입하여 다양한 웹 작업을 처리합니다.
WebVoyager는 Selenium을 활용하여 온라인 웹 브라우징 환경을 구축하고, 널리 사용되는 웹 사이트를 중심으로 다양한 작업을 제공하며, 이러한 작업을 확장하는 방법도 제공합니다. 또한, GPT-4V를 사용한 자동 평가 프로토콜을 제안하여 작업 성능을 평가합니다.
특히, 단순 텍스트 기반 에이전트와 달리 멀티모달 데이터를 사용하여 더 복잡한 작업을 수행할 수 있으며, 자동 평가 프로토콜을 통해 작업의 정확성을 높일 수 있습니다.
주요 기능
-
멀티모달 웹 에이전트: 텍스트와 시각 정보를 통합하여 웹 작업을 수행합니다.
-
온라인 환경: Selenium을 사용하여 온라인 웹 브라우징 환경을 구축합니다.
-
다양한 웹 작업: 다양한 웹 사이트에서 작업을 수행하며, 이를 확장할 수 있는 방법을 제공합니다.
-
평가 도구: GPT-4V를 사용한 자동 평가 프로토콜을 제공합니다.
사용 방법
환경 설정
WebVoyager를 실행하려면 Selenium을 사용하여 온라인 웹 브라우징 환경을 설정해야 합니다.
- Chrome을 설치합니다. (최신 버전의 Selenium을 사용하면 ChromeDriver를 설치할 필요가 없습니다.)
- Linux 서버에서 코드를 실행하려면 chromium을 설치하는 것이 좋습니다.
- 다음과 같이 WebVoyager를 위한 conda 환경을 생성하고 종속성을 설치합니다:
conda create -n webvoyager python=3.10 conda activate webvoyager pip install -r requirements.txt
데이터
WebVoyager는 다양한 웹 작업을 수행하기 위해 반자동 접근 방식을 사용하여 데이터를 생성하고 필터링합니다. WebVoyager를 테스트하기 위해 반자동 접근법을 사용하여 15개의 웹사이트에 대해 643개의 작업 쿼리를 생성하고 필터링했습니다. 각 웹사이트는 40개 이상의 쿼리를 포함합니다. 데이터셋은 저장소의 data/WebVoyager_data.jsonl
위치에 있습니다.
- 각 데이터 항목에는 작업 설명과 해당 웹사이트가 제공됩니다.
- 일부 작업은 시간에 민감하며, 주로 Booking과 Google Flights에 분포되어 있습니다. 실행 전에 수동으로 시간을 업데이트해야 합니다.
- 각 작업에 대한 간략한 참조 답변을
data/reference_answer.json
에 제공.
태스트 확장
기존 데이터는 비교적 풍부한 작업 풀을 형성하며, 데이터를 확장하기 위해서는 GPT-4를 사용하는 것이 좋습니다. 아래와 같은 샘플 프롬프트를 확장하여 필요한 작업에 맞춰 수정하거나 다시 설계해보세요:
Here are some example tasks and the websites that need to be interacted with to solve these tasks.
"""
<TASK: xxx; WEB: xxx;>
<other in-context examples>
"""
Please carefully analyze the above TASKs and then generate new TASKs for {website}. Please use diverse descriptions and do not repeat the task descriptions in examples.
Pay attention:
1. Do not include the requirement to view videos in the task.
2. In the generated task, if you need to declare a specific date in the future (such as booking, flights ...), you can choose the date in the range of <date 1> to <date 2>.
3. The generated task should have a clear goal and should not require complicated web page operations.
4. When looking for real-time information in the past (such as ArXiv, BBC News ...), don't ask for too much information for a certain period of time in the past, as this requires a lot of web scrolling and page flipping. But you may request information for certain points in time, e.g. latest.
5. To improve randomness and diversity, please try not to repeat entities that were asked about in examples.
Think carefully about the functions of given websites, and please note that the generated TASK can be solved by the corresponding website. The format of the answer must be: TASK: {Generated-task}|||WEB: {Website-name, https-address}
WebVoyager 실행
WebVoyager를 실행하려면 run.sh
스크립트를 사용합니다. 이 스크립트는 OpenAI API 키를 사용하여 작업을 수행하고, 여러 가지 파라미터를 설정할 수 있습니다.
bash run.sh
위 이미지는 WebVoyager 논문에 소개된 온라인 웹 브라우징의 전체 실행 결과를 보여주는 스크린샷들을 정리한 것입니다. 'Apple에서 iPad용 스마트 폴리오 액세서리를 검색하고 우편번호 90038 옆에서 가장 가까운 픽업 가능 여부를 확인하라(Search Apple for the accessory Smart Folio for iPad and check the closest pickup availability next to zip code 90038.)'
는 과제가 주어졌을 때의 동작 모습입니다. WebVoyager는 Apple 웹사이트와 상호 작용하여 '애플 타워 극장(Apple Tower Theatre)'
이라는 결과를 얻어 반환합니다.
결과 및 평가
GPT-4V를 사용하여 작업 성능을 자동으로 평가합니다. 평가 도구는 evaluation
디렉터리에 있으며, run_eval.sh
스크립트를 실행하여 평가를 수행할 수 있습니다.
라이선스
WebVoyager 프로젝트는 Apache 2.0 License로 공개 및 배포되고 있습니다.
WebVoyager GitHub 저장소
WebVoyager 논문
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~