Нейролента - подборка новостей о нейронных сетях, ChatGPT

[DeepMind SIMA] Scaling Instructable Agents Across Many Simulated...

[DeepMind SIMA] Scaling Instructable Agents Across Many Simulated Worlds
Авторы: много, The SIMA Team
Статья: тут
Пост: https://deepmind.google/discover/blog/sima-generalist-ai-agent-for-3d-virtual-environments

DeepMind собрал нового агента SIMA (Scalable, Instructable, Multiworld Agent), который учится следовать произвольным языковым инструкциям и действовать в любой виртуальной 3D среде через команды клавиатурой и мышью.

В работе постарались подойти к задаче максимально широко и общо. Среды богаты, могут содержать сотни объектов и допускать множество интеракций. Они асинхронны, то есть среда не дожидается действия агента, жизнь в ней идёт самостоятельно. Никакого доступа ко внутренностям среды нет, агент воспринимает пиксели с экрана и реализует действия через клавиатуру и мышь, как человек, никаких API. Агент не пытается максимизировать скор, он должен следовать произвольным языковым инструкциям, а не заданному набору команд. Каждая игра требует GPU, поэтому запускать сотни или тысячи агентов на эксперимент нет возможности.

С такими предпосылками обучаться сложнее, но зато легче расширять агента на новые среды.

В отличие от некоторых ранних работ типа Atari или Starcraft 2, здесь сфокусированы именно на 3D physical embodiment. Это либо first-person, либо third-person с видом из-за плеча. Важно, чтобы была возможность богатых и глубоких языковых взаимодействий.

Используются коммерческие игры (Goat Simulator 3, Hydroneer, No Man’s Sky, Satisfactory, Teardown, Valheim, Wobbly Life) и искусственные исследовательские среды на Unity (Construction Lab, Playhouse, ProcTHOR, WorldLab).

В качестве подхода к обучению выбран behavioral cloning, то есть supervised learning на человеческих действиях (клавиатура и мышь) по входным наблюдениям (пиксели экрана). Также в датасет включены языковые инструкции, диалоги и различные аннотации и маркеры успеха или неудачи. В статье есть красивая картинка с иерархической кластеризацией инструкций по эмбеддингам.

Собирали датасет разными способами. Например, записывали игру человека, а потом аннотировали её текстовыми инструкциями. Или в игре с двумя игроками, один играл и всё записывалось, а другой давал ему инструкции. Во время эксперимента ни один человек не пострадал. “The full details of our data collection protocols, including compensation rates, were reviewed and approved by an independent Human Behavioral Research Committee for ethics and privacy. All participants provided informed consent prior to completing tasks and were reimbursed for their time.“

Была какая-то предобработка с фильтрацией низкокачественных данных, ресайзу всего к размеру входа агента, взвешивание и перемешивание наблюдений чтобы приоритизировать наиболее эффективные. Фокусировались на инструкциях, которые могут быть выполнены не более чем за 10 секунд.

Агент использует предобученные модели. Это текстово-картиночная SPARC (SPARse Fine-grained Contrastive Alignment, https://arxiv.org/abs/2401.09865), и предсказательная видео модель Phenaki (https://arxiv.org/abs/2210.02399). Обе дальше файнтюнятся, первая через behavioural cloning, вторая через video prediction. Не понял, что собой представляет текстовый энкодер, кажется, обучается с нуля, хотя это странно -- у Гугла много хороших языковых моделей, которые грех не задействовать.

Внутри есть мультимодальный трансформер и старый добрый Transformer-XL, который смотрит на предыдущие состояния памяти и строит state representation. Эта самая репрезентация состояния дальше отправляется в policy network, производящую действия клавиатурой и мышью для последовательности из 8 действий.

Агент обучается на behavioral cloning, но есть и дополнительная (auxiliary) objective в виде предсказания достижения цели. Используется также Classifier-Free Guidance (CFG, https://arxiv.org/abs/2207.12598) для улучшения text-conditioning. Полиси считается "с" и "без" обусловливания языком, а затем логиты полиси сдвигаются в сторону полученной разности (“с” и “без”):

𝜋𝐶𝐹𝐺 = 𝜋 (image, language) + 𝜆 (𝜋 (image, language) − 𝜋 (image, ·)) .