레플리
글 수 288


스탠포드대에서 Generative Agents라는 혁신적인 논문을 공개했습니다. 심즈와 비슷한 가상세계를 ChatGPT로 구현했습니다. 개인적으로 ChatGPT를 응용한 주제 중 가장 흥미로웠습니다. 지금은 제가 자연어처리를 주로 하지만 처음에는 자율행동에 더 관심이 많았습니다. GTA 게임 같은 오픈월드에서 살아움직이는 NPC를 구현하고 싶었는데요. 지금까지는 자연어처리와 자율행동은 별개라고 생각했습니다. Generative Agents는 놀랍게도 이 2가지를 하나로 통합했습니다.

 

보통 게임에서 NPC를 구현할 때 유한상태기계나 행동트리를 사용합니다. NPC가 가질 수 있는 모든 상태들을 정의하고 이들 상태들이 어떻게 전환되는지 규칙을 만듭니다. 예를 들어, 적을 만나면 전투 상태에 들어가고 싸움을 시작합니다. 자신의 체력이 거의 바닥나면 도망 상태로 바뀌고 전투를 벗어납니다. 이런 규칙기반은 처음에는 구현이 쉽다는 장점이 있습니다. 하지만 상태나 행동의 개수가 늘어날수록 개발 난이도가 급격히 상승합니다. 복잡한 규칙을 사람이 모두 설계하는게 불가능하기 때문입니다. 그래서 대부분의 게임들에서 NPC의 행동능력이 매우 제한될 수밖에 없었습니다.

 

또한 자율행동과 대화는 전혀 별개로 동작했습니다. NPC의 현재 상태가 대화에 영향을 주지 않고 미리 작성한 스크립트에 따라 대답할 뿐입니다. GTA 같은 게임은 아예 NPC와 대화하는 기능이 빠져 있습니다. 하지만 Geneative Agents는 자율행동과 대화가 모두 ChatGPT를 기반으로 동작합니다. 그래서 2가지가 서로 밀접하게 영향을 주며 더욱 자연스럽고 사실적인 세계를 구현할 수 있습니다.

 

K-002.png

 

K-003.png

 



논문에서는 Smallville이라는 가상의 세계를 만들었습니다. 모두 25명의 캐릭터가 존재하며 같은 공간에서 살아갑니다. 또한 대학, 약국, 상점, 술집, 카페, 공원 등의 시설도 있습니다. 각 캐릭터는 자신만의 페르소나와 가족, 직업을 가지고 있습니다. 이에 따라 하루 일과를 수행합니다. 밤에는 침대에서 자고 아침에 눈을 뜹니다. 일어나서 화장실에 가서 양치질을 하고 주방에서 식사를 합니다. 집을 나와 학교에 가고 친구들을 만나 대화도 합니다.

 

마을 정보, 집 구조, 캐릭터 설명, 주변 인식 등 모든 사실들을 프롬프트로 가공하여 ChatGPT에 넣습니다. 그리고 각 캐릭터의 행동이나 대화, 오브젝트들의 상태를 생성해냅니다. 예를 들어 부엌의 스토브의 상태는 '<Isabell's apartment: kitchen: stove> is burning'처럼 자연어로 표시할 수 있습니다. 캐릭터와 캐릭터, 캐릭터와 사물들간의 상호작용은 모두 ChatGPT가 이해하고 처리합니다. 과거처럼 사람이 일일히 규칙을 세워서 코딩할 필요가 없습니다. 그래서 LLM이 허용하는 한 다양한 오브젝트들과 캐릭터의 행동들을 추가할 수 있습니다.

 

ChatGPT에서 생성된 행동이나 오브젝트들의 상태들 역시 자연어로 되어 있습니다. 이를 실제 가상세계에 적용하기 위해서 샌드박스 게임엔진이 존재합니다. 만약 특정 캐릭터가 학교로 이동한다고 설명이 되어 있으면 가상세계의 캐릭터의 위치를 직접 해당 위치로 변경합니다.

 

K-007.png

 

K-008.png

 


 

