Урок, который мы можем извлечь из всех этих историй, о важности того, что принято называть тестированием, или проверкой программного обеспечения, задача которого заключается в том, чтобы установленный софт полностью отвечал всем необходимым требованием. Чем больше жизней и ресурсов поставлено на карту, тем выше должна быть наша уверенность в том, что программное обеспечение будет работать как надо. К счастью, искусственный интеллект может помочь автоматизировать и улучшить процесс тестирования. Например, ядро универсальной операционной системы seL4 недавно было подвергнуто всесторонней математической проверке, чтобы дать надежную гарантию от обрушений системы и выполнения команд, угрожающих безопасности. И хотя у нее еще нет таких же бантиков, как у MS Windows или у MacOS, работая с ней, вы можете быть уверены, что не увидите ни синего экрана смерти, ни радужного колеса судьбы. Агентство перспективных исследований министерства обороны США (DARPA) профинансировало разработку серии высоконадежных программных средств для кибер-военных систем с открытым источником (HACMS), каждое из которых проверяемо надежно. Чтобы ввести такие средства в широкое обращение, надо сделать их достаточно мощными и простыми в использовании. Еще одна сложность заключается в том, что тестирование программного обеспечения должно будет проводиться при переносе его в роботов или какие-то другие новые среды, а само традиционное программное обеспечение будет заменяться системами с искусственным интеллектом, которые способны учиться, а следовательно, изменять свое поведение, как говорилось в главе 2.
Урок, который мы можем извлечь из всех этих историй, о важности того, что принято называть тестированием, или проверкой программного обеспечения, задача которого заключается в том, чтобы установленный софт полностью отвечал всем необходимым требованием. Чем больше жизней и ресурсов поставлено на карту, тем выше должна быть наша уверенность в том, что программное обеспечение будет работать как надо. К счастью, искусственный интеллект может помочь автоматизировать и улучшить процесс тестирования. Например, ядро универсальной операционной системы seL4 недавно было подвергнуто всесторонней математической проверке, чтобы дать надежную гарантию от обрушений системы и выполнения команд, угрожающих безопасности. И хотя у нее еще нет таких же бантиков, как у MS Windows или у MacOS, работая с ней, вы можете быть уверены, что не увидите ни синего экрана смерти, ни радужного колеса судьбы. Агентство перспективных исследований министерства обороны США (DARPA) профинансировало разработку серии высоконадежных программных средств для кибер-военных систем с открытым источником (HACMS), каждое из которых проверяемо надежно. Чтобы ввести такие средства в широкое обращение, надо сделать их достаточно мощными и простыми в использовании. Еще одна сложность заключается в том, что тестирование программного обеспечения должно будет проводиться при переносе его в роботов или какие-то другие новые среды, а само традиционное программное обеспечение будет заменяться системами с искусственным интеллектом, которые способны учиться, а следовательно, изменять свое поведение, как говорилось в главе 2.
Искусственный интеллект в сфере финансовФинансы это еще одна область, которая была преобразована информационной технологией, позволяющей эффективно перераспределять ресурсы по всему миру со скоростью света и обеспечивать доступное финансирование для всего на свете от ипотечных компаний до стартапов. Прогресс в развитии систем с искусственным интеллектом, вероятно, предоставит в будущем еще большие возможности для получения прибылей в финансовых сделках: большинство решений о продаже/покупке акций на фондовых рынках сейчас принимаются компьютерами автоматически, и моих выпускников из MIT каждый год искушают астрономическими стартовыми окладами, предлагая поработать над улучшением продажных алгоритмов.
Тестирование исключительно важно и для финансового программного обеспечения, в чем американская фирма Knight Capital могла убедиться на своем горьком опыте 1 августа 2012 года, потеряв 440 миллионов долларов за 45 минут после установки непротестированного продажного софта{19}. Знаменитый триллиондолларовый обвал 6 мая 2010 года, известный как Черный вторник или Flash Crash, заслуживает особого внимания по другой причине. Хотя в этот день на протяжении получаса шли массовые компьютерные сбои, во время которых цены на акции некоторых крупных компаний, вроде Procter & Gamble, колебались от пенни до 100 000 долларов США, проблема была вызвана не глюками в программах и не ошибками в работе компьютеров, которые можно было бы выявить с помощью тестирования. Причина заключалась в обманутых ожиданиях: автоматизированные продажные программы многих компаний должны были работать в непредвиденной ситуации, когда предпосылки их работы оказались неверны например, неверной оказалась предпосылка о том, что, если фондовый компьютер сообщает цену акции в один цент, то это означает, что цена акции действительно один цент.
Черный вторник наглядно продемонстрировал важность того, что в информатике принято называть валидацией: если при тестировании задается вопрос: Правильно ли построена система?, то при валидации вопрос ставится так: Правильная ли система построена?{20}. Например, не строилась ли система исходя из предпосылок, которые не всегда могут быть действительными? Если это так, то каким образом можно улучшить ситуацию с неопределенностью?
Искусственный интеллект для производстваНет необходимости говорить, что искусственный интеллект открывает большие возможности для улучшения производства, управляя роботами, использование которых повышает эффективность и точность. Неустанные в своем совершенствовании 3D-принтеры могут теперь создавать прототипы всего чего угодно, от офисных зданий до микромеханических устройств размером с крупицу соли{21}. В то время как огромные промышленные роботы строят автомобили и самолеты, компактные и недорогие фрезерные станки с компьютерным управлением и другие подобные им устройства благодаря их доступности попадают не только на крупные заводы, но их могут себе позволить и тысячи частных энтузиастов, мейкеров, по всему миру, которые в своих маленьких коммунальных мастерских фаб-лабах материализуют свои идеи{22}. Но чем больше роботов нас окружает, тем важнее, чтобы их программное обеспечение подвергалось всесторонней проверке тестированию и валидации. Первым человеком, которого, как известно, убил робот, был Роберт Уильямс, рабочий на заводе Форд в городе Флэт-Рок штата Мичиган. В 1979 году вышел из строя робот, который должен был доставлять запчасти со склада, и Роберт Уильямс отправился за запчастями сам. Внезапно робот бесшумно заработал и разбил ему голову, и продолжал бить его об стену в течение 30 минут, пока другие рабочие не узнали о происшедшем{23}. Следующая жертва робота Кэндзи Урада, инженер-эксплуатационник с завода Кавасаки в японском городе Акаси. В 1981 году, занимаясь сломанным роботом, он случайно задел выключатель и был насмерть раздавлен гидравлической рукой робота{24}. В 2015 году 22-летний подрядчик на одном из заводов Фольксваген в немецком Баунтале собирал робота, способного подбирать автомобильные запчасти и устанавливать их на место. Но что-то случилось, и робот схватил его самого и раздавил насмерть об металлическую плиту{25}.
Черный вторник наглядно продемонстрировал важность того, что в информатике принято называть валидацией: если при тестировании задается вопрос: Правильно ли построена система?, то при валидации вопрос ставится так: Правильная ли система построена?{20}. Например, не строилась ли система исходя из предпосылок, которые не всегда могут быть действительными? Если это так, то каким образом можно улучшить ситуацию с неопределенностью?
Искусственный интеллект для производстваНет необходимости говорить, что искусственный интеллект открывает большие возможности для улучшения производства, управляя роботами, использование которых повышает эффективность и точность. Неустанные в своем совершенствовании 3D-принтеры могут теперь создавать прототипы всего чего угодно, от офисных зданий до микромеханических устройств размером с крупицу соли{21}. В то время как огромные промышленные роботы строят автомобили и самолеты, компактные и недорогие фрезерные станки с компьютерным управлением и другие подобные им устройства благодаря их доступности попадают не только на крупные заводы, но их могут себе позволить и тысячи частных энтузиастов, мейкеров, по всему миру, которые в своих маленьких коммунальных мастерских фаб-лабах материализуют свои идеи{22}. Но чем больше роботов нас окружает, тем важнее, чтобы их программное обеспечение подвергалось всесторонней проверке тестированию и валидации. Первым человеком, которого, как известно, убил робот, был Роберт Уильямс, рабочий на заводе Форд в городе Флэт-Рок штата Мичиган. В 1979 году вышел из строя робот, который должен был доставлять запчасти со склада, и Роберт Уильямс отправился за запчастями сам. Внезапно робот бесшумно заработал и разбил ему голову, и продолжал бить его об стену в течение 30 минут, пока другие рабочие не узнали о происшедшем{23}. Следующая жертва робота Кэндзи Урада, инженер-эксплуатационник с завода Кавасаки в японском городе Акаси. В 1981 году, занимаясь сломанным роботом, он случайно задел выключатель и был насмерть раздавлен гидравлической рукой робота{24}. В 2015 году 22-летний подрядчик на одном из заводов Фольксваген в немецком Баунтале собирал робота, способного подбирать автомобильные запчасти и устанавливать их на место. Но что-то случилось, и робот схватил его самого и раздавил насмерть об металлическую плиту{25}.
Хотя каждое подобное событие трагедия, важно отметить, что они составляют ничтожно малую часть всех несчастных случаев на производстве. Более того, общее их число сократилось с развитием технологий, а не выросло: в США их количество составило 14 000 смертей в 1970 году и 4 821 в 2014 году{26}. Все три вышеупомянутых трагедии показывают, что добавление интеллекта неразумным машинам должно способствовать дальнейшему росту промышленной безопасности, если научить роботов осторожнее вести себя по отношению к людям. Всех трех аварий можно было бы избежать, если бы была использована валидация: роботы причинили вред не из-за глюков и не по причине своей злобы, а просто потому, что предпосылки их работы оказались не валидны: что людей тут нет или что люди это разновидность запчасти.