Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - 이미지
 - LLM
 - 깃허브
 - kt부트캠프
 - 딥러닝
 - 논문리뷰
 - 보상함수
 - 페이지전환
 - 깃
 - CSS
 - 개념
 - 머신러닝
 - kt_aivle
 - 배치사이즈
 - Github
 - 멋쟁이사자처럼
 - kt_부트캠프
 - 후기
 - 티스토리챌린지
 - 딥러닝개념
 - 오블완
 - git
 - kt_aivle_school
 - 바틀넥
 - HTML
 - 인공지능
 - 프론트엔드
 - llm-ma
 - 컴공
 - 테킷
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
공부하는 안씨의 기록
[논문 리뷰] Generative Agents: Interactive Simulacra of Human Behavior (3,4장) 본문
      논문 리뷰
      
    [논문 리뷰] Generative Agents: Interactive Simulacra of Human Behavior (3,4장)
an씨 2024. 11. 25. 09:39Generative Agents: Interactive Simulacra of Human Behavior
프로젝트의 선행 연구로 위 논문을 학습하고 있다.
구현과 직접적인 관련이 있는 3,4장을 중심으로 내용 정리 및 요약을 진행하였다.
핵심 요약
- Smallville 환경: 에이전트가 자연스러운 행동을 수행하며 상호작용할 수 있는 디지털 샌드박스.
 - 행동 특징:
- 환경과 상황 변화에 따라 유연한 반응.
 - 사회적 행동(정보 확산, 관계 형성, 협력 등)을 자율적으로 수행.
 
 - Generative Agent 아키텍처란?
- 에이전트가 기억, 반영, 계획을 통해 행동을 결정하고 조정하는 구조
 - 기억: 경험을 체계적으로 저장하고 필요한 정보를 검색해 행동에 반영.
 - 반영: 관찰을 고차원적 통찰로 일반화하여 더 깊은 행동을 가능하게 함.
 - 계획: 장기적인 일정을 생성하고, 상황 변화에 따라 유연하게 수정.
 
 
3. Generative Agent Behavior and Interaction 요약

Smallville 환경 개요
- Smallville: The Sims와 유사한 작은 마을을 시뮬레이션한 스프라이트 기반 샌드박스 세계.
- 목적: 에이전트 간의 자연스러운 상호작용과 인간다운 행동을 시뮬레이션.
 - 구성 요소: 카페, 공원, 학교, 주택 등 다양한 공간으로 이루어진 마을.
 
 - 에이전트 특징:
- 25명의 에이전트가 고유의 아바타와 초기 기억을 가지고 있음.
 - 초기 기억은 자연어로 작성된 문단 설명으로 초기화됨.
 
 
1. 에이전트 초기화
- 초기 상태 정의:
- 각 에이전트는 자신의 성격, 직업, 관계, 선호도를 포함한 문단 설명을 가짐.
 - 예: John Lin
- 약국 직원으로, 가족 및 이웃과의 관계가 초기 기억으로 정의됨.
 - 초기 기억 예시:
 - John Lin is a pharmacy shopkeeper who loves to help people. He lives with his wife Mei Lin, a college professor, and son Eddy Lin, a student studying music theory.
 
 - 이 초기 기억은 시뮬레이션 시작 시 기억 스트림(memory stream)에 저장됨.
 
 
2. 행동 및 의사소통
행동 결정
- 에이전트는 저장된 기억과 현재 상황을 기반으로 행동을 선택.
 - 구현 방식:
- 행동은 자연어로 기술되며, 이모지나 간단한 시각적 요소로 표현.
 - 예:"Isabella Rodriguez is writing in her journal"이 이모지로 변환되어 표시됨.
 
 
의사소통
- 에이전트 간의 대화는 자연어를 사용하며, 서로의 관계와 환경을 고려해 동적으로 생성.
 - 대화 예시:Isabella Rodriguez와 Tom Moreno가 선거에 대해 논의:
 - Isabella: I’m still weighing my options, but I’ve been discussing the election with Sam Moore. What are your thoughts on him?
 - Tom: To be honest, I don’t like Sam Moore. I think he’s out of touch with the community and doesn’t have our best interests at heart.
 
사용자 상호작용
- 사용자 제어:
- 사용자는 자연어로 에이전트와 대화하거나 특정 행동을 지시할 수 있음.
 - 예: 사용자가 John에게 "You are going to run for mayor"라고 명령하면, John은 시장 선거에 출마하도록 행동을 조정.
 
 
