ELIZA — это ранняя компьютерная программа обработки естественного языка , разработанная с 1964 по 1967 год [1] в Массачусетском технологическом институте Джозефом Вайценбаумом . [2] [3] Созданная для изучения коммуникации между людьми и машинами, ELIZA имитировала разговор, используя методологию сопоставления с образцом и подстановки , которая давала пользователям иллюзию понимания со стороны программы, но не имела представления, которое можно было бы считать реальным пониманием того, что говорила любая из сторон. [4] [5] [6] В то время как сама программа ELIZA была написана (первоначально) [7] на языке MAD-SLIP , директивы сопоставления с образцом, которые содержали большую часть ее языковых возможностей, были предоставлены в отдельных «скриптах», представленных в виде представления, похожего на LISP . [8] Самый известный сценарий, DOCTOR, имитировал психотерапевта школы Роджерса (в которой терапевт часто отражает слова пациента пациенту), [9] [10] [11] и использовал правила, продиктованные в сценарии, чтобы отвечать ненаправленными вопросами на вводимые пользователем данные. Таким образом, ELIZA был одним из первых чатботов (современный чатбот) и одной из первых программ, способных попытаться пройти тест Тьюринга . [12] [13]
Создатель ELIZA, Вайценбаум, задумал программу как метод исследования коммуникации между людьми и машинами. Он был удивлен и шокирован тем, что некоторые люди, включая секретаря Вайценбаума, приписывали компьютерной программе человеческие чувства. [3] Многие ученые считали, что программа сможет положительно повлиять на жизнь многих людей, особенно тех, у кого есть психологические проблемы, и что она может помочь врачам, работающим над лечением таких пациентов. [3] [14] Хотя ELIZA была способна участвовать в дискурсе, она не могла общаться с истинным пониманием. [15] Однако многие первые пользователи были убеждены в интеллекте и понимании ELIZA, несмотря на настойчивые утверждения Вайценбаума об обратном. [6] Исходный код ELIZA был утерян с момента ее создания в 1960-х годах, поскольку в то время было не принято публиковать статьи, содержащие исходный код. Однако совсем недавно исходный код MAD-SLIP был обнаружен в архивах MIT и опубликован на различных платформах, таких как archive.org. [16] Исходный код представляет большой исторический интерес, поскольку он демонстрирует не только специфику языков и методов программирования того времени, но и начало программной многослойности и абстракции как средства достижения сложного программирования.
ELIZA Джозефа Вайценбаума , запускающая сценарий DOCTOR, создала диалоговое взаимодействие, несколько похожее на то, что могло бы иметь место в кабинете «[недирективного] психотерапевта на первичном психиатрическом интервью» [17] и чтобы «продемонстрировать, что общение между человеком и машиной было поверхностным». [18] Хотя ELIZA больше всего известна тем, что действует в манере психотерапевта, речевые модели обусловлены данными и инструкциями, предоставленными сценарием DOCTOR. [19] ELIZA сама проверяла текст на наличие ключевых слов, применяла значения к указанным ключевым словам и преобразовывала входные данные в выходные данные; сценарий, который запускала ELIZA, определял ключевые слова, устанавливал значения ключевых слов и устанавливал правила преобразования для выходных данных. [20] Вайценбаум решил создать сценарий DOCTOR в контексте психотерапии, чтобы «обойти проблему предоставления программе базы данных реальных знаний», [3] позволяя ей отражать утверждения пациента для продолжения разговора. [3] Результатом стал, казалось бы, довольно разумный ответ, который, как сообщается, обманул некоторых первых пользователей программы. [21]
Вайценбаум назвал свою программу ELIZA в честь Элизы Дулиттл , персонажа из рабочего класса в «Пигмалионе » Джорджа Бернарда Шоу ( также появлявшейся в мюзикле « Моя прекрасная леди» , который был основан на пьесе и был чрезвычайно популярен в то время). По словам Вайценбаума, способность ELIZA «постепенно улучшаться» различными пользователями делала ее похожей на Элизу Дулиттл, [20] поскольку Элизу Дулиттл учили говорить с акцентом высшего класса в пьесе Шоу. [9] [22] Однако, в отличие от человеческого персонажа в пьесе Шоу, ELIZA не способна изучать новые модели речи или новые слова только посредством взаимодействия. Чтобы изменить способ работы программы, необходимо вносить изменения непосредственно в активный сценарий ELIZA.
Вайценбаум впервые реализовал ELIZA на собственном языке обработки списков SLIP , где, в зависимости от начальных записей пользователя, иллюзия человеческого интеллекта могла появиться или развеяться через несколько обменов. [2] Некоторые ответы ELIZA были настолько убедительны, что Вайценбаум и несколько других рассказывали истории о том, как пользователи эмоционально привязывались к программе, иногда забывая, что они разговаривают с компьютером. [3] Как сообщается, секретарь Вайценбаума попросила Вайценбаума выйти из комнаты, чтобы она и ELIZA могли по-настоящему поговорить. Вайценбаум был удивлен этим, позже написав: «Я не осознавал ... что чрезвычайно короткие воздействия относительно простой компьютерной программы могут вызывать мощное бредовое мышление у вполне нормальных людей». [23]
В 1966 году интерактивные вычисления (через телетайп) были новинкой. Прошло 11 лет, прежде чем персональный компьютер стал известен широкой публике, и три десятилетия, прежде чем большинство людей столкнулись с попытками обработки естественного языка в интернет-сервисах, таких как Ask.com , или справочных системах ПК, таких как Microsoft Office Clippit . [24] Хотя эти программы включали годы исследований и работы, ELIZA остается важной вехой просто потому, что это был первый раз, когда программист попытался осуществить такое взаимодействие человека с машиной с целью создания иллюзии (пусть и краткой) взаимодействия человека с человеком . [ необходима цитата ]
На ICCC 1972 ELIZA была объединена с другой ранней программой искусственного интеллекта под названием PARRY для разговора только с компьютером. В то время как ELIZA была создана, чтобы говорить как врач, PARRY была предназначена для имитации пациента с шизофренией . [25]
Первоначально Вайценбаум написал ELIZA в MAD-SLIP для CTSS на IBM 7094 как программу, делающую возможным общение на естественном языке с компьютером. [26] Чтобы достичь этого, Вайценбаум определил пять «фундаментальных технических проблем», которые должна была преодолеть ELIZA: идентификация ключевых слов, обнаружение минимального контекста, выбор соответствующих преобразований, генерация ответов при отсутствии ключевых слов и предоставление возможности редактирования для скриптов ELIZA. [20] Вайценбаум решил эти проблемы и сделал ELIZA таким образом, чтобы у нее не было встроенной контекстной структуры или вселенной дискурса. [19] Однако для этого требовалось, чтобы у ELIZA был скрипт инструкций о том, как реагировать на вводимые пользователем данные. [6]
ELIZA начинает свой процесс ответа на ввод пользователя, сначала проверяя текстовый ввод на наличие «ключевого слова». [5] «Ключевое слово» — это слово, обозначенное как важное действующим скриптом ELIZA, который назначает каждому ключевому слову номер приоритета или РАНГ, разработанный программистом. [15] Если такие слова найдены, они помещаются в «стек ключей», причем ключевое слово с наивысшим РАНГОМ находится наверху. Затем вводимое предложение обрабатывается и преобразуется в соответствии с правилом, связанным с ключевым словом с наивысшим РАНГОМ. [20] Например, когда скрипт DOCTOR встречает такие слова, как «похожий» или «такой же», он выводит сообщение, относящееся к сходству, в данном случае «Каким образом?», [4], поскольку эти слова имели высокий номер приоритета. Это также демонстрирует, как некоторые слова, как диктует сценарий, могут быть изменены независимо от контекстных соображений, например, замена местоимений первого лица на местоимения второго лица и наоборот, поскольку они также имели высокие приоритетные номера. Такие слова с высокими приоритетными номерами считаются выше разговорных моделей и рассматриваются независимо от контекстных моделей. [ необходима цитата ]
После первой проверки следующим шагом процесса является применение соответствующего правила преобразования, которое включает в себя две части: «правило разложения» и «правило повторной сборки». [20] Во-первых, входные данные проверяются на синтаксические шаблоны, чтобы установить минимальный контекст, необходимый для ответа. Используя ключевые слова и другие близкие слова из входных данных, проверяются различные правила разборки, пока не будет найден подходящий шаблон. Используя правила скрипта, предложение затем «разбирается» и организуется в разделы составных частей, как диктует «правило разложения для ключевого слова с наивысшим рейтингом». Пример, который приводит Вайценбаум, — это входные данные «Вы очень полезны», которые преобразуются в «Я очень полезен». Затем они разбиваются на (1) пустые (2) «Я» (3) «есть» (4) «очень полезны». Правило разложения разбило фразу на четыре небольших сегмента, которые содержат как ключевые слова, так и информацию в предложении. [20]
Затем правило декомпозиции определяет конкретное правило повторной сборки или набор правил повторной сборки, которым нужно следовать при реконструкции предложения. [5] Правило повторной сборки берет фрагменты входных данных, которые создало правило декомпозиции, перестраивает их и добавляет запрограммированные слова для создания ответа. Используя ранее приведенный пример Вайценбаума, такое правило повторной сборки берет фрагменты и применяет их к фразе «Что заставляет вас думать, что я (4)», что приводит к «Что заставляет вас думать, что я очень полезен?». Этот пример довольно прост, поскольку в зависимости от правила разборки вывод может быть значительно более сложным и использовать больше входных данных пользователя. Однако из этой повторной сборки ELIZA затем отправляет сконструированное предложение пользователю в виде текста на экране. [20]
Эти шаги представляют собой основную часть процедур, которым следует ELIZA для создания ответа из типичного ввода, хотя есть несколько специализированных ситуаций, на которые может реагировать ELIZA/DOCTOR. Одна из них, о которой Вайценбаум писал специально, была связана с отсутствием ключевого слова. Одним из решений было заставить ELIZA ответить замечанием, в котором отсутствовало содержание, например, «Ясно» или «Пожалуйста, продолжайте». [20] Второй метод заключался в использовании структуры «ПАМЯТЬ», которая записывала предыдущие недавние вводы и использовала эти вводы для создания ответа, ссылающегося на часть более раннего разговора, если не было ключевых слов. [27] Это стало возможным благодаря способности Slip помечать слова для другого использования, что одновременно позволяло ELIZA проверять, хранить и повторно использовать слова для использования в выходных данных. [20]
Хотя все эти функции были оформлены в программировании ELIZA, точный способ, которым программа разбирала, исследовала и собирала входные данные, определяется рабочим сценарием. Сценарий не статичен и может быть отредактирован или создан новый, как это необходимо для работы в требуемом контексте. Это позволило бы применять программу в различных ситуациях, включая известный сценарий DOCTOR, который имитирует роджерианского психотерапевта. [16]
Версия ELIZA на Lisp , основанная на статье Вейценбаума о CACM, была написана вскоре после публикации этой статьи Берни Коселлом. [28] [29] Версия на BASIC появилась в Creative Computing в 1977 году (хотя она была написана в 1973 году Джеффом Шрагером). [30] Эта версия, которая была портирована на многие из самых ранних персональных компьютеров, по-видимому, впоследствии была переведена на многие другие версии на многих других языках. Шрагер утверждает, что не видел ни версии Вейценбаума, ни версии Коселла.
В 2021 году Джефф Шрагер исследовал архивы Вайценбаума Массачусетского технологического института вместе с архивариусом Массачусетского технологического института Майлзом Кроули и нашел файлы с меткой Computer Conversations. Они включали полный исходный код ELIZA в MAD-SLIP с прикрепленным скриптом DOCTOR. Наследники Вайценбаума дали разрешение на открытие исходного кода этого кода в соответствии с лицензией Creative Commons CC0 , находящейся в общественном достоянии . Код и другую информацию можно найти на сайте ELIZAGEN. [29]
Другая версия Eliza, популярная среди инженеров-программистов, — это версия, которая поставляется с выпуском GNU Emacs по умолчанию и к которой можно получить доступ, набрав команду M-x doctor
из большинства современных реализаций Emacs .
Из рисунка 15.5, главы 15 книги «Обработка речи и языка» (третье издание). [31]
функция ELIZA GENERATOR(user sentence ) возвращает ответ Пусть w будет словом в предложении , которое имеет наивысший рейтинг ключевого слова если w существует Пусть r будет правилом с наивысшим рейтингом для w, которое соответствует предложению ответ ← Применить преобразование в r к предложению если w = 'мой' будущее ← Применить преобразование из списка правил «памяти» к предложению Поместить будущее в очередь памяти в противном случае (ключевое слово не применяется) Или ответ ← Применить преобразование для ключевого слова NONE к предложению Или ответ ← Извлечь самый старый ответ из очереди памяти Ответить
Реакция обывателей на ELIZA беспокоила Вайценбаума и побудила его написать книгу « Мощь компьютеров и человеческий разум: от суждения к расчету» , в которой он объясняет ограничения компьютеров, поскольку он хочет прояснить свое мнение о том, что антропоморфные взгляды на компьютеры — это просто уменьшение человеческих существ или любой другой формы жизни в этом отношении. [32] В независимом документальном фильме «Подключи и молись» (2010) Вайценбаум сказал, что только люди, которые неправильно поняли ELIZA, назвали ее сенсацией. [33]
Дэвид Авидан , который был очарован будущими технологиями и их связью с искусством, хотел исследовать использование компьютеров для написания литературы. Он провел несколько бесед с реализацией APL ELIZA и опубликовал их — на английском языке и в своем собственном переводе на иврит — под названием «Мой электронный психиатр — восемь подлинных бесед с компьютером» . В предисловии он представил это как форму ограниченного письма . [34]
Существует множество программ на основе ELIZA на разных языках программирования. Для компьютеров MS-DOS некоторые карты Sound Blaster поставлялись в комплекте с Dr. Sbaitso , который функционирует как скрипт DOCTOR. Другие версии адаптировали ELIZA вокруг религиозной темы, например, с участием Иисуса (как серьезного, так и комичного), и еще один вариант Apple II под названием I Am Buddha . Игра 1980 года The Prisoner включала взаимодействие в стиле ELIZA в свой игровой процесс. В 1988 году британский художник и друг Вайценбаума Брайан Реффин Смит создал две программы в стиле ELIZA, ориентированные на искусство, написанные на BASIC , одну под названием «Critic», а другую — «Artist», работавшие на двух отдельных компьютерах Amiga 1000 , и показал их на выставке «Salamandre» в Музее Берри, Бурж , Франция. Посетитель должен был помочь им общаться, вводя «Artist» то, что сказал «Critic», и наоборот. Секрет был в том, что две программы были идентичны. Раньше в GNU Emacs была psychoanalyze-pinhead
команда , которая имитировала сеанс между ELIZA и Zippy the Pinhead . [35] Zippyisms были удалены из-за проблем с авторскими правами, но программа DOCTOR осталась.
ELIZA упоминается в популярной культуре и продолжает оставаться источником вдохновения для программистов и разработчиков, занимающихся искусственным интеллектом. Она также была представлена на выставке 2012 года в Гарвардском университете под названием «Go Ask ALICE » в рамках празднования 100-летия математика Алана Тьюринга . Выставка исследует пожизненное увлечение Тьюринга взаимодействием между людьми и компьютерами, указывая на ELIZA как на одну из самых ранних реализаций идей Тьюринга. [1]
ELIZA выиграла премию Legacy Peabody Award 2021 года . В препринте 2023 года сообщалось, что ELIZA превзошла OpenAI GPT -3.5 , модель, используемую ChatGPT в то время, в исследовании теста Тьюринга . Однако она не превзошла GPT-4 или реальных людей. [36] [37]
В 1969 году Джордж Лукас и Уолтер Марч включили диалоговый интерфейс в стиле Элизы в свой сценарий к художественному фильму THX-1138 . Обитатели подземного будущего мира THX, когда испытывали стресс, уходили в «исповедальни» и начинали односторонний разговор по формуле Элизы с компьютером с лицом Иисуса, который утверждал, что он «OMM». [ необходима цитата ]
Научно-фантастический роман Фредерика Поля «Gateway» заставляет рассказчика проходить терапию в клинике, которой управляет искусственный интеллект , выполняющий задачу фрейдистского терапевта , которого он называет «Зигфрид фон Шринк». Роман содержит несколько страниц (бессмысленного) машинного кода, иллюстрирующего внутренние процессы Зигфрида.
ELIZA повлияла на ряд ранних компьютерных игр , продемонстрировав дополнительные виды дизайна интерфейса . Дон Даглоу утверждает, что он написал улучшенную версию программы под названием Ecala на миникомпьютере DEC PDP-10 в колледже Помона в 1973 году. [ необходима цитата ]
В видеоигре 2011 года Deus Ex: Human Revolution и в сиквеле 2016 года Deus Ex: Mankind Divided присутствует искусственный интеллект в качестве диктора новостей Picus TV Network по имени Элиза Кассан. [38]
В документальном фильме Адама Кертиса 2016 года «Гипернормализация » ЭЛИЗА упоминается в связи с постправдой . [39]
В двенадцатом эпизоде американского ситкома « Молодой Шелдон» , вышедшем в эфир в январе 2018 года, главный герой «разговаривает» с ЭЛИЗОЙ, надеясь решить домашнюю проблему. [40]
12 августа 2019 года независимый разработчик игр Zachtronics опубликовал визуальный роман под названием Eliza , рассказывающий о консультационной службе на основе искусственного интеллекта, вдохновленной ELIZA. [41] [42]
В романе «Убийство на краю света » антропоморфный персонаж, обладающий степенью магистра права, Рэй приводит Элизу в пример того, как некоторые люди могут искать убежища у нечеловеческого терапевта.
Самым известным проектом CTSS Джо Визенбаума был ELIZA