Что должен уметь по-настоящему умный робот

alt

Источник: Коммерсантъ


Почему память становится ключевым элементом в развитии современных роботов и как она устроена, «Ъ-Науке» рассказывает Егор Черепанов, научный сотрудник лаборатории когнитивных систем ИИ Института AIRI и Центра когнитивного моделирования МФТИ.


— Когда мы говорим «память робота», что мы имеем в виду? Как робот «связывается» с ИИ у него в «голове»?


— Память робота в нашем контексте не означает, что у него где-то лежат воспоминания, похожие на человеческие. Обычно памятью робота мы называем внутреннее состояние модели: набор чисел, векторов или записей, в которых сжата важная информация. Робот связан с этой моделью через цикл управления. Камеры и датчики передают наблюдения, нейросеть обрабатывает их вместе с инструкцией и внутренним состоянием, после чего выдает действие для моторов или манипулятора, которые уже приводят в движение конструкцию — ровер, манипулятор, антропоморфного робота и так далее. На следующем шаге процесс повторяется, но память уже может содержать информацию о том, что робот видел или делал какое-то время назад.


— Почему современным роботам вообще нужна память? Разве недостаточно камер и нейросетей, которые анализируют то, что робот видит?


— Камеры достаточно только тогда, когда вся важная информация действительно находится у робота «перед глазами». Если робот должен взять красный кубик, а красный кубик лежит перед ним, то задача относительно простая: нужно распознать объект и выполнить действие. Но если робот видел нужный объект раньше, а потом объект исчез за дверцей шкафа или был закрыт рукой, текущий кадр уже не содержит ответа. Скажем, вы показали роботу красный кубик, убрали его за ширму, а позже попросили принести именно этот предмет. В этот момент нейросеть без памяти оказывается в положении человека, который проснулся посреди фильма и пытается понять сюжет по одному кадру. Она может прекрасно анализировать то, что видит сейчас, но не знать, что произошло раньше и какая информация из прошлого важна для текущего действия.


— Какие проблемы возникают у робота в реальном мире, если он не умеет помнить прошлые события?


— Робот начинает путаться в фазах задачи. Он может не помнить, добавлял ли уже соль в суп и сколько раз это делал, какой ящик проверял при поиске предмета, какой объект пользователь указал в начале задачи, сколько раз он повторил одно и то же движение или куда он только что переложил какую-то вещь. В коротких демонстрациях это может выглядеть как мелкие ошибки, но в длинных бытовых задачах они быстро накапливаются. Робот может сделать правильное движение здесь и сейчас, но провалить задачу целиком, потому что не понимает, где он находится внутри последовательности действий. Для промышленного манипулятора, который годами повторяет одно и то же движение на конвейере, это не критично. Такая среда обычно жестко задана, полностью наблюдаема и почти не меняется от запуска к запуску. Но бытовой помощник, о котором мы с вами мечтаем, живет в гораздо менее предсказуемом мире. У него предметы исчезают за дверцами, люди меняют планы, вещи оказываются не там, где были минуту назад, а задача может длиться десятки шагов. Без памяти такой робот будет не столько помогать, сколько путаться у вас под ногами.


— Получается, можно сказать, что многие современные агенты создают иллюзию понимания, но не помнят ничего на самом деле?


— Я бы не сказал, что это именно иллюзия понимания. Скорее, современные агенты часто хорошо решают тот класс задач, для которого они и были обучены,— короткие реактивные задачи, где вся нужная информация видна прямо сейчас. Если робот видит кубик, видит коробку и должен переложить один объект в другой, ему не обязательно строить внутри себя сложную модель прошлого. Это не значит, что его успех был «ненастоящим», он действительно умеет решать такие задачи. Просто сейчас мы переходим к другому типу сценариев, где правильное действие зависит уже не только от текущей картинки, но и от истории. И вот там без памяти становится заметно, что хорошее понимание текущей сцены и умение удерживать контекст во времени — это разные способности.


— Почему память в робототехнике и обучении с подкреплением оказалась такой сложной темой? В одной из ваших работ говорится, что под этим словом часто понимают совершенно разные вещи.