3. 환경 변화에 따른 반응
- 에이전트는 환경에서의 변화를 감지하고 적절히 반응.
 - 예:사용자가 "Isabella’s apartment: kitchen: stove is burning"이라고 상태를 변경하면:
- Isabella는 이를 감지하고 스토브를 끄고 다시 요리를 시작.
 
 
4. 예시: 하루 일과
- 에이전트가 하루 동안의 활동을 계획하고 실행하며, 이를 통해 기억과 관계를 쌓음.
 - John Lin의 하루 (예시):
- 아침 (7:00):
- 양치질, 샤워, 아침 식사, 뉴스를 확인하며 하루를 시작.
 
 - 가족과의 대화:
- 아들 Eddy와 대화:
 - John: Good morning Eddy. Did you sleep well? Eddy: Good morning Dad. Yeah, I slept great.
 - Eddy가 학교에 간 후, 아내 Mei와 Eddy의 음악 과제에 대해 이야기.
 
 - 업무 시작 (9:00):
- Willow Market and Pharmacy에서 근무 시작.
 
 
 - 아침 (7:00):
 
5. 사회적 행동
1) 정보 확산 (Information Diffusion)
- 에이전트가 대화를 통해 정보를 전파.
 - 예: Sam이 시장 선거 출마 소식을 전파:
- Sam이 Tom에게 출마 소식을 알림:
- Sam: I’m actually running for mayor in the upcoming local election.
 
 - Tom은 이를 기억하고 John과 논의:
- John: I heard that Sam Moore is running for mayor. Do you think he has a good chance of winning?
 
 
 - Sam이 Tom에게 출마 소식을 알림:
 
2) 관계 형성 및 유지 (Relationship Memory)
- 에이전트는 새로운 관계를 형성하고 기존 관계를 기억.
 - 예: Sam이 Latoya를 공원에서 만나 대화를 시작:
- Latoya는 사진 프로젝트를 작업 중이라고 말함.
 - 이후 Sam이 "How is your project going?"이라고 질문하며 관계를 유지.
 
 
3) 협업 및 조정 (Coordination)
- 에이전트가 공동 목표를 위해 자율적으로 협력.
 - 발렌타인데이 파티 예시:
- Isabella가 파티를 계획하고 친구들에게 초대장을 전달.
 - Maria는 Klaus를 파티에 초대.
 - 파티 당일, 여러 에이전트가 모여 함께 시간을 보냄.
 
 
6. 행동 시뮬레이션의 결과
- 결과: 에이전트는 자율적으로 정보를 교환하고, 새로운 관계를 형성하며, 공동 활동을 조직.
 - 장점: 행동과 상호작용이 사전에 정의되지 않고, 에이전트 간의 자율적 상호작용에서 발생
 
- 목표: 에이전트가 인간다운 행동을 수행하고, 변화하는 환경에 적응할 수 있도록 함.
 - 구성 요소: 기억(Memory), 반성(Reflection), 계획(Planning).
 - 기능:
- 자연어를 기반으로 정보를 저장하고, 필요한 정보를 검색 및 활용.
 - 에이전트가 자신의 과거 경험을 바탕으로 행동을 결정하고 수정.
 
 
4. Generative Agent Architecture 요약

1. Memory (기억)
- 역할: 에이전트의 모든 경험과 사건을 자연어로 기록하여 행동을 결정할 때 사용.
 - 구성 요소:
- 기억 객체 (Memory Object):
- 내용: 자연어로 기술된 사건.
 - 생성 시간: 사건이 기록된 시점.
 - 최종 액세스 시간: 최근에 사용된 시간.
 
 - 기본 요소: 관찰(observations).
- 예: "Isabella Rodriguez is setting out the pastries."
 
 
 - 기억 객체 (Memory Object):
 - 기억 저장 방식: 모든 관찰은 에이전트의 기억 스트림(memory stream)에 저장.
 
기억 검색 (Memory Retrieval)
- 문제점: 모든 기억을 참조하면 비효율적이고, 관련 없는 정보로 인해 혼란 발생.
 - 해결: 3가지 기준으로 검색 우선순위를 설정.
- Recency:
- 최근 액세스된 기억일수록 높은 점수.
 - 수학적 처리: 시간이 지남에 따라 지수 함수로 점수 감소.
