Как японцы инвестировали 500 миллионов долларов в ИИ и провалились
В конце 70-х годов XX века правительство Японии запустило невероятный по масштабности проект. На него была выделена огромная сумма денег, за все время проинвестировали около 500 миллионов долларов! Почему в таком случае мы о них ничего не слышим? Потому что этот проект ждал эпический провал! В этой статье разбираюсь, что там на самом деле произошло
Предпосылки
В сфере айти Япония тогда показывала себя хорошо, но японцам было мало второго места — они хотели обогнать США и стать технологическим лидером. А раз хочешь обогнать, нужно инвестировать. Проект получил название “Компьютеры пятого поколения”, и предполагалось, что этот проект станет основой экономического роста Японии на долгие годы вперед.
Поколения компьютеров в то время определяли по элементной базе. Первое поколение — вакуумные лампы, второе поколение — транзисторы, третье — интегральные схемы, ну и четвертое — микропроцессоры. С каждым последующими поколением процессоры становились быстрее, компактнее, и для их использования требовалось меньше энергии.
Японцы же решили, что их процессоры будут построены принципиально на других технологиях:
- Предполагалось, что новый процессор будет работать на модном логическом выводе. В то время не так давно появился язык логического программирования Prolog, и на него возлагались большие надежды.
- К тому же, сказали авторы идеи, компьютеры 5 поколения будут многопроцессорными! Неслыханное по тем временам новшество.
Предполагалось, что разработка таких систем займет 10 лет. План был следующий:
- Начиная с 1978 года на протяжении 3 лет проводим первоначальные исследования;
- Далее 4 года разрабатываем отдельные модули системы;
- Затем за последние 3 года готовим прототипы компьютеров.
Так почему же план не сработал?
Во-первых, предполагалось, что компьютеры будут работать на языке логического вывода Prolog. Это такой хитрый язык программирования, программы на котором пишутся в императивном стиле.
💻 В классическом, императивном программировании, программа для считывания массива — это серия операций:
- Создай массив и записывай туда числа, которые пользователь введет с клавиатуры
- Создай пустую переменную, и затем прибавь к ней каждое из чисел массива;
- Выведи то, что лежит в переменной.
Компьютер понимает, как выполнять каждую из них, и тупо выполняет эти действия одно за другим.
📄 В свою очередь, декларативный стиль предполагает, что программист говорит программе то, как должен выглядеть конечный результат, а уже потом она сама “выводит” решение. В случае языка Prolog, программа для суммирования выглядела бы примерно так:
- Факт 1: массив состоит из ”головы” и ”хвоста”. Голова — это первый его элемент, а хвост — это все остальные
- Факт 2: “сумма чисел массива М” — это такое число, которое будет равно сумме Г и «сумме чисел массива Х», если Г и Х — это голова и хвост массива М
- Теперь ответь на запрос, чему равна “сумма чисел массива, введенного с клавиатуры”
Последняя команда запускает программу логического вывода, которая проходится по всем фактам, которые загружены в программу, и пытается ответить на запрос пользователя.
Писать такие программы сильно сложнее — нужно особым образом сломать мозг, чтобы перестроить задачу с классического программирования на логическое, на это уходит много времени. Попробуйте сами, гарантирую, будете озадачены.
Короче, с софтом получилась беда, программы было дико сложно разрабатывать, так еще и не все из них удавалось переложить с классического подхода на логический.
Так, хорошо, а что с железом?
Японцам мало было создать просто хороший логический процессор, нужно было обязательно сделать его многоядерным. В то время у разработчиков уже было понимание, что иметь несколько ядер лучше, чем одно, но стабильных прототипов все еще не было. Японцы сразу решили — наш компьютер будет с самого начала многоядерным, и логический вывод у нас будет работать параллельно. Разработчики на это ответили - ДА &@#% $!
Почему так? Да потому что мало того что под Prolog было неадекватно сложно программировать, так он еще и не проектировался для параллельных процессоров! Механизм логического вывода, который там использовался, не предполагал такого использования — и пришлось разрабатывать новый язык (исходники Prolog были закрытыми), и решать кучу задач по его оптимизации…
В итоге спустя 10 лет получили машину, которая худо-бедно могла повторять результаты, которые показывали хоть и мощные, но совершенно типовые компьютеры того времени. А потом подъехали по-настоящему параллельные процессоры, и проекту совсем стало худо.
Лучше всего эпический провал описывает одна из цитат с конференции, которую провели в 1988 году по завершении одного из этапов проекта:
Большинство представленных на конференции приложений были интересны потому, что они были «X, сделанным на логическом программировании» — а не потому, что они были «X, сделанным лучше, чем раньше»
Грустно, и точка.
Ретроспектива: так почему все-таки все оказалось так плохо?
Причин тому несколько:
- В отличие от исследователей из американской DARPA, которая давала немного денег, но зато на разные проекты, японцы решили пойти ва-банк. Все просто решили, что будут делать параллельные компьютеры на Прологе — но никто не задумался, может не стоит выделять столь огромные бюджеты только лишь на одну идею?
- Вторая проблема — это менталитет японцев. Когда стало понятно, что проект “не летит”, нужно было сообщить руководству, что проект не летит, и предложить изменить концепцию. В то время в японской культуре такое поведение считалось абсолютно неприемлемым, и лучше всего это иллюстрируют слова Кадзухиро Фучи, который отвечал за весь проект компьютеров 5 поколения:
Японцы — это народ, который решает те задачи, которые на него возложены, лучшим образом
Заметьте, не ставит задачи лучшим образом, не оценивает их перспективы, а именно решает. Если начальник сказал, что пишем на Прологе — значит, пишем, ему лучше знать.
Если бы в Японии тех лет была распространена культура индивидуализма, если бы поощрялась частная инициатива, и если бы исполнители оценивали трезво результаты своей работы — возможно, в таком случае удалось бы быстро исправить проблему. Но получилось то, что получилось, и словосочетание “компьютеры 5 поколения” навсегда закрепилось в истории как пример того, как можно потерять много денег меньше чем за 10 лет.
👉 Мораль из этой истории будет простая: не стоит класть все яйца в одну корзину, даже если ты могучая страна с развитой экономикой и огромными ресурсами. Особенно не стоит, если эта корзина окажется дырявой, а тебе об этом будет некому сказать.
Источники информации для глубокого погружения:
- The History of Artificial Intelligence — обзорная статья от Вашингтонского университета
— The Japanese Challenge — Описание проекта по состоянию на 1984-год в New York Times
P. S.: А еще у меня есть Telegram-канал) Если вам интересен подобный контент — подписывайтесь, туда пишу в первую очередь) Ссылка: https://t. me/skrn_ai