Search
Login
🏠

#5 NPC끼리 대화하는 AI 마을

Issue
Issue 5
날짜
2023/09/06
시즌
Season 2
작성자

 Cover Story

AI끼리 대화한다면?

RPG 게임을 하다보면 NPC(Non-Player Character)가 등장합니다. NPC는 플레이어가 말을 걸 때마다 동일한 응답을 반복합니다. 물론, 이벤트가 발생해서 상황이 달라진다면 새로운 얘기를 꺼내기도 하지만 결국 그것 또한 정해진 답변일 뿐입니다. 그런데 이런 NPC가 만약 플레이어와 자유롭게 대화를 할 수 있다면 어떨까요?
AI 덕분에 이런 재미난 상상은 현실이 됩니다. 지난 4월, 스탠포드 대학에서 가상의 마을을 만들고 25명의 캐릭터에게 ChatGPT 기반의 AI 모델을 부여하였습니다. 각 캐릭터는 서로 다른 배경을 가지고 있기 때문에 다양한 상황이 연출될 수 있습니다.
그렇다면 스탠포드 대학 연구진들은 어떻게 이런 환경을 구현했고, 어떤 시사점을 얻어냈을까요? 이번 아티클은 ICLR에서 발표되기도 한 Generative Agents: Interactive Simulacra of Human Behavior을 리뷰입니다.
대표적인 아바타 게임이었던 ‘심즈’를 아시나요? 연구진은 인간의 상호작용을 게임 속에서 실현하기 위해 고민했고, 그 결과 ‘심즈’처럼 가상 세계를 구현하기 위해 ‘SmallVille’ 마을을 만들었습니다. 그리고 그곳에는 25명의 캐릭터가 살고 있습니다. 이 캐릭터들은 Generative Agents라고 부르는데요, 말 그대로 ‘생성된 대리인’이지만 편의상 캐릭터로 칭하겠습니다. 게임 속 캐릭터들은 각자 살아온 배경에 따라 고유한 성격을 가지고 있습니다.
이사벨라: 아직 선택을 고민 중이지만, 난 샘 무어와 선거에 대해 이야기해왔어. 그에 대한 생각은 어때?
톰: 솔직히 말해서, 난 샘 무어를 좋아하지 않아. 그는 지역 사회와 접점이 없고, 우리의 이익을 최우선으로 생각하지 않는다고 생각해.
이사벨라 로드리게스와 톰 모레노 간의 다가올 선거에 관한 대화 예시입니다. 생각보다 심도 깊은 대화가 오갑니다. 캐릭터들은 서로 대화하기도 하는 한편으로 장소에 따라 다른 행동을 하기도 합니다. 아침에 냉장고에서 재료를 꺼내 요리를 하기도 하고, 화장실에 들어갔는데 물이 새고 있으면 고치기 위해 연장을 들고 오기도 합니다. 너무나도 일상적인 상황들이라 당연하게 여길지도 모르겠지만, AI의 행동이라는 점을 염두에 두셔야 합니다. 그렇다면 그들은 어떻게 자연스럽게 상호작용할 수 있는 것일까요? 연구진들이 개발한 게임의 아키텍처를 살펴보겠습니다.
캐릭터가 누구와 어떤 대화를 하고, 어디에서 무슨 행동을 했는지 파악하기 위해서는 각 캐릭터마다 행동을 저장되어야 합니다. 만약 이런 맥락이 없다면 자연스러운 대화가 이루어지기 어렵습니다. 마치 계속 처음 보는 사람과 대화하는 것처럼요. 이를 위해 연구진은 메모리 스트림(Memory Stream)을 개발하여 경험을 종합적으로 기록합니다. 하나의 메모리 객체는 자연어 설명, 타임스탬프, 액세스 타임스탬프로 구성됩니다. 이런 경험은 ‘관찰’로부터 출발합니다. 예를 들어 카페에서 일하는 이사벨라가 기억할 수 있는 정보는 ‘이사벨라가 과자를 내놓는다’, ‘마리아가 커피를 마시며 화학 시험을 공부한다’, ‘냉장고가 비었다’와 같은 것입니다. 이런 정보는 이후 다른 행동을 결정하는 데 활용될 것입니다.
우선, 정보를 불러오는 과정(Retrieve)에서는 3가지 주요 요소, 최신성(Recency), 중요성(Importance), 관련성(Relevance)을 고려합니다. 최신성은 가장 최근에 접근한 기억에 대해 더 높은 점수를 부여하는 것입니다. 중요성은 반복되는 일상보다 핵심적인 사건들에 더 높은 점수를 부여하는 것입니다. 사실 이를 명료하게 구분할 기준이 없기 때문에, 언어 모델에 의존하여 특정 사건에 대한 중요도 정수 점수를 요청합니다. 마지막으로 관련성은 현재 상황과 관련 있는 정보에 더 높은 점수를 부여하는 것입니다. 예를 들어, 화학 시험과 관련해서 무엇을 결정할 때 선생님께서 말씀하신 정보와의 연관성을 높게 책정해야 합니다. 이 역시 현재 상황에 대한 설명을 언어 모델에 입력하여 얻은 벡터와 메모리 속 벡터의 코사인 유사도를 계산합니다. 최종 점수를 계산할 때는 최솟값을 0, 최댓값을 1로 두고 상대적인 위치를 계산하는 Min-Max Scaling을 통해 정규화하고, 가장 높은 값을 언어모델이 판단할 수 있는 맥락 정보로 제공합니다.
다음으로, 숙고(Reflect) 과정은 높은 수준의 추상적인 생각이 필요할 때 발생합니다. 중요성 점수의 합이 임계값 이상일 때 숙고 과정을 거치는데, 이는 캐릭터당 게임 시간으로 하루에 2-3번 일어난다고 합니다. 숙고 과정은 트리 형식으로 구성되어 있는데요. 지금까지의 관찰과 숙고 과정을 종합하여 결정을 내립니다.
마지막으로 계획과 반응(Planning and Reacting)입니다. 이는 현재 맥락 속 행동에 있어 미래를 대비하여야 한다는 의미입니다. 예를 들어, 오후 12시 식당에서 점심을 먹은 클라우스가 또다시 오후 1시에 식당에 있다면 주어진 환경 맥락 때문에 식사를 두 번하게 될 수도 있습니다. 그래서 계획 속에는 위치와 시작 시간과 끝나는 시간이 필요합니다. 캐릭터는 아침에 일어나면 대략적인 계획을 세웁니다. 계획을 세우는 방법은 전날 계획을 언어 모델에 입력하여 다음날 계획을 추론하도록 하는 것입니다. 캐릭터는 행동 방식을 결정할 때 관찰, 숙고, 계획을 모두 고려하고, 필요한 경우 계획을 변경할 수 있습니다.
캐릭터들의 모든 행동을 AI가 결정하도록 하면서 자유도 높은 게임이 구현되었습니다. 게임 플레이어는 이런 환경 속에서 캐릭터들에게 지시를 내릴 수 있습니다. 그리고 플레이어 본인의 역할을 지정할 수도 있습니다. 이런 게임이 나온다면 정말 헤어나올 수 없이 몰입할 법합니다. 아직 이 게임이 상용화되기에는 시간이 더 필요하지만, AI 기반으로 기존에 없던 새로운 게임의 가능성을 보여주었습니다. 한편으로는 우려되기도 합니다. 정말 게임의 ‘시뮬라크르’라면 인간 세계에서 발생하는 바람직하지 않은 행동들마저도 모사하게 될 수 있으니까요. 범죄를 저지르는 캐릭터, 그에 대해 판결을 내리는 캐릭터는 어떻게 정의할 수 있을까요? 그리고 언어 모델이 해결하기 어려운 문제들은 어떻게 극복할 수 있을까요?

새로운 소식

Humans of daiv. #5 이윤우

지난해부터 AI 붐이 불면서 점점 더 많은 사람이 AI에 입문하고 있습니다. 부푼 꿈을 안고 도전하지만, 여느 분야가 그렇듯 잘 맞는 사람과 그렇지 않은 사람도 있습니다.
AI를 공부했더라도 전문가가 되는 것만이 길은 아닙니다. 공부했던 경험을 되살려 새로운 영역에 도전해 볼 수도 있죠. 이번주에는 딥 다이브에서 AI를 공부하고, AI 기반의 스트리밍 서비스 출시를 기획하고 있는 이윤우를 만나 얘기를 나눠보았습니다.
문의사항 manager@deepdaiv.com