Забытые системы ИИ — как «Сайк» здравому смыслу учили

Разговорами о работе с ИИ уже никого не удивить. Нейросетями не пользуется только ленивый, а бизнес всё чаще запускает свои языковые модели. Но мало кто помнит, что еще в 80-х один амбициозный исследователь взялся разработать свою интеллектуальную систему с чувством «здравого смысла». Проект получил название Cyc (читается как «Сайк»), и до сих пор существует — даже имеет ряд кейсов коммерческого применения. Мы в beeline cloud решили обсудить, как он устроен, и что лежит в основе решения.

Изображение — Gabriella Clare Marino — Unsplash.com
Изображение — Gabriella Clare Marino — Unsplash.com

Истоки

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

1940-й. Алан Тьюринг с коллегами разработал систему, которая успешно «взломала» шифровальные машины Enigma во время Второй мировой войны. Многие (но, конечно же, далеко не все) считают этот эпизод отправной точкой развития систем ИИ, как и последующие эксперименты ученого, а также известный эмпирический тест.

1943-й. Нейрофизиолог Уоррен Мак-Каллок и нейролингвист Уолтер Питтс описали первую модель искусственного нейрона и предположили, что сеть из таких элементов может обладать высокой вычислительной мощностью и способностью к самообучению.

1951-й. Марвин Мински разработал способный к обучению компьютер, в основу которого положил случайно связанную нейросеть из сорока синапсов Хебба. Систему назвали SNARC, или «стохастический нейронно-аналоговый калькулятор с подкреплением». Она решала задачу на прохождение виртуального лабиринта. SNARC подбирала алгоритмы с помощью комбинированной сети настроек потенциометров. Последние представляли собой физические элементы, которые работали по принципу, аналогичному весам в ML-моделях, — определяли силу устанавливаемых связей.

1958-й. Следующий важный этап в развитии ИИ наступил тогда, когда на свет появился перцептрон «Марк-1», разработанный нейрофизиологом Фрэнком Розенблаттом. «Марк-1» состоял из четырехсот фотоэлементов, способных классифицировать изображения. В частности, он умел распознавать буквы алфавита (в том числе написанные от руки), хотя точность идентификации и оставляла желать лучшего. Обучение происходило за счет положительной или негативной обратной связи и корректировки весов — для этих целей в «Марк-1» использовались потенциометры.

1959-й. Для нейросетей стали искать более практические применения. Бернард Уидроу и Маршиан Хофф из Стэнфорда разработали две ИИ-модели на основе той же концепции перцептрона — ADALINE и MADALINE. Первую обучили распознавать двоичные шаблоны, за счёт чего при анализе потоковых битов в телефонной линии она могла предсказывать каждый последующий. MADALINE, в свою очередь, использовали для эхоподавления в телекоммуникациях.

1960-е. Разработками в сфере систем ИИ занимались и отечественные специалисты. Так, в 60-х годах многие ученые интересовались пороговой логикой, пороговыми элементами, а также арифметическими устройствами на их основе. Руководство страны строило научные комплексы и исследовательские институты для развития микроэлектроники, а также проведения нейробиологических исследований. Например, одним из таких центров стал Научно-исследовательский институт физических проблем (НИИФП) в Зеленограде.

В то же время научными изысканиями и решением теоретических проблем в сфере информатики и систем ИИ занимались многие специалисты. Так, ближе к концу 60-х годов Д. А. Поспелов разработал подход к принятию решений на основе методов семиотического управления. В последствии его применяли для управления процессами в грузовых портах и на автокомбинатах.

Автор амбициозного проекта

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

Именно в это трудное время в индустрию пришёл будущий автор одного из самых амбициозных ИИ-проектов — Дуглас Ленат.

Кто такой Дуглас Ленат? Исследователь и ИТ-специалист, в первые годы обучения в университете он занимался вопросами физики и математики. Его бакалаврская работа была посвящена созданию акустических голограмм, но позже он увлёкся вопросами искусственного интеллекта. Ленат сделал себе имя в 1970-х благодаря выпуску серии интеллектуальных программ. Одним из таких проектов стал Automated Mathematician, разработанный в Стэнфорде. AM была одной из первых систем, которая умела генерировать математические теоремы, модифицируя программы на Lisp (хотя, многие из них и не имели смысла). В дальнейшем исследователь также спроектировал систему EURISKO, в которой не было жёстко запрограммированной эвристики. Её Ленат применил на турнире по ролевой игре Traveller Adventure 5: Trillion Credit Squadron в США. EURISKO построила стратегию, и Ленат выиграл два национальных чемпионата.