Generative Agents의 가장 핵심 부분은 메모리 스트림입니다. 오브젝트의 상태변화, 캐릭터의 행동이나 대화가 모두 메모리 스트림에 저장됩니다. ChatGPT의 프롬프트는 최대 길이가 정해져있어 모든 메모리 정보를 넣을 수가 없습니다. 그래서 메모리 스트림에서 현재 상황과 가장 유사한 기록들을 찾아서 프롬프트에 입력합니다.

 

K-009.png

 

K-010.png

 

 

 

실험을 하면서 저자도 예상하지 못한 창발적인 행동이 발생했다고 합니다. 사용자가 캐릭터 A에게 발렌타인데이 파티를 열라는 명령을 내렸습니다. 단지 어떤 생각을 그 캐릭터가 했다고만 적으면 그렇게 믿고 스스로 행동을 합니다. 캐릭터 A는 만나는 다른 캐릭터 B, C, D에게 파티를 열거라고 얘기를 합니다. 그런데 캐릭터 A가 직접 말하지 않은 캐릭터 E가 다른 캐릭터에게 그 얘기를 듣습니다. 그리고 캐릭터 A에게 자기도 파티 소식을 들었다고 전달합니다. 이렇게 하나의 행동이 다른 행동을 연쇄적으로 불러일으키는 신기한 현상이 일어납니다.

 

K-011.png

 

 

 

이렇게 ChatGPT가 게임이나 메타버스에 적용된다면 엄청난 변화가 일어날 것입니다. 단순히 대화만 초거대AI가 하는게 아니라 NPC나 오브젝트들의 상호작용을 모두 ChatGPT가 도맡아 하는 것이죠. 기존 하드코딩된 단조로운 세계는 이제 과거의 유물이 될 것입니다. 앞으로는 진짜 사실적이고 몰입감 있는 세상이 창조될 테니까요. 아직은 계산량이 많아서 당장 상용버전이 나오기는 힘들 듯 합니다. 그러나 LLM이 경량화되고 성능이 더 높아진다면 충분히 적용할 만합니다. 아마 몇 년내에 Generative Agents가 대중화될 거라 봅니다. 저도 빨리 그런 가상세계를 직접 경험해보고 싶네요.

 

 

 

< 논문 >

https://arxiv.org/abs/2304.03442

 

< 데모 >

https://reverie.herokuapp.com/arXiv_Demo/



 

K-012.png

 

K-013.png

 

K-014.png

 

K-015.png

 

K-017.png

 

List of Articles
제목 글쓴이 날짜sort 조회 수
아카라이브 AI 언어모델 로컬 채널 file 깊은바다 2023-05-23 599
Scale entanglement - LLM 연대기 깊은바다 2023-05-21 213
ChatGPT iOS 버전 출시 file 깊은바다 2023-05-19 117
GPT-3.5와 하이퍼클로바의 한국어 대결 file 깊은바다 2023-05-12 332
인플루언서의 목소리 클론과 GPT-4로 만든 아바타 서비스 - Caryn.ai 깊은바다 2023-05-11 610
오픈소스 LLM이 ChatGPT를 대체할 수 있을 깊은바다 2023-05-05 306
AutoGPT 사용기 - 다른 에이전트 생성 능력 file 깊은바다 2023-04-23 343
생성 에이전트를 ChatGPT 프롬프트만으로 구현 file 깊은바다 2023-04-20 282
GPT가 스스로 계획을 세워서 실행한다면 - AutoGPT와 LangChain file 깊은바다 2023-04-18 1506
ChatGPT 플러그인으로 만든 TODO 예제 file 깊은바다 2023-04-18 207
한국어 초거대AI가 필요한 이유 - 토크나이저와 한국어 콘텐츠 깊은바다 2023-04-17 277
심즈와 비슷한 가상세계를 ChatGPT로 구현 - 생성 에이전트(Generative Agents) file 깊은바다 2023-04-14 1789
ChatGPT 플러그인 전략 및 생태계 변화 전망 file 깊은바다 2023-04-09 1845
ChatGPT 원티드 플러그인 사용 화면 file 깊은바다 2023-04-07 288
GPT-3, InstructGPT, GPT-3.5, ChatGPT의 차이점 깊은바다 2023-04-05 1519