Во всех опубликованных хрониках работ по Искусственному Интеллекту можно найти упоминания о работах Дугласа Лената, о проекте Cyc. Его нередко сравнивают с компьютером HAL, описанным Артуром Кларком в «Космической одиссее 2001 года», но более известным по фильму Стэнли Кубрика. По причинам, о которых будет рассказано, для публики (за исключением немногих специалистов) существование Cyc не представляло ни какого интереса. Однако летом 2002 года ситуация изменилась радикально. Теперь, пусть и в адаптированном виде, библиотека знаний Cyc стала доступна всем и, возможно, привлечет к себе гораздо большее внимание.
Практические предпосылки к появлению проекта Cyc относятся к началу 80-х годов, когда началась кампания, по своей логике похожая на авантюру под названием «Звездные войны». Старт очередной большой технологической гонки — на этот раз за приоритет в области ИИ — был дан в октябре 1981 года, когда японское Министерство промышленности и торговли представило вызвавший переполох в США и в СССР десятилетний план по созданию ИИ («План пятого поколения»). Двадцать лет назад Япония проводила экспансию во многих областях. Поэтому казалось, что 850 млн. долл., которые правительство страны намеревалось выделить на «пятое поколение», изменят баланс сил и в области вычислительной техники. Три года спустя Советский Союз через посредство Академии наук провозгласил собственный пятилетний план развития ИИ, стоимостью «всего» 100 млн. долл. Американское правительство тоже отреагировало не сразу. Здесь поначалу стали образовываться частные компании, такие как Machine Intelligence, Thinking Machines, Teknowledge и Cognitive Systems, и уже после, в 1983 году Министерство обороны США анонсировало пятилетнюю программу Strategic Computing Program, управлять реализацией которой должно было агентство DARPA. Она оценивалась суммой 600 млн. долл. и предполагала, прежде всего, финансирование частного бизнеса в сфере ИИ. Одной из созданных в рамках этой программы компаний была и Microelectronics and Computer Technology (MCC), от которой спустя десять лет отпочковалась компания Cycorp. О деятельности последней пойдет ниже речь.
Именно отпочковалась, поскольку с самого начала MCC была компанией двоих — Дага Лената и его старшего партнера Роберта Инмана. Нынешний глава и идеолог Cycorp Ленат перешел в MCC из Стэнфорда, став техническим и научным руководителем компании, университетской по духу, хотя и расположенной в Техасе, вдали от известных образовательных центров (может быть, из-за особенного интереса к ней со стороны спецслужб). Штат Cycorp отличается своеобразием, здесь собраны специалисты особой категории — «философы в голубых воротничках». Они сочетают в себе качества техников и гуманитариев одновременно, наряду с программистами и математиками здесь работают лингвисты, экономисты и даже классические философы.
В одном из интервью Ленат так определил предмет деятельности своей компании: «С моей точки зрения, ИИ — это попытка заставить компьютеры делать то, что требует интеллекта, например, медицинская диагностика, сочинение музыки, изобретение новых или использование по-новому старых устройств. Компьютеры должны находить ответы на сложные вопросы наподобие "Что это?", относя их, в частности, к таким явлениям, как военные или политические кризисы. Пока на эти вопросы ни компьютеры, ни программы ответить не могут, люди остаются единственными мыслящими существами на планете, но существующая ситуация вполне может измениться в ближайшие годы, машины могут стать разумными. Для этого они должны владеть совокупностью человеческих знаний, причем речь не идет только о научном знании. Cyc — это огромный репозиторий самых разнообразных знаний, которые могут показаться тривиальными. Например, мы знаем, но не задумываемся о том, что наполненный стакан стоит держать донышком вниз, а людей не стоит тревожить по ночам и т.д. Это настолько очевидные истины, что их даже не объясняют детям, они приходят к этим выводам сами, но компьютеру следует передать и эти знания, какими бы простыми они не казались».
База знаний как основа Cyc
Cycorp — компания одного проекта. Его генезис следует искать в самых первых шагах, сделанных на заре ИИ, когда в начале 70-х годов предпринимались кажущиеся сегодня наивными попытки создать работающую систему на основе базы знаний. Тридцать лет назад над этим трудился Роджер Шанк, еще за десять лет до него — Джон Маккарти. Они стремились найти элегантное решение и избежать при этом большого количества рутинного труда. Признавая, что без работ предшественников и у него самого ничего не вышло бы, Ленат все же считает, что они шли неверным путем. Ошибались те, кто пытался наделить некий разумный автомат способностью к самостоятельному познанию мира. Ленат считал и считает, что эту работу можно выполнить только вручную, годами методично создавая руками и мозгами людей гигантскую базу знаний. А те ранние попытки он сравнивает с прохождением через бесконечное число стен, когда после преодоления очередной вырастает следующая. Первопроходцы пытались решить классические задачи наподобие перемещения робота в неструктурированной среде, распознавания речи или рукописных текстов. По Ленату [1], их невозможно решить в отсутствие знаний о том, что соответствует здравому смыслу (commonsense knowledge).
На осознание этого обстоятельства у него ушли многие годы. Период с 1977-го по 1983 год он практически целиком посвятил предпроектной стадии, а когда пришел к законченной идее проекта Cyc, все сложилось на редкость удачно. Инман сделал «под него» компанию и выбил правительственное финансирование, безукоризненно точно вычислив уникальность момента. Инвестиционный проект ценой 50 млн. долл. можно было реализовать только под влиянием страха перед японскими успехами, в тот короткий период времени, когда распоряжавшиеся деньгами чиновники отдавали их без лишних доказательств целесообразности. Нельзя не заметить, что история повторяется. В конце 50-х — начале 60-х тоже под влиянием страха (тогда перед советскими успехами в космической гонке) начались работы по сетевым проектам, которые в конечном счете привели к созданию Интернета. Это, конечно же, был более масштабный проект, но все очень и очень похоже. Итак, замысел создания компании MCC, которая рассматривалась в качестве одного из ответов на японский проект «пятого поколения», принадлежит Роберту Инману, бывшему в свое время заместителем директора Центрального разведывательного управления. С тех пор прошло много лет, но дух спецслужб по-прежнему витает вокруг Cyc, ведь в отличие от Интернета первая задача, поставленная перед Ленатом, была сугубо военной. Может показаться странным, но план, рассчитанный почти на два десятилетия, выполнялся — если не в срок, то уж, во всяком случае, не рухнул. ИИ оказался в значительной мере мыльным пузырем, который, в отличие от пузыря электронного бизнеса, раздували не молодые аферисты, а маститые ученые. Поэтому следует учесть атмосферу всеобщего разочарования, вызванную морем невыполненных обещаний. В конце 80-х годов наступил период «зимы ИИ». Судьба основных конкурентов оказалась незавидна. Напугавший всех японский проект к 1992 году бесславно приказал долго жить. Ну а судьба отечественных проектов в области ИИ (да, впрочем, и не только в ней), столь печальна, что о них можно говорить «либо хорошо, либо никак».
Идею плана, предложенного адмиралу Инману осенью 1984 года, Ленат представил в трех основных пунктах.
- Сначала, естественно разработав соответствующие языковые средства, закачать в некоторое хранилище миллионы повседневных терминов, фактов, концепций и правил, составляющих интуитивное знание ("здравый смысл"), образующих багаж общечеловеческих представлений. На этом этапе создается "насос знаний" (knowledge pump).
- Разработать систему общения с компьютером на естественном языке (начало этой работы намечалось на 1991 год).
- Обеспечить возможность новому сверхмозгу возможность для саморазвития и самосовершенствования (старт этапа планировался в 2001 году).
К настоящему времени реализованным оказался практически только первый пункт плана, что дает многочисленным недоброжелателям повод критиковать Лената. Однако трудно себе представить, что хоть какой-то план вообще мог просуществовать столько лет, если вспомнить все то, что произошло в информационных технологиях за эти годы. У специалистов по ИИ есть та же милая традиция, что и у поэтов — «в круг сойдясь, оплевывать друг друга». Лената отчаянно критикуют (в том числе и некоторые наши соотечественники), но по большей части те, кто, увы, сами сделать вообще ничего не смогли. В 1994 году был накоплен достаточный потенциал для коммерциализации идей, для чего и была создана компания Cycorp. Ленат так оценивает сделанное: «Мы не преследовали цель исследовать работу мозга или создать искусственный разум. Мы выстроили некоторое не существовавшее доселе сооружение, используя вполне инженерный подход».
Удалось найти ответы на два основных вопроса:
- что Cyc должна знать?
- как эти знания хранить и представлять?
Работа началась с поиска ответа на первый вопрос. Анализ известных источников, например, энциклопедий, показал, что они являются дополнением по отношению к общему смыслу: любая словарная статья предполагает, что читатель подготовлен к ее пониманию. Поэтому перевод энциклопедий из текстовой формы в какую-то иную бесполезен. Среди ряда примеров, иллюстрирующих различие между энциклопедическими знаниями и знаниями, в которые должен быть заложен общий смысл, есть такой. Фраза «Веллингтон сильно расстроился, узнав о смерти Наполеона на острове святой Елены» подразумевает, что читатель должен понимать, что Веллингтона кто-то проинформировал о печальном событии, что он пережил Наполеона, а также знать еще массу фактов. На разработку методики ушло почти десять лет, и возник следующий вопрос: как эти знания хранить и представлять новые знания? Вполне естественно, что ни о каком полном представлении речи не идет, а только о некоем срезе общечеловеческих знаний. Для этой цели разработан специальный язык. Наиболее подробное описание идеологии Cyc в том числе языка можно найти в [2].
В [3] значение и место проекта Cyc для ИИ в целом сравнено с работами братьев Райт по созданию первого самолета и с Манхэттенским проектом, когда была создана первая атомная бомба. Возможно, эти рассуждения проясняют идею использования здравого смысла в ИИ. Аналогия заключается в том, что при решении всех этих задач стояла дилемма, чему отдать предпочтение — глубокой теоретической проработке вопроса («ученым») или сочетанию теории с эмпирикой («инженерам»). История науки и техники доказывает, что обычно «инженеры» побеждают. Так произошло и в этом проекте. Трое ведущих разработчиков — Ленат, Гуха и Фейгенбаум — явно инженеры и прагматики, хотя было бы несправедливо упрекнуть их в недостатке знаний. Впрочем, с точки зрения, скажем, специалистов по экспертным системам, их действия нарушают чистоту науки. Признавая это, судить все же следует по результатам, а здесь успех на стороне Лената и его коллег.
Авторы Cyc выдвинули три положения: один принцип и две гипотезы.
- Принцип знания. Если некий агент (субъект, автомат) должен выполнить работу, наделенную хотя бы минимальной сложностью, то он должен опираться не только на узкий набор информации в этом домене, ему потребуются более широкие знания об окружающем мире. (Еще одна аналогия с братьями Райт и Манхэттенским проектом заключается в том, что подобную работу можно выполнить, только начав с чистого листа.)
- Гипотеза широты. Для того чтобы агент мог вести себя разумно в неожиданных ситуациях, он должен иметь возможность использовать более широкий круг знаний и аналогий, чем можно предположить, если смотреть на задачу узко функционально.
- ИИ как эмпирика. Нельзя пускаться в крайности, нельзя раньше времени "математизировать" предмет, но и нельзя его излишне упрощать. Следует делать дело и одновременно учиться его делать.
Комбинация трех этих положений образует «разумное знание», позволяющее понять статью в энциклопедии или газетную заметку. В этом и состоит основное открытие Лената и его коллег.
Сейчас размер базы знаний Cyc по разным источникам составляет от 1 до 2 миллионов статей.
Сегодняшний день Cyc
За годы существования проекта окружающая ИТ-среда радикально изменилась. Появление WWW стало, конечно же, прекрасным подарком для Cycorp, особенно сейчас, когда наступает Эпоха семантики (the Age of Semantics), предвестником которой стал XML, а впереди Semantic Web. Экологическая ниша, на которую посягает Cyc, становится шире и шире. Одно из первых значительных прикладных решений для Сети, построенных на основе проекта Cyc, предлагает относительно недавно выделившаяся из ее состава компания e-Cyc. Эта компания предоставляет разработчикам базис для создания интеллектуальных поисковых систем. Сначала было внедрение в сайте HotBot, а в 2002 году образовалась компания 360 Powered, специализирующаяся на поставке поисковых систем для корпоративных приложений, которая также опирается на достижения проекта Cyc. (Компания 360 Powered выглядит многообещающе хотя бы потому, что в состав в состав совета директоров входит Лен Борсак, человек, создавший Cisco.)
Собственный набор продуктов Cyrcorp включает: Cyc Knowledge Server (поставляется разработчикам по индивидуальным лицензиям); CycSecure (продается) и CycAnswers (находится в состоянии разработки).
Сервер знаний Cyc Knowledge Server — флагманский продукт компании. Он доступен для партнеров, занимающихся разработкой на его основе. Включает шесть основных компонентов.
- Cyc Knowledge Base (KB). Формальное представление фундаментальных человеческих знаний, для представления которых используется собственный формальный язык CycL. База знаний состоит из терминов, образующих словарь CycL и высказываний, сделанных на этом языке. Высказывания включают простые утверждения и правила. Следующий уровень в иерархии KB называют микротеорией (microtheory). В настоящее время Cyc KB содержит десятки тысяч терминов с десятками высказываний к каждому из них.
- Cyc Inference Engine. Система выводов в Cyc, представляющая собой механизм для реализации дедуктивных умозаключений, уникальна и не имеет ничего общего с известными аналогами.
- CycL Representation Language. Язык представлений в Cyc.
- Natural Language Processing Subsystem. Использование естественного языка является одной из наиболее важных, но все еще остающихся нерешенными возможностями. В перспективе Cyc позволит выполнять машинный перевод, распознавание речи и улучшит качество пользовательского интерфейса.
- Cyc Semantic Integration Bus. Интегрирующая шина связывает традиционные технологии хранения (СУБД, таблицы) и KB.
- Cycle Developer Toolsets. Средства разработки включают различные интерфейсные средства, которые позволяют просматривать, редактировать и извлекать данные из Cyc KB для представления в виде запросов поисковым машинам и взаимодействия с модулями СУБД.
Автоматизированное средство аудита сетей CycSecure дополняет традиционные средства сетевого сканирования и состоит из трех компонентов.
- Network Configuration Simulator. Строит виртуальную модель сети, выделяя уязвимые элементы.
- CycSecure Knowledge Base. Представляет собой собрание знаний об уязвимых местах и способах атаки.
- AttackPlan Analyzer. Моделирует действия хакеров, проверяет их на модели.
Судя по недавним публикациям, CycSecure активно используется спецслужбами и подразделениями Министерства обороны США.
Интегрированное средство управления знаниями и автоматической генерации ответов на заданные вопросы CycAnswers включает:
- Semantic Knowledge Source Integrator - генератор ответов, использующий базы данных и знаний.
- Integrity Auditor - средство для анализа соответствия содержимого баз данных и знаний на соответствие запросам;
- User Profiles - средство обеспечивающее настройку на пользователя.
OpenCyc
Все сказанное приобретает особый смысл в свете того, что в текущем году в Сети на сайте opencyc.sourceforge.net появилась свободно распространяемая версия Cyc. Компания Cycorp образовала независимую организацию OpenCyc.org специально для того, чтобы распространять OpenCyc, самую меньшую по объему версию библиотеки знаний; теперь ее можно свободно копировать, тиражировать и использовать в коммерческих и некоммерческих приложениях. Лицензия на OpenCyc соответствует или даже имеет меньшие ограничения, чем GNU Library General Public License. Следующее по объему подмножество библиотеки, ResearchCyc и может использоваться исключительно в исследовательских целях. В полном объеме для использования в коммерческих приложениях Cyc Knowledge Base может быть лицензирована, причем условия носят индивидуальный характер. Предполагается, что со временем будет происходить циклический сдвиг: с появлением новой версии Cyc KB предшествующая версия превратится в ResearchCyc, а та, в свою очередь, — в OpenCyc.
OpenCyc 1.0 включает 6 тыс. представлений, 60 тыс. суждений, скомпилированные версии Cyc Inference Engine a Cyc Knowledge Base Browser, документацию, спецификацию языка CycL, трансляторы CycL-to-Lisp, CycL-to-C, спецификацию Cyc API и несколько примеров его использования в приложениях.
Свою инициативу по открытию библиотеки знаний в Cycorp объясняют желанием задать стандарт для использования библиотек знаний в реальных приложениях. Появление в свободном доступе OpenCyc открывает новые возможности для исследований и разработки приложений в области распознавания речи.
С открытием Cyc KB у разработчиков появляется возможность использовать реальную базу знаний, а не как это часто бывает, некое собрание фактов и суждений, только называемую базой знаний.
Литература
-
Douglas B. Lenat, From 2001 to 2001: Common Sense and the Mind of HAL. Chapter 9, HAL's Legacy 2001's Computer as Dream and Reality, MIT Press, 1997
-
Deniz Yuret, The binding roots of symbolic AI: a brief review of the Cyc project.
-
Fritz Freiheit, Cyc: The Wright Manhattan Project for AI.