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