- 예: 감쇠 계수(decay factor) 0.995.
 
 
 - Importance:
- 기억의 중요도를 숫자 점수(1~10)로 평가.
 - 프롬프트 예시:
- 결과: 단순 행동(방 정리하기) → 중요도 2, 중요한 사건(데이트 신청) → 중요도 8.
 
 - On the scale of 1 to 10, where 1 is purely mundane (e.g., brushing teeth, making bed) and 10 is extremely poignant (e.g., a break up, college acceptance), rate the likely poignancy of the following piece of memory.
 
 - Relevance:
- 현재 상황과의 연관성을 계산.
 - 구현: 언어 모델을 사용해 텍스트 임베딩을 생성 후, 코사인 유사도를 기반으로 관련성 평가.
 
 
 - Recency:
 
검색 결과:
- 기억은 세 가지 점수를 조합한 가중치로 순위를 매기며, 상위 항목만 언어 모델의 컨텍스트에 포함.
 - 공식: \[ \text{score} = \alpha_\text{recency} \cdot \text{recency} + \alpha_\text{importance} \cdot \text{importance} + \alpha_\text{relevance} \cdot \text{relevance} \] (기본적으로 모든 \(\alpha\) 값은 1로 설정)
 
2. Reflection (반영)
- 역할: 에이전트가 단순한 관찰을 넘어서 고차원적인 추론과 통찰을 생성.
 - 필요성: 단순 기억으로는 행동의 깊이를 만들기 어려움.
- 예: Klaus가 단순히 빈번하게 만나는 사람(Wolfgang)을 선택하는 대신, 공통 관심사를 가진 Maria를 선택하도록 유도.
 
 - 작동 방식:
- 질문 생성: 최근 100개의 기억에서 높은 수준의 질문을 도출.
- 예: "What topic is Klaus Mueller passionate about?"
 
 - 기억 검색: 질문과 관련된 기억을 검색.
 - 추론 생성: 기억을 바탕으로 통찰 생성.
- 프롬프트 예시:
- 결과: "Klaus Mueller is dedicated to his research on gentrification (because of 1, 2, 8, 15)."
 
 - What 5 high-level insights can you infer from the above statements? (example format: insight (because of 1, 5, 3))
 
 - 프롬프트 예시:
 - 결과 저장: 생성된 통찰을 기억 스트림에 저장.
 
 - 질문 생성: 최근 100개의 기억에서 높은 수준의 질문을 도출.
 
반영 트리 (Reflection Tree)
- 반영은 트리 형태로 저장:
- 리프 노드: 관찰에서 도출된 기억.
 - 상위 노드: 추상적이고 고차원적인 통찰.
 
 - 효과: 점진적으로 더 깊은 행동과 판단을 가능하게 함.
 
3. Planning (계획)
- 역할: 에이전트가 장기적인 행동 계획을 수립하고, 상황 변화에 맞춰 조정.
 - 필요성: 단기적 상황만 고려하면 행동이 비논리적일 수 있음.
- 예: Klaus가 점심을 반복적으로 먹는 대신, 연구와 산책을 포함한 균형 있는 일정을 계획.
 
 
계획 수립
- 일정 생성 (Top-down Approach):
- 하루를 큰 틀로 나눈 계획 생성.
 - 프롬프트 예시:
- 결과:
- "1) wake up at 8:00 am"
 - "2) attend classes at 10:00 am"
 
 
 - 결과:
 - Name: Eddy Lin (age: 19) ... Today is Wednesday February 13. Here is Eddy’s plan today in broad strokes: 1)
 
 - 세부 행동 분해: 큰 틀의 계획을 1시간 단위로 분해.
 - 더 작은 행동으로 세분화: 5~15분 단위로 행동 정의.
- 예: "4:00 pm: grab a light snack, such as a piece of fruit or granola bar."
 
 
계획 수정 및 반응
- 상황 변화에 따른 수정:
- 에이전트는 감지된 이벤트에 따라 기존 계획을 업데이트.
 - 예: Eddy가 정원에서 산책 중일 때, 아버지가 대화를 시작하면 계획 변경.
 
 - 대화 생성: 대화는 기억과 요약을 바탕으로 동적으로 생성.
- 프롬프트 예시:
- 결과: "Hey Eddy, how’s the music composition project for your class coming along?"
 
 - John is asking Eddy about his music composition project. What would he say to Eddy?
 
 - 프롬프트 예시:
 
