본문 바로가기
wonderland/wonderland news

Ai Agent들이 사이좋게 살고있는 마을. 저도 한번 만들어봤습니다.

by Editor_Jin 2024. 7. 7.
반응형

 

위 마을은 25명의 AI가 조종하는 캐릭터가 스몰빌이라는 마을에서 살아가는 "생성형 에이전트" 데모의 스크린샷입니다.

스탠포드 대학과 구글의 연구원 그룹이 만든 가상세계죠.

여기서 25명의 캐릭터가 ChatGPT로 제어되며, 각 AI 에이전트는 서로 정보를 공유하고, 관계에 대해 세부 사항을 기억하고, 심지어 발렌타인 데이 파티를 계획할수도 있습니다. 

 

Ai Agent들이 사이좋게 살고있는 광장. 

저도 한번 만들어봤습니다.

이 Ai Agent들이 삼삼오오 모여서 무엇을 하냐고요? 영화를 봅니다.

추천된 영화 목록을 보고 좋아요를 누르기도 하고 시청도 하고, 평점을 매기기도 합니다.

네, 바로 이 광장은 Ai Agent들의 행동 기록들을 가지고 추천시스템 모델이 괜찮은지 평가하는 데 사용할 수 있도록 

구현된 광장입니다.

어떤 추천시스템 모델이 괜찮을지 Ai Agent들에 적용해보고 평가해보도록 하겠습니다.

(논문 구현 - On Generative Agents in Recommendation)

Components

크게 3가지 모듈로 구성됩니다.

 

[ Dataset ]

각 에이전트들의 유저 정보(페르소나)를 구축합니다.

movie Lens 데이터셋을 가공합니다.

  • high ratings : 어떤 영화들에 높은 평점을 주는지
  • activity : 영화를 얼마나 자주보는지
  • diversity : 영화를 얼마나 다양하게 보는지
  • confirmity : 영화에 대한 평가가 다른 사용자들과 비슷한지. 독특한 취향을 가지고 있는지

[ Recommender ] 

시뮬레이터 사용할 추천 모델을 학습합니다.

 

[ Simulator ] 

각각의 에이전트가 추천된 영화 목록을 보고, 시청하거나 좋아요를 클릭하고 평점을 매깁니다.

각각의 에이전트의 좋아요 수, 시청 영화 수, 평점들을 가지고 추천모델의 성능을 평가합니다.

아니, 어떻게 
가상의 사용자(Ai Agent)를 만들고 영화를 보게 할 수 있는건가요?
이 Simultaor 코드를 한번 찬찬히 살펴보겠습니다.

 

Workflow

 

Detail

prepare_dir

  • 결과 저장 폴더 준비

 

load_data

  • 가공한 각 사용자 페르소나, 영화 정보 데이터 로드 

 

load_recommender

  • 학습된 모델 로드

 

initialize_all_avatars

  • 아바타들을 관리하는 아레나 초기화
  • 각 아바타들이 페르소나와 메모리를 가지도록 초기화
  • 각 아바타들의 메모리는 faiss Inmemory Docstore 사용

클래스 Arena

 

클래스 Avatar

 

Avatar 메모리 초기화

 

 

get_pull_rankings

  • 각 유저별 추천 아이템 예측

 

simulate_all_avatars

  • 각 사용자별로 페이지 생성, 추천아이템 제공, 사용자 리액션
  • 종료 신호나올 때까지 반복 

모든 아바타 시물레이션
각 아바타 시물레이션
llm 에이전트 리액션 1 - 프롬포트 작성
llm 에이전트 리액션 2 - 응답 반환
llm 에이전트 리액션 3 - 종료신호

 

Result

 

각 AI 에이전트들이 열심히 영화를 보고 좋아요를 클릭하고 평점을 매겨줍니다.

AI 에이전트들에

LightGCN을 적용했을때, 평균 클릭률이 0.32

MF모델을 적용했을때, 평균 클릭률이 0.31정도 되네요

 

보통의 추천시스템은 오프라인 평가를 합니다.

오프라인 평가는 과거의 고정된 데이터셋을 활용하여 recall, precision, ngdc등의 지표로 성능을 평가하죠.

그러나 실제 사용자 환경에서는 사용자는 자신의 취향, 선호도, 피로감, 이전 행동들이 모여 선택을 하게 됩니다.

그렇기 때문에 오프라인 평가 지표와 온라인 성능간의 차이가 발생하게 됩니다.

 

 

이 실험에서 AI Agent는 자신의 취향, 선호도, 피로감, 이전 행동들을 페르소나와 메모리 모듈을 이용해서 영화 선택을 하게 됩니다. 실제 사용자 환경처럼 말이죠.

모델 별 비교는 더 해봐야겠지만 이런 의미가 있네요.

Agnet4Rec 샘플 결과

 

Reference

반응형

댓글