суббота, 17 января 2009 г.

ну если с чего то и начинать так это с исходного кода half life

membrana (http://www.membrana.ru/articles/technic/2002/07/23/191100.html)


Для чат-роботов тест Тюринга может в скором времени стать общим местом

23 июля 2002, membrana (staff@membrana.ru)


Для чат-роботов тест Тюринга может в скором времени стать общим местом

Кадр из фильма "Метрополис".

Искусственный разум… Одни отчаянно его боятся, другие только и ждут, когда он, наконец, появится. А между тем, уже существуют языки программирования, созданные специально для создания искусственного интеллекта.


Чат-роботы – одна из бесчисленных забав для пользователей "интернет-пейджеров" вроде ICQ. Иногда этим развлекаются ICQ-спаммеры: разослав огромному количеству пользователей какую-нибудь ерунду, вроде рекламы очередного порносайта, они затем ещё и подключают робота.

И если какой-нибудь неопытный пользователь по ошибке возьмётся отвечать на это послание, его могут просто "заговорить". Чат-роботу даже смерть собеседника не помешает продолжить разговор о самочувствии и часовых поясах.

Иногда в ICQ попадаются и независимые роботы (боты). Но "общаться" ними тоже порой оказывается странным удовольствием.

Дело в том, что эти боты относятся к так называемым "самообучающимся" программам, которые обогащают свой словарный запас тем, что говорят им.

Например, робот, который обитает в ICQ под номером 33221233 (или сидел, сегодня он весь день в офлайне), напоминает того самого полковника, у которого "русский и белорусский со словарём, командно-матерный свободно".

Третья или четвёртая реплика, полученная от него, наверняка будет матерной. Русские пользователи ICQ так здорово "подковали" его в области нецензурной лексики, что хоть диплом выдавай.

Шутки-шутками, а все эти роботы являются лишь более или менее удачными практическими результатами опытов по созданию искусственного интеллекта.





Кадр из фильма "Матрица".


Кадр из фильма "Матрица".


Конечно, такие монстры, как, например, компьютер SkyNet (фильмы "Terminator I, II"), или машины в "Матрице" – это пока лишь плод воображения фантастов. Но никто не знает, как скоро "человеческий разум возликует от своего величия", сотворив машину по образу и подобию своему.

Машин, которые могли бы мыслить так же, как человек, сейчас не существует. Из-за этого, пока невозможно создать, например, действительно универсальные электронные переводчики.

Например, автоматический голосовой переводчик компании Ectaco – Universal Translator – вещь, может, и неплохая, но, увы – работает по довольно примитивному принципу.

В памяти находятся записи большого количества фраз, и машине остается только распознать, что сказал человек (хотя это, кстати, тоже серьёзная проблема), сопоставить его фразу с уже наличествующей записью и выдать её заранее готовый перевод. Так что особого "искусственного ума" тут не требуется.

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

Для этого собираются применить технологию "контекстного" перевода Interlingua. А это уже близко к области искусственного интеллекта.

Наверное, стоит упомянуть, что сокращение A.I. (Artificial Intelligence – искусственный интеллект) среди "простых смертных" лучше всего знакомо заядлым геймерам.

Конечно, та программа, что определяет поведение монстров в 3D-стрелялках или Real-Time стратегиях, это не полноценный искусственный разум, а лишь его "зачатки".

В старых шутерах, вроде Doom, Doom II или Heretic, "искусственный интеллект" у ботов был крайне примитивным.

Единственное, чего "хотелось" монстрам, так это поймать игрока в прицел и стрелять, пока он не завалится. Или подобраться как можно ближе и заесть у него все health points.

В Heretic, а потом и в Hexen, впрочем, появилась дополнительная "радость": убив игрока, монстры устраивали гладиаторское побоище в духе бессмертных горцев – "останется только один".






Doom II. Монстры прут вперёд, несмотря на потери и наличие у игрока пулемёта.


Doom II. Монстры прут вперёд, несмотря на потери и наличие у игрока пулемёта.


Зато в более поздних игрушках (причём не только в "стрелялках") монстры уже пытаются уворачиваться, удирать, если у них осталось мало "здоровья", и вообще вести себя "умно", а не просто с воплями бросаться в атаку.

Итак, игры, электронный перевод, "умные" роботы, подменяющие человека в наиболее неприятных занятиях, автоматизация всяких административных процессов…

Один из самых громких проектов, связанных с искусственным интеллектом, кстати, изначально был связан именно с автоматизацией.

Однажды, в 1995 году, профессору математики Ричарду Уоллесу по почте пришли две формы, которые ему необходимо было заполнить по его университетским обязанностям.

Ему бы понадобилось несколько часов на то, чтобы вбить (на печатной машинке!) необходимые сведения.

"Изнервничавшийся, заваленный работой по самые уши, я вдруг понял, что робот, созданный по принципу какой-нибудь программы Eliza, куда лучше моего управился бы с этими формами. Или, по крайней мере, смог бы дать ответы лучше меня.

В тот день я зашвырнул эти формы куда подальше и приступил к работе над A.L.I.C.E. Эти формы так никогда и не были заполнены, так что меня, в конце концов, уволили", – вспоминает Уоллес.

Тут необходимо пояснить, что такое Eliza и A.L.I.C.E.

Eliza – это классический алгоритм "общения" машины с человеком, написанный профессором Массачусетского технологического института (Massachusetts Institute of Technology — MIT) Йозефом Вайзенбаумом еще в 60-х годах.

Назван этот алгоритм в честь главной героини пьесы Бернарда Шоу "Пигмаллион" Элизы Дулиттл, которую профессор-лингвист превратил из замызганной девчонки-цветочницы в принцессу.

Что бы ни сказал человек, программа Eliza немедленно отзывается и тотчас же сама задаёт какой-нибудь вопрос "в развитие темы".





A.L.I.C.E. — чат-робот, едва не прошедший тест Тюринга.


A.L.I.C.E. — чат-робот, едва не прошедший тест Тюринга.


A.L.I.C.E., в общем и целом, представляет собой вариацию на тему Eliza – относительную, разумеется. Сокращение A.L.I.C.E. расшифровывается как Artificial Linguistic Internet Computer Entity – искусственное электронное существо, понимающее язык.

Казалось бы, это лишь "ещё один" чат-робот, хотя бы даже и очень "умный". "Алиса" очень здорово отвечает на заданные ей вопросы, а если собеседник долго молчит, то сама старается его "разговорить".

Однако вряд ли бы "просто робот" два года подряд получал приз Лебнера.

В 1990 году некий Хью Лебнер учредил премию — 100 тысяч долларов и золотую медаль впридачу тому, чья программа пройдёт достославный тест Тюринга, придуманный ещё в 1950-м году.

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

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

Кроме того, учреждена ежегодная премия в $2000 и бронзовая медаль для той "болталки", которая покажет наилучший результат среди аналогичных чат-роботов.

A.L.I.C.E. получала эту бронзовую медаль и в 2000 и в 2001 годах. В 2001 году один из судей попал впросак и оценил её выше одного из входивших в "контрольную группу" людей.

Что еще можно сказать об A.L.I.C.E.? Что она существует в нескольких вариациях. Что она относится к столь нелюбимому Биллом Гейтсом и Кo открытому программному обеспечению, и что над ней работает довольно много народу.

Исходный код "Алисы", инструменты для разработки собственных роботов и документацию можно добыть здесь.

Ну, а самое важное, пожалуй, это, что в её основе лежит специализированный язык под названием AIML – Artificial Intelligence Markup Language ("язык разметки для искусственного интеллекта").

Этот XML-совместимый язык, который позволяет самому писать чат-ботов в духе "Алисы". Причём, его разработчики устами своих роботов неустанно твердят, что из всех языков для создания чат-роботов, AIML, скорей всего, самый простой (а следовательно, и самый доступный).


P.S. Вчера под вечер автор этой статьи долго "проверял на вшивость" ещё одного робота, написанного на AIML. Попытки заставить этого робота выдать какую-нибудь чушь не давали никакого результата целых пять минут!

Вероятно, так случилось потому, что автор пытался вести с ботом светскую беседу. Когда же другой человек начал с этим роботом ругаться, тот сначала осведомился, почему с ним так разговаривают, а потом покорно признал своё недоумствие.

И даже пообещал рассказать об этом создателям.

Комментариев нет:

Отправить комментарий