Мнение1 сентября 2017

Талантливый неблагодарный ученик

Игорь Агамирзян
Игорь Агамирзян, Вице-президент НИУ ВШЭ
Можем ли мы быть уверены, что обученная нейронная сеть поведет себя именно так, как мы от нее этого ожидаем? Ответ: не можем

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

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

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

И вот сейчас, буквально последние год-два, складывается впечатление, что тренд снова изменился — Сеть качнулась в сторону большей децентрализации. Появился даже специальный термин edge computing, который можно перевести как «вычисления на краю Сети». Интеллектуальные ресурсы Сети на новом уровне технологического развития начинают концентрироваться на ее оконечных устройствах.

Эта тенденция стала все отчетливее проявляться по мере внедрения киберфизических систем и интернета вещей (IoT). «Умные вещи» становятся все более и более умными, и интеллект им необходим в первую очередь в тех случаях, когда они функционируют в условиях реального времени. Если для пользователя, сидящего за компьютером, время реакции сервера в сети не так критично, то минимальное запаздывание при работе системы роботизированного управления на производстве или на транспорте чревато аварией или катастрофой.

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

И это, вообще говоря, очень серьезный вызов для компьютерной науки. Мы уже освоили достаточно эффективную параллельную модель вычислений для гомогенных систем. К этим системам относятся суперкомпьютеры, центры обработки данных, те же самые облака. А сейчас архитектура Cети смещается к очень сильно гетерогенной распределенной системе, причем гетерогенность возникает на всех уровнях. Если в вычислительных системах 1990–2000-х годов серверы и клиенты имели, по крайней мере, близкую архитектуру, базирующуюся на интеловском процессоре и, в принципе, одни и те же программы могли исполняться и там и там, то сегодня подавляющее большинство клиентов в мире — это вовсе не интеловские процессоры, а ARM, а в интернете вещей мы имеем дело с принципиально иной архитектурой оконечных устройств, в общем-то не самым лучшим образом обеспечивающей переносимость и совместимость программ.

На следующем логическом уровне мы имеем разные операционные системы. Мы привыкли уже к тому, что у нас есть Android, есть iOS и они функционально достаточно близки. Но программы, созданные для каждой из них, с трудом переносятся на другую.

В последние пару лет очень активно развиваются мобильные графические процессоры, которые используются уже не для работы с графикой, а в первую очередь для вычислений на нейронных сетях, которые являются основой всего искусственного интеллекта (Artificial intelligenceAI) в современном понимании.

Практически весь набор научных моделей и технологических решений для современного понимания искусственного интеллекта — это разработки конца 1950-х — начала 1960-х годов. Этот теоретический задел долго невозможно было реализовать на практике в достаточном объеме из-за отсутствия необходимой ресурсной базы: вычислительных мощностей, скоростей, объемов памяти, скорости передачи информации и т. п. Но эти ресурсы постепенно нарастали, и сегодня количественные изменения дают новое качество: мы являемся свидетелями революционных изменений в развитии искусственного интеллекта. Прежде всего это взрывное развитие направлений, связанных с глубинным обучением (deep learning).

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

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

Это является следствием того, что в программировании объемы созданных систем по сложности давно превысили все когда-либо созданное человеком в материальном мире. Более того, сейчас активнейшим образом развивается моделирование цифровых двойников (digital twins), когда физический объект, вплоть до уровня самолета или другого сложного артефакта, моделируется полностью в цифровом виде, и уже этот цифровой двойник тестируется.

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

Понятно, что риски, возникающие при революционном изменении цифровой техносферы, переживаемом человечеством сегодня, весьма велики. Точнее говоря, они не вполне определенны.

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

Очевидно, что некоторые из существующих рисков будут сняты. Подобно тому как с появлением автомобилей на порядки уменьшился риск сломать шею, упав с лошади, внедрение беспилотных транспортных систем на суше и в воздухе обнулит вероятность аварий на автотрассах и в авиаперелетах по вине пресловутого человеческого фактора. А ведь именно человеческий фактор является гораздо более значимым фактором риска, чем собственно технический объект, которым человек управляет.

С другой стороны, появятся новые риски, которые мы сегодня не просто не вполне осознаем, а скорее, о них даже не догадываемся. Задумайтесь, к примеру, а как мы, собственно, можем быть уверены, что обученная нейронная сеть во всех случаях поведет себя так, как мы бы этого ожидали? Ответ: никак. Уровень сложности большой обученной нейронной сети необозрим для человека.

К тому же процесс ускоряется. То, что пятьдесят лет назад могло занять десятилетия, сегодня происходит за год. Горизонт стремительно приближается. Вся теория технологической сингулярности базируется на этом. Мы живем в ситуации экспоненциального роста количества объектов и, соответственно, взаимосвязей между ними. Процесс этот рано или поздно должен во что-то превратиться. Возможно, грядет эволюционное изменение человеческой цивилизации, которое будет иметь глобальные последствия.

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

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

Мнения авторов, опубликованные в этой рубрике, могут не совпадать с точкой зрения редакции.

Наверх