Знаете ли вы, в чем ошибка разработчиков ПО управления знаниями, экспертных систем и средств искусственного интеллекта (ИИ)? В том, что они игнорируют естественный ход эволюции, простой и понятный каждому школьнику.
Прежде чем компьютеры обретут интеллект, они должны хотя бы ожить. Конечно, поначалу это будет дикая, хаотичная, неуправляемая жизнь. Но постепенно человек сможет провести селекцию нужных видов, приручить и “одомашнить” машины и, наконец, научить их уму-разуму и профессиональным навыкам. Вспомните, дорогой читатель, как вы воспитываете и учите собственных детей.
“Опять забыл оперативное забывающее устройство установить!”
Разве можно перепрыгивать через этапы эволюции?! Идея спроектировать и построить законченную систему ИИ схожа с желанием женщины родить ребенка, который сразу начнет разговаривать, читать и писать.
Вы замечаете, уважаемые пользователи, что зарождающаяся компьютерная жизнь уже вовсю проявляет себя? Каждый владелец современного персонального компьютера знает, что его машина имеет особый характер, не такой, как у всех других. Что-то она любит и делает с удовольствием, что-то выполняет только под вашим чутким надзором, а что-то отказывается делать наотрез. У меня, например, был компьютер, который терпеть не мог перезагружаться из Windows в режиме MS-DOS, хотя при запуске сразу в MS-DOS работал без замечаний. Еще бы, кому понравится, если его лишат всех этих красивых разноцветных одежд и украшений в виде экранных окон, полос прокрутки и пиктограмм!
Дикая компьютерная жизнь проявляется в “случайных” сбоях и зависаниях системы, к которым мы все давно уже привыкли. Кстати, сотрудники тестовой лаборатории PC Week скажут вам, что если пять-семь лет назад неспособность компьютера выполнить хотя бы один стандартный тест рассматривалась как его неисправность и приводила к снятию с испытаний, то сегодня некоторые тесты приходится запускать многократно, лишь бы упрямая машина их завершила. Где та несокрушимая стабильность и надежность системы, что обещали разработчики Windows 2000 и XP?
Давайте попробуем понять, как внутри современных компьютерных систем зарождается жизнь. Начнем с процессора. В последних версиях микросхем Athlon XP и Pentium 4 содержится более 50 млн. транзисторов. Доскональное их тестирование проводится лишь один раз - перед запуском микросхем в массовое производство и длится около полутора месяцев, а каждый серийно производимый образец проверяется несколько минут, не более. Смею вас заверить, что никто не даст вам полной гарантии, что все транзисторы в процессоре купленного вами новенького компьютера совершенно исправны. В лучшем случае назовут лишь некие теоретические оценки вероятности дефектов, полученные статистическими методами.
Учтите также возможность возникновения неисправностей и сбоев в чипсете и периферийных устройствах. Откройте документацию на накопитель CD-ROM, и вы найдете там оценку вероятности ошибки считывания данных с компакт-диска.
Есть ли в вашем ПК схемы исправления ошибок памяти или хотя бы биты контроля четности? Первые модели компьютеров IBM PC имели эти биты и к тому же были снабжены специальными цепями, которые вызывали немаскируемое прерывание и полностью останавливали систему в случае ошибки считывания информации из памяти. В начале 90-х годов подобные схемы были исключены не только из потребительских, но и из бизнес-ПК. Сегодня коррекция ошибок предусматривается лишь в серверах и рабочих станциях для особо ответственных задач.
Вы видели когда-нибудь осциллограммы сигналов на системной шине процессора Pentium 4 или на графической шине AGP 4x или 8x? Эти осциллограммы весьма далеки от классических картинок из учебников по цифровой технике с четкими переходами между уровнями нуля и единицы, скорее они напоминают поверхность хаотично волнующегося моря. Можете не сомневаться, что разработчики процессоров, готовясь к переводу системных шин на частоту 800 МГц, пользуются статистическими моделями процесса передачи сигналов.
Ошибки в программном обеспечении - тема особая. Мы не будем долго на ней задерживаться. Скажу только: если вы примете мою точку зрения на развитие систем ИИ, то поймете, что современные технологии отладки ПО - это технологии убийства живого начала, а цель структурного программирования - создание мертвых программ-автоматов с полностью предсказуемым поведением.
Разработчики ОС, с одной стороны, всячески стараются живое начало искоренить, а с другой - вынуждены вводить элементы иммунитета и самообучения. Так, Windows при установке и загрузке ведет многочисленные LOG-файлы, в которых отмечает результаты запуска каждого программного модуля, в частности драйверов и DLL-библиотек. Если после подключения драйвера машина зависнет, система при повторном старте не допустит его запуска.
Похвально, что корпорация Microsoft пытается предоставить пользователям чистый сертифицированный “генофонд” драйверов, проверяя их и визируя своей цифровой подписью. Однако “селекционная работа на местах” почти целиком лежит на плечах пользователя. Так, решения об обновлении или восстановлении драйверов для периферийных устройств в Windows XP каждый должен принимать сам.
Антивирусная защита сегодня находится на высоконаучном (читай: низкоэффективном) уровне: сканирование файлов похоже на проверку ДНК клеток, а удаление вирусов напоминает хирургическое вмешательство. Неудивительно, что “пациент” в момент лечения практически неработоспособен. Надеюсь, вы понимаете, что для эффективной защиты от паразитов компьютеры должны развить собственный иммунитет?
Чего же нам ждать в будущем? Давайте перестанем прятать голову в песок, смело откроем глаза и честно признаемся, что компьютеры уже становятся живыми.
Разработчикам аппаратного обеспечения следует на системном уровне вводить резервирующие блоки, подобные парным органам человеческого организма (почкам, легким и т. д.), а на уровне микроархитектуры - создавать распределенные отказоустойчивые структуры (как, например, клетки печени: даже если каждая третья клетка заражена или мертва, печень в целом все же выполняет свою функцию).
Производители ПО должны разработать и внедрить принципиально новые подходы к программированию, а также заняться целенаправленной селекцией драйверов, DLL-библиотек и утилит, разделив их по “профессиям” компьютеров и укрепив обратную связь с пользователем.
А этому самому пользователю уже сегодня нужно набираться любви и терпения, штудировать книги о воспитании своих “малолетних” ПК и чаще протирать пыль с клавиатуры и системного блока. В будущем, думаю, сформируется многомиллиардная индустрия услуг по воспитанию и обучению компьютерных систем.
Быстрых результатов ждать не приходится, но хочется верить - через несколько десятков лет мы все же вырастим для себя надежных интеллектуальных помощников.