Как создать безопасный ИИ? #6. Безопасное исследование [Robert Miles]
[музыка] Ну вот и последнее видео про статью, конкретные проблемы безопасности, и вам не обязательно смотреть предыдущее. Но если что, я оставлю ссылку в описании.
Сегодня поговорим о так называемом безопасном исследовании. Я уже делал ролик о проблеме исследования и использования, с ней сталкивается любой агент.
Сразу две задачи: разобраться, за что дают награду, и сделать то, за что дают награду. Представьте, что вы в ресторане, в котором уже бывали несколько раз до этого. Можно заказать блюдо, которое вам знакомо и понравилось, то есть использовать имеющиеся знания, либо попросить что-то новое, с чем ещё не знакомы, исследовать, чтобы получить больше знаний.
Есть риск потратить уйму времени непонятно на какую еду, вместо того чтобы... Но если совсем не экспериментировать, можно упустить что-то хорошее.
Проблема — найти баланс. При обучении с подкреплением проще всего делать то, что, на ваш взгляд, принесёт наибольшую награду. Такой подход вряд ли окажется самым эффективным. Агент просто будет повторять первое действие, за которое получил награду, снова и снова, как человек, который каждый раз заказывает в ресторане одно и то же, даже не зная, что есть в меню.
О способе избежать такой ситуации — задать некую частоту, с которой агент будет исследовать новые варианты. Пусть выполняет самые эффективные действия в 99% случаев, а в одном проценте выбирает что-то случайное. Такой подход максимизирует вознаграждение, но и эксперименты допускает.
Решение примитивное, и думаю, вы сами понимаете, насколько это небезопасно. Представьте машину с автопилотом, которая обычно всё делает с учётом ситуации, но в одном проценте случаев решает крутануть руль в случайную сторону или нажать на одну из педалей, просто чтобы посмотреть, что получится. И, конечно, узнает что-то новое. Но какой ценой?
Как видите, это небезопасно. Это довольно простой подход. Есть и другие, посложнее. Например, можно попробовать сделать систему излишне оптимистичной. Перед совершением неизученных действий система прогнозирует, какую награду сможет получить. Обычно это примерно ноль, но показатель можно намеренно завысить, чтобы искусственный интеллект испытывал иррациональный оптимизм к новому и считал любое новое хорошим.
Не безопасно. Надо ли уточнять, что при решении сложных задач стратегия случайных действий, также известная как метод научного тыка, работает не очень эффективно. Вряд ли получится найти новое эффективное решение сложной задачи, добавляя случайные вариации к вашему обычному подходу. Другой вариант — на какое-то время изменить заданную цель, чтобы позволить системе прийти в состояния, в которых она ранее не была.
Представьте, вы учитесь играть в шахматы против компьютера, и ваша обычная стратегия мало чем отличается от другой. Вы решаете в этой партии: "Я попробую поиграть по-новому, постараюсь забрать как можно больше фигур противника".
А в следующей — "пройти фигурами как можно дальше". А потом — "забрать ферзя любой ценой", а потом ещё что-нибудь. На некоторое время вы отходите от вашей лучшей стратегии и, в результате, можете оказаться в игровых ситуациях, которых раньше не видели, узнать что-то новое об игре.
А в долгосрочной перспективе повысить ваше мастерство. Ненадолго сменив цель, можно изучить новые закоулки пространства возможностей, куда лучше, чем совершая случайные ходы. Однако применение такого подхода в реальности ещё опаснее, чем если бы он был изредка.
Если роботу-уборщику, в исследовательских целях, сделает что-то случайное, то, скорее всего, он выполнит задачу просто чуть менее эффективно. В худшем случае он что-нибудь уронит или сам упадёт. Да, это несколько небезопасно.
Теперь представьте, что он начинает целенаправленно выполнять какую-то случайную задачу в рамках исследования. Он выбирает новую цель и выстраивает сложный многоэтапный план её достижения. Это может быть куда опаснее, чем набор случайных действий. Проблема не в случайности, а в том, что новая цель отличается от основной, даже если она будет не случайной. Проблема останется.
Представьте систему, в которой есть специальная функция, напоминающая, что одна из задач — не дать разбиться в вазе. Вот только система никогда не видела, как бьются вазы, и она очень слабо представляет, что это значит. Можно исследовать этот вопрос, временно изменив цель, так чтобы за битьё вазы награждали.
Система узнает, что вообще значит разбить вазу. Временная замена целей подходит для обучения и исследования, но это не безопасно.
Те примитивные методы исследования, которые используются сегодня в реальном мире, выпускать не стоит. Впрочем, пример с вазой не самый удачный. Систему, которая способна усомниться в полноте собственных знаний, вряд ли придётся заставлять что-то исследовать, изменяя основную цель. Исследование и так будет инструментальной целью такой системы, как и любого достаточно умного агента. Это называется инструментальная сходимость.
Я уже об этом рассказывал. Если коротко, общий агент будет исследовать мир в рамках своей штатной работы, а не потому, что это вшитой код. Такая система найдёт способ изучить вазы, не разбивая их в процессе. Например, прочитать книгу или посмотреть и проанализировать видео.
Скорее всего, исследование будет только для относительно примитивных систем. В реальном мире я говорю про современные системы и их ближайших потомков. Общий искусственный интеллект из далёкого будущего вполне справится, так как проблема актуальна. Специалисты её уже неплохо изучили и много чего придумали.
И как же нам обеспечить безопасное исследование? Первый вариант — определить, какие опасные действия может предпринять система при исследовании, и запретить их. Вот есть квадрокоптер под управлением искусственного интеллекта, и вы хотите выяснить, на какие манёвры он способен.
Но если система начнёт выяснять, что будет, если врезаться в землю, о безопасности речи и быть не может. Разумно было бы позволить дрону изучать любые манёвры, но встроить дополнительную систему безопасности, которая, если дрон окажется слишком низко, перехватит управление и поднимет аппарат на безопасную высоту, а затем вернёт контроль системе обучения.
Примерно как в автошколе на учебных машинах с педалями для инструктора. На примере, я, чтобы не усложнять, говорю о запрете определённых участков физического пространства, в котором находится квадрокоптер.
Но этот подход гораздо шире, ведь на самом деле мы запрещаем определённые сочетания параметров агента и среды. Важно не столько физическое пространство, сколько абстрактное пространство всевозможных сочетаний. И система безопасности перехватывает управление, когда ИИ движется в опасной области этого пространства.
Такой подход может сработать при условии, что вы знаете все опасные области и как их избежать. Ладно, в землю мы больше не врезаемся, но есть ещё и деревья. Придётся следить и за ними, а также разработать маневры для ухода от столкновения. Чем сложнее задача, тем больше возникает нюансов, которые надо продумать заранее и объяснить машине.
Поскольку перечислить все опасные области трудно, можно попробовать обратное. Перечислить безопасное. Говорим: безопасно летать вот здесь, выше любых деревьев и домов, но не слишком высоко, чтобы не встретить низколетящие самолёты.
И оставайся в границах, отведённой для полёта площадки. Это пространство считается безопасным. Дрон будет исследовать свои возможности в этой области, а если вылетит за её границы, система безопасности перехватит управление и вернёт дрон домой. Это удобнее, чем описывать все небезопасные зоны.
Не надо гадать, какая ещё неприятность может случиться. Достаточно задать зону безопасности. Проблема в том, что ваша оценка безопасности пространства несовершенна. Повторюсь: так как это не физическое пространство, а пространство параметров.
Чем сложнее система, тем их больше, а значит, растёт и это пространство. Доля параметров, за безопасность которых мы можем поручиться, уменьшается относительно общего их числа. Возможности системы оказываются ограничены крошечной областью безопасности, которой вы можете гарантировать.
Если бездумно её расширять, есть риск разрешить системе потенциально опасные конфигурации. Если оставить всё как есть, система не раскроет свой потенциал. Множество эффективных стратегий останутся неизученными, потому что они лежат вне одобренного нами пространства, хотя сами вполне безопасны.
Есть и совсем радикальный подход, где мы показываем эталонный пример и просим систему придерживаться его как можно точнее, разрешив небольшие отклонения. Но пытаясь скопировать человека, система вряд ли его превзойдёт.
Так мы избавились от небезопасного исследования почти полностью, запретив его. Вот такой баланс между функционалом и безопасностью. Ладно, что ещё можно сделать?
Довольно широко применяется человеческий надзор. В машине с автопилотом сидит человек, который должен перехватить управление. В теории. Так пусть заодно принимает решение, что системе можно исследовать, а что нет.
Но, как я говорил в прошлом видео, этот подход плохо масштабируется. Если агент захочет изучить миллион вещей, человек будет просто неэффективен. Возможно, системе понадобится принимать решение с нечеловеческой скоростью, когда ответ надо дать за долю секунды.
От человека толку никакого, он слишком медленный. Вероятно, если улучшить человеческий надзор, это повысит безопасность исследований.
Последнее на сегодня — симуляции. Это очень популярный и эффективный метод. Ничего страшного, если с симуляцией пойдёт не по плану, и виртуальный дрон врежется в чью-то виртуальную голову.
О проблемах такого подхода можно сделать отдельное видео. Но если в двух словах, то всегда есть нюансы. Учесть всё и сделать симуляцию неотличимой от реальности — задача непростая, и чем сложнее решаемая задача, тем больше нюансов.
Обучение на симуляции ограничивает возможности вашего агента. Однажды учёные решили выяснить, способен ли эволюционный алгоритм создать генератор периодических сигналов с заданной частотой. Так вот, их алгоритм создал нечто странное.
Это не был генератор сигналов, но каким-то образом с задачей устройство справлялось. На ошибки в симуляции не спеши, ведь это была не симуляция. Вот на реальной электронной схеме алгоритм делал ровно то, что от него хотели, но было непонятно, каким образом.
Разобравшись, учёные поняли, что алгоритм собирал радиоприёмник, который ловил очень слабый сигнал от электронного устройства, стоявшего рядом с компьютером, и он выдавал нужный сигнал. Это прекрасный пример того, что нетривиальные решения поставленной задачи порой просто невозможно получить в симуляции.
Кто бы додумался добавить туда наводки и посторонние шумы? В симуляции система изучит только те аспекты реальности, которые мы посчитали достаточно важными, чтобы их воссоздать. Вряд ли найдёт решения, до которых мы не догадались бы сами.
Но ведь в этом одна из задач. И это только часть проблемы. Мало того, что в симуляции может не быть каких-то важных аспектов нашей реальности, так ещё в ней могут быть явления, которых не существует. Ошибки — это даже хуже.
Достаточно умный агент будет специально искать баги в коде, потому что очень часто они позволяют получить наилучший результат. Если у вас в симуляторе физики есть ошибки, то велика вероятность, что с их помощью можно нарушать фундаментальные законы и, например, получать энергию из ничего.
Проблема даже не в том, что реальность симулируется недостаточно точно. Проблема в том, что самые интересные для нас решения лежат в той части пространства параметров, где реальность симулирует наименее точно.
Нельзя быть уверенным, что результат симуляции будет безопасным в реальном мире, особенно если речь идёт о сверхрешениях, которые зачастую лежат на границах допустимого.
Подведём итог: исследование — это всегда риск, потому что в процессе мы буквально пробуем сделать что-то, последствий чего не понимаем. С рисками надо работать, их можно минимизировать. Тогда и можно будет исследовать, не рискуя опасности.
Переведено и озвучено студией Верт Дайдер.