— Прежде всего потому, что термин «память» оказался слишком «широким». Им называют и способность агента помнить, что он видел пять шагов назад, и умение удерживать информацию за пределами контекста модели, и способность переносить полученный опыт между разными задачами. Формально все это можно назвать памятью, но по сути это разные способности. Одно дело — помнить цвет кубика в текущем эпизоде, другое — научиться быстрее адаптироваться к новой среде после сотен прошлых попыток. Если не определять эти случаи, легко получить красивую фразу «агент с памятью», но так и не понять, что именно он умеет и чем отличается от других методов. Поэтому мы предлагаем разделять память хотя бы по базовым осям: краткосрочная и долгосрочная, внутри одного эпизода или между задачами, память о фактах и событиях или память о навыках. Без такого разделения легко сравнивать несравнимые вещи и делать слишком громкие выводы.


— Адаптация к новой среде — это про контекст? Кажется, что люди легко удерживают в голове информацию о том, где лежат вещи, что они уже сделали, что собирались сделать дальше. Почему для роботов это оказывается настолько сложной задачей?


— Адаптация к новой среде и удержание контекста связаны, но это не одно и то же. Адаптация — это способность использовать прошлый опыт, чтобы быстрее освоиться в новой ситуации. Удержание контекста — это память внутри текущей задачи: где лежат вещи, что уже было сделано, какая цель поставлена и какой шаг должен быть следующим.


Людям это кажется естественным, потому что мы опираемся не только на зрение, но и на устойчивую модель мира. Мы понимаем, что предметы продолжают существовать, даже если их не видно, а действия могут менять состояние среды, даже если картинка почти не изменилась. Если мы добавили соль в суп, внешне он может выглядеть так же, но состояние уже другое: суп стал более соленым, и действие «посолить» нельзя повторять бесконечно.


Для робота это не очевидно. Если он опирается только на текущий кадр, он может не отличить ситуацию «соль еще не добавляли» от «соль уже добавили два раза». Он получает поток изображений и чисел с датчиков, а из него должен восстановить скрытое состояние мира. Особенно трудно, когда важные изменения нельзя увидеть напрямую, например, соль растворилась, дверца закрылась, предмет оказался за рукой, а результат действия проявится позже.


— А что для робота сложнее всего: помнить объект, помнить последовательность действий или понимать причинно-следственные связи между событиями?


— Обычно проще всего помнить отдельный признак — например, цвет или форму объекта. Сложнее запоминать последовательности событий, потому что в них важны порядок и фазы выполнения действий. Еще сложнее причинно-следственные связи. Например, понять, что объект исчез не случайно, а потому, что робот сам закрыл дверцу или переложил его в другое место.


У современных моделей есть своего рода аналог человеческого «вспомнил как раз в нужный момент». Механизм внимания может обратиться к сохраненному состоянию, когда оно полезно для действия. Однако это не человеческое воспоминание, а обученная операция поиска нужного сигнала среди внутренних представлений. Модель не «вспоминает» в нашем смысле, а вычисляет, какая часть прошлого сейчас помогает выбрать оптимальное действие.


— Почему нам сложно корректно измерять память роботов?


— Потому что разные типы памяти требуют разных тестов. Одно дело — проверить, помнит ли агент один цвет через несколько шагов. Другое — удерживает ли он порядок событий. Третье — может ли он одновременно помнить несколько объектов. Четвертое — понимает ли, как его прошлое действие изменило состояние мира. Если все это назвать одним словом «память» и проверить на одной задаче, получится очень грубая картина. Агент может быть силен в одном типе задач и заметно проигрывать в другом. Поэтому мы с коллегами сделали MIKASA-Robo — бенчмарк для проверки памяти именно в робототехнических задачах. Существующие тесты были полезны, но они чаще проверяли память в абстрактных средах: лабиринтах, играх, простых головоломках. Это хороший способ понять, может ли агент вообще удерживать информацию, но робот на практике сталкивается с другой реальностью. У него есть камеры, манипулятор, гриппер, непрерывные движения, закрытые объекты и физические последствия собственных действий. Нам нужен был тест, где память проверяется не отдельно от тела робота, а прямо внутри задач манипуляции, когда нужно помнить, что было видно раньше, что уже сделано и как это влияет на следующий шаг.


— А как модель понимает, какую информацию нужно сохранить, а какую можно забыть?


— В идеале она учится этому из данных. Если сохранение какого-то признака помогает предсказать правильное действие и уменьшить ошибку, модель постепенно начинает кодировать этот признак в памяти. Но это как раз одна из самых сложных частей. Нейросеть не получает явной инструкции вроде «запомни цвет кубика на 300 шагов вперед». Она должна сама обнаружить, что такой сигнал понадобится ей позже, хотя в момент наблюдения это может быть совсем не очевидно. Поэтому архитектура памяти важна не меньше, чем сам факт ее наличия. Она должна не просто давать место для хранения, но и помогать модели не стереть полезную информацию слишком рано.


— Что значит «переписывать память»?


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


— А есть ли какой-то способ обучить ИИ внутри робота делать краткие заметки вместо хранения всех деталей разговора, как это делаем мы с вами, сделать ему «ежедневник»?


— Такая аналогия вполне уместна, если не воспринимать ее слишком буквально. В одной из наших работ мы как раз исследовали похожую идею и предложили RATE — рекуррентный трансформер с памятью. Мы отталкивались в том числе от работ Айдара Булатова, Юрия Куратова и Михаила Бурцева о рекуррентной памяти в трансформерах. Если упростить, идея RATE заключается в том, чтобы не тащить за собой всю историю целиком, а передавать дальше компактное представление важного прошлого на уровне контекста модели.


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


— Насколько такой подход оказался эффективнее попыток хранить всю историю целиком?


— Главное преимущество здесь не только в качестве, но и в вычислительной цене. Хранить всю историю в контексте трансформера очень дорого, потому что стоимость механизма внимания быстро растет по памяти и времени при увеличении длины последовательности. Компактная память позволяет передавать информацию между шагами без полного просмотра всего прошлого. Это позволяет тратить меньше вычислительных ресурсов, да и в целом очень важно для роботов, в которых модель должна работать быстро, локально и с низкой задержкой, не пересчитывая огромную историю перед каждым движением.


— Где вообще хранится память внутри современных моделей для роботов? Это отдельный модуль, часть нейросети, какая-то хитрая флешка?


— Бывает по-разному. В простейшем варианте памяти вообще нет. Модель принимает текущую картинку с камер и сразу предсказывает действие. В рекуррентных моделях память хранится в скрытом состоянии нейросети. В трансформерах память часто пытаются реализовать через длинный контекст, то есть передать модели как можно больше наблюдений.


В апреле мы с соавторами съездили на ICLR в Бразилию. Одна из четырех работ, которые наша команда представила на конференции, ELMUR, рассматривает другой вариант: память как отдельный набор векторов внутри модели, который живет между сегментами траектории и обновляется по специальному правилу. Главная идея — внешняя память на каждом слое трансформера. У разных слоев трансформера разные роли. Нижние слои чаще работают с более общими признаками, средние могут собирать информацию о состоянии объектов, верхние ближе к выбору действия и смыслу задачи. Если сделать одну общую память, все эти уровни будут конкурировать за одни и те же слоты. В ELMUR память распределена по слоям, чтобы каждый уровень представления мог хранить свое состояние и не мешать другим.


— Насколько длинные зависимости удается удерживать с помощью ELMUR?


— В синтетической задаче T-Maze мы проверяли очень жесткий сценарий, когда модель видит подсказку в начале, а использовать ее должна в конце длинного коридора. ELMUR сохранял успешность на коридорах до миллиона шагов, то есть на горизонте, который примерно в 100 000 раз превышал размер его контекстного окна. Конечно, это не значит, что любая реальная робототехническая зависимость на миллион шагов уже решена, поскольку это результаты на диагностической синтетической задаче, используемой для проверки того, как долго можно хранить 1 бит полезной информации в модели, но как проверка принципа это показывает, что механизм памяти способен переносить информацию гораздо дальше, чем обычный контекст трансформера.


— Есть ли уже сценарии, где подобные механизмы памяти можно применять в реальных роботах, а не только в синтетических задачах?


— Да, таких сценариев много. Уборка, сортировка предметов, поиск объектов, сборка, обслуживание склада. Например, когда робот должен помнить, какие ящики он уже проверил, куда положил инструмент, какую просьбу пользователь дал в начале. Сейчас мы работаем над тем, чтобы внедрить исследованные нами механизмы памяти в современные Visual-Language-Action модели для последующего использования на реальных роботах.


— Как думаете, что появится раньше — роботы с хорошей физической моторикой или роботы с устойчивой долговременной памятью о мире?


— Хорошая моторика появится раньше. Мы уже видим быстрый прогресс в манипуляции, ходьбе, захватах, переносе навыков между объектами. Уже появились роботы, способные заваривать кофе в кофемашине, крутить мелкие гайки, ну а танцы и сальто давно никого не удивляют. Долговременная память о мире сложнее, потому что это не один навык. Нужно хранить опыт, обновлять его, отличать устаревшую информацию от актуальной и использовать ее в нужный момент. Робот может научиться очень крепко и аккуратно брать кофейную чашку раньше, чем научится хорошо запоминать, где эта чашка была вчера, почему ее туда положили и почему вернуть ее нужно именно на это место.


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


— В каком-то смысле такие системы уже существуют. Если говорить о семантической памяти, то есть о знаниях о мире, то она уже лежит в параметрах больших моделей. Модель не хранит конкретную страницу интернета как файл, но в процессе обучения впитывает статистику данных, факты, связи между понятиями, типичные сценарии, язык, визуальные закономерности. Это уже форма долгосрочной памяти, просто не эпизодической, а обобщенной. Если же говорить о памяти конкретного опыта, например «я вчера был в этой квартире и видел, что чашка стояла на полке», то здесь мы пока находимся на более ранней стадии. Если человек умеет хранить эпизоды опыта и использовать их спустя годы, значит, машина тоже сможет. Вопрос скорее в том, как обустроить такую архитектуру и сделать ее стабильной.


— Что в этой области кажется вам наиболее недооцененным направлением исследований, а что, наоборот, сегодня выглядит как хайп?


— До недавнего времени я бы сказал, что недооцененным было само направление изучения роботов с памятью, как раз моя специальность. Долгое время исследовательское поле было сосредоточено на более простых задачах: взять объект, положить объект, выполнить короткую инструкцию по текущей картинке.


Это важные задачи, и их выполнение действительно нужно было довести до хорошего качества, но, когда они начали решаться все лучше и лучше, стало понятно, что следующий барьер лежит уже не только в моторике или распознавании объектов. Наиболее интересным направлением сейчас мне кажется интерпретируемая и управляемая память, то есть память, в которую пользователь может сам загрузить правила, предпочтения или факты и при этом понимать, что робот помнит, а что забыл и почему. Хайпом я бы назвал веру в то, что достаточно просто увеличить контекст модели и проблема памяти исчезнет.


— Если представить бытового робота через 10–15 лет, какую роль в нем будет играть память?


— Конечно же, будет одной из центральных частей системы. Бытовой робот должен помнить устройство квартиры, привычки человека, расположение вещей, уже выполненные поручения, ограничения и предпочтения. Без этого он останется реактивной машиной, которая каждый день видит мир впервые, как Лунтик из детского мультфильма. Хороший бытовой робот не с Луны свалился, он должен понимать, что кружку обычно убирают в конкретный шкаф, что сегодня ее уже мыли, что пользователь просил его не трогать чашку рядом с ноутбуком.


— Какой вопрос в области ИИ в робототехнике сегодня кажется вам самым фундаментальным и пока не имеющим ответа?


— Как научить робота строить устойчивое внутреннее состояние мира, которое одновременно связано с восприятием, действием, языком и долгосрочным опытом. Сейчас мы хорошо продвинулись в распознавании картинок, генерации текста и отдельных роботических навыках. Робот будущего должен не просто реагировать на входные данные, а понимать, что изменилось, что осталось тем же самым, какие его действия к этому привели и что из этого важно для будущего. Пока это открытая проблема, и память является одной из ее ключевых частей.


Отправить комментарий

Новые Старые