본문 바로가기

4. Paper/논문 리뷰

[논문 리뷰] Generative Agents: Interactive Simulacra of Human Behavior (작성중)

작성중입니다.

Abstract

언어 모델을 이용하여 Agent를 설정된 집단과 환경에서 인간과 유사하게 행동할 수 있도록 하는 simulation을 구현한 연구에 대한 논문이다.

  • Agent는 큰 언어모델(chatgpt)에 Agent의 경험을 기억할 수 있고,
  • 그 기억을 높은 수준으로 반영하여 반응을 생성하며,
  • 그 데이터들을 동적으로 행동을 계획하기 위해 불러올 수 있다.

Keywords

  • Human-AI Interaction
  • Agents
  • Generative AI
  • Large language models

Introduction

인공 사회를 만드는데는 “The Sims”(게임)에서 영감을 받아서 가상 환경을 설계했다.

환경에 던져진 Agent들은 과거의 경험과 괴리가 없도록 일관적으로 행동했고,

  • 어떻게 어려운 대인관계의 상황을 해결하는지를 학습했으며
  • 사회 과학의 이론을 테스트 했으며
  • 이론과 사용성 테스트를 위해 위한인간의 행동 프로세스를 만들었다.

하지만 인간행동은 방대하며 복잡하기에, 큰 언어모델로 single time point에서 인간행동 시뮬레이션이 가능하더라도, 긴 텀동안 일관성 있는 agent가 새로운 상호작용, 갈등, 이벤트로 인해 끊임없이 늘어나는 정보를 기억하는 아키택처가 더 적합하다.

3. Generative Agent Behavior And Interaction

(작성중)

  1. Inter-Agent Communication
  2. User Controls
  3. Information Diffusion
  4. Relationship memory
  5. Coordination

4. Generative Agent Architecture

generative agent는 현재 상태를 가지고 가지고 있고, 과거의 경험을 입력으로 받으며 행동을 출력해낸다. 해당 구조는 language모델의 상태와 정보등을 합성하여 출력을 만든다. 이러한 아키텍처는 agent의 출력이 과거 경험에 기반하게 하고, 중요한 추론을 만들어내며, 긴 텀동안의 통일성을 유지시켜줄 수 있도록 제어하는 역할을 한다.

4.1 Memory and Retrieval

Challenge

Agent가 추론을 하게 하기 위해서 과거 경험 데이터 뿐만 아니라 현재 데이터도 넣어줘야 할텐데 어떻게 prompt를 설계해야할까? 제한된 context window 어떻게 이 많은 요소를 넣어야 하는가.

 

Approach

agent의 정보를 메모리스트림에 포괄적으로 저장하여 이후 관찰하기 쉽게 한다. 추가로 저장되는 정보는 다음과 같다.

  • natural language description
  • timestamp / most recent access timestamp

Recency

최신 정보에 높은 점수를 부여했다. 점수는 정보에 생성, 접근한 timestamp를 이용했으며, 시간에 따른 decay(0.99)를 부여했다. decay는 exponential decay function을 이용.

 

Importance

중요도를 평가하는 다양한 방법이 있겠지만, 해당 논문에서는 언어모델을 사용하여 사진과 같은 프롬프트로 중요도를 데이터 스트림에 저장하게 했다.

 

Relevance

현재 상황과 관련있는 정보에 높은 점수를 부여했다. 예를들면 화학시험에 대한 논의를 하는 상황일때, “오늘 먹은 아침”보다 “학교에서 공부한 것”이 더 높은 점수를 얻는 것이다. 해당 논문에서는 데이터셋을 벡터화하여 cosine 유사도로 관련성을 평가했다.

 

Combination

각 부분에 weighted combination을 하여 계산 하게 했으며, 해당논문에선 weight를 모두 1로 두어서 그림과 같은 형태가 된다.

4.2 Reflection

Challenge

날것의 관찰 데이터만 가진 agent는 일반화하기와, 관련성 만들기를 하기에 혼란을 겪는다. 그렇기에 더 바람직한 응답을 하기 위해 agent는 시간이 지남에 따라 더 높은 수준의 reflection을 만들어 내는 memory의 일반화가 요구된다.

 

Approach

reflection이라고 부르는 두번째 타입의 메모리를 만듬. 이는 agent가 생성하는 더 높은 수준의 추상인 생각이다. 이전의 이벤트에서 쌓인 importance score의 합계가 임계값을 넘을 경우 reflection을 수행한다. 해당 논문의 agent들은 2~3회 reflection을 수행했다.

논문의 내용이 단번에 이해하기 어려웠어서 간단하게 설명하면 다음 과정을 거친다.

  1. 최근 쌓인 기억들의 중요도합이 임계치를 넘었을 경우 발동
  2. 최근 100개의 기억을 입력으로 넣어서 해당 기억으로 대답이 가능한 매우 높은 수준의 질문을 3개 생성해달라고 언어모델에 입력.
  3. 생성된 질문을 이용해서 나온 3개의 질문을 입력으로 추론 할 수 있는 높은 수준의 통찰 5가지를 생성하고, 어떤 문장에서 얻은 통찰인지도 같이 출력해 달라고 언어모델에 입력.
  4. 해당 통찰이 담긴 문장을 통해 Reflection Tree 가 생성됨. / 해당 통찰이 담긴 문장은 다시 Reflection이벤트가 있을때 검색될 수 있다.

(2)

(3)

4.3 Planning and Reacting

Challenge

계획성, 일관되고 신뢰할만한 행동을 보이기 위해는 계획이 필요하다. 계획 없이는 Agent가 점심을 먹는다고 가정할때 12시에 저녁먹고 12:30에 또먹고 1시에 또먹고 하는 일이 일어날 수 있다.

 

Approach