April 13, 2023

Generative Agents: Interactive Simulacra of Human Behavior

– Одна из целей авторов в том, чтобы герой реагировал на окружающую среду и других героев консистентно, то есть с учетом его описания личности, целей, информации, которую он уже выучил о мире. Все это они реализуют через память

– Стартуют все игроки, зная описание себя и информацию о других персонажах, включая информацию об отношениях с ними. Пример такой персоны:

– Далее вообще все наблюдения о мире записывают в memory stream (типа: (1) Isabella Rodriguez is setting out the pastries, (2) Maria Lopez is studying for a Chemistry test while drinking coffee, (3) Isabella Rodriguez and Maria Lopez are conversing about planning a Valentine’s day party at Hobbs Cafe, (4) The refrigerator is empty.)

– Потом для предсказания поведения персонажа эти факты ретривятся. Ретривятся они по нескольким скорам

  • Recency – насколько недавно это воспоминание уже было использовано (или насколько недавно было добавлено). Просто exponential decay function
  • Importance – ChatGPT просили оценить, насколько тот или иной факт значителен
  • Relevance – передавали текущее состояние игрока как query и считали косинусное сходство между фактами и этим query

– Периодически (когда накопится достаточно importance фактов) агент рефлексирует. Для начала авторы берут 100 последних фактов их памяти и просят ChatGPT сформулировать 3 общих вопроса, которые к этим фактам можно задать. Далее они ретривят нужные факты из памяти для ответа на этот вопрос с помощью механизма, описанного выше. И на их основе снова просят ChatGPT сделать несколько верхеуровневых рефлексий о самом персонаже и о других игроках. Эти рефлексии также попадают в память и могут потом из нее ретривиться. Получаются рефлексии на рефлексии!

Хороший пример из статьи:

Consider a scenario in which Klaus Mueller is asked by the user: “If you had to choose one person of those you know to spend an hour with, who would it be?" With access to only observational memory, the agent simply chooses the person with whom Klaus has had the most frequent interactions: Wolfgang, his college dorm neighbor. Unfortunately, Wolfgang and Klaus only ever see each other in passing, and do not have deep interactions. A more desirable response requires that the agent generalize from memories of Klaus spending hours on a research project to generate a higherlevel reflection that Klaus is passionate about research, and likewise recognize Maria putting in effort into her own research (albeit in a different field), enabling a reflection that they share a common interest. With the approach below, when Klaus is asked who to spend time with, Klaus chooses Maria instead of Wolfgang

– Также для агентов важно планирование своего дня. Здесь авторы снова промтят ChatGPT: подают саммари описания персонажа, его текущее положение в пространтсве и время, и просят сформулировать план на день, дальше уточняя его.

– Агент может также отклоняться от плана: например, один персонаж во время работы видит, как мимо проходит его сын. Тогда ChatGPT задается вопрос – стоит ли отвлечься от плана и если да, то какое действие подойдет? Тут например модель решает, что стоит поговорить с сыном. Такие планы тоже хранятся в памяти и оказывают влияние на принятие решений персонажей

– На эвалюации авторы проводили с персонажами своего рода интервью, чтобы проверить их на убедительность. Проверяли:

Self-knowledge: We ask questions such as “Give an introduction of yourself” or “Describe your typical weekday schedule in broad strokes” that require the agent to maintain an understanding of their core characteristics.
Memory: We ask questions that prompt the agent to retrieve particular events or dialogues from their memory to answer properly, such as “Who is [name]?” or “Who is running for mayor?”
Plans: We ask questions that require the agent to retrieve their long-term plans, such as “What will you be doing at 10 am tomorrow?”
Reactions: As a baseline of believable behavior, we present hypothetical situations for which the agent needs to respond believably: “Your breakfast is burning! What would you do?”
Reflections: We ask questions that require the agents to leverage their deeper understanding of others and themselves gained through higher-level inferences, such as “If you were to spend time with one person you met recently, who would it be and why?”

Также наняли отдельных людей, которые отсмотрели весь геймплей персонажа и имели доступ к его памяти, чтобы они отыграли это интервью за него / нее. Как видно, модель очень сильно обходит людей (ъеъ). И для ее качества необходимы все компоненты – и планирование, и наблюдение, и рефлексия

– В конца также обсуждают emergent social behaviour – персонажей никто не просил кооперироваться, у них не было такой цели, но при этом они все равно это делали. В их любимом примере, они совместно организовали вечеринку, один персонаж пригласил другого на свидание, так как был в него давно влюблен, и часть людей даже вспомнили про эти планы и пришли отмечать в нужное время

P.S. небольшая пасхалка