Дуглас Ленат считал, что невозможно дать машине способность к познанию мира, не наделив её «здравым смыслом». Человеку не нужно объяснять, что если уронить стакан с водой, то он, скорее всего, разобьётся, а жидкость вытечет. Но компьютер не знает об этом по умолчанию. Тогда Ленат решил собрать массивную базу данных, записи в которой бы описывали логику окружающего нас мира, и предоставить к ней доступ системе ИИ. Оставалось только найти деньги на реализацию амбициозной идеи.

Претворить её в реальность помогла технологическая «гонка вооружений» и межблоковая конкуренция. Министерство обороны США запустило многомилионную программу по поиску перспективных компьютерных проектов. В её рамках была основана компания MCC, во главе которой встал Дуглас Ленат вместе с братом. Они начали собирать колоссальный репозиторий самых разных знаний. Так появился проект Cyc, или «Сайк» (сокращение от английского слова encyclopedia).

Под капотом у «Сайка»

Для представления человеческих знаний Cyc использует собственный язык — CycL. При его разработке команда Лената ориентировалась на синтаксис семейства Lisp. База знаний содержит термины (в каком-то смысле это — строительные блоки словаря «Сайк») и высказывания. Все объекты в Cyc называются константами, а логические утверждения — фактами. Объекты в базе разбиты на коллекции. С их помощью исследователи описывают мир, таким, каким его видит человек, для компьютера.

Изображение — Johnny Briggs — Unsplash.com
Изображение — Johnny Briggs — Unsplash.com

Например, мы знаем, что деревья — это растения. В «Сайк» эта информация представлена как #$Tree-ThePlant. Язык также содержит бинарные предикаты #$isa и #$genls. Первый подтверждает, что объект является частью какой-либо коллекции, а второй — что сама коллекция является подколлекцией. Например, запись (#$genls #$Tree-ThePlant #$Plant) означает, что все деревья относятся к классу растений.

В языке CycL также есть булевы функции. Например, они позволяют узнать, является ли #$Paris частью #$France. Для того чтобы прописать более сложную логику, в этих выражениях используются операторы #$and, #$or, #$not и #$implies. Помимо общей логики, исследователи добавили «Сайк» возможность оценивать вероятности. Компьютер должен понимать, что оценка населения страны может быть приблизительной, а факт, что у собаки четыре ноги, верен до тех пор, пока животное здорово.

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

Всё это позволяет Cyc строить логические умозаключения. Например, если загрузить в систему утверждение, что некий человек пошёл и купил себе сладостей в определённое время, Cyc предположит [PDF, стр. 43], была ли покупка оплачена наличными, планировал ли человек ее заранее, сколько денег у него было с собой и так далее. Для этого система рассчитывает вероятности и ориентируется на загруженную в базу информацию о временном периоде, экономической ситуации, ассортименте заведений и так далее.

Еще один компонент проекта «Сайк» — средства разработки и интерфейсные механизмы, которые позволяют просматривать и извлекать данные из базы знаний. Затем их можно использовать для составления запросов к поисковому движку или передавать другим частям системы управления масштабной БД.

Непростая судьба

Уже к 1989 году база данных Cyc насчитывала миллион различных выражений, в числе которых было 50 тыс. отдельных объектов и 6 тыс. коллекций. Большую часть времени инженеры вручную заносили данные в систему. Но со временем исследователи добавили возможность загрузки данных из «Википедии».

К сегодняшнему дню в корневую базу Cyc добавили уже более 25 млн правил. В сумме на её реализацию вся команда потратила порядка 2 тыс. человеко-лет. Но будущее проекта кажется смутным как никогда. Последний раз крупные новости о нем приходили ещё в 2016 году, когда Ленат заявил, что Cyc начали использовать в одной из больниц американского Кливленда с целью автоматизации отбора пациентов для клинических исследований. Также «Сайк» применили в финансовом секторе. Разработчики рассказывали, что их система помогла выявить случай инсайдерской торговли.

К сожалению, в прошлом году главный автор идеи и руководитель проекта скончался в возрасте 72 лет. Незадолго до этого Ленат успел выпустить отдельную статью о том, как он видит будущее Cyc в связке с машинным обучением и LLM, и почему последние нельзя считать настоящим ИИ. В следующий раз мы поговорим о том, какие перспективы есть у Cyc сегодня и как он повлиял на развитие профильных стартапов.

beeline cloud — secure cloud provider.

Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы.

11
Начать дискуссию