В чем заключается суть теста тьюринга
Тест Тьюринга
Итак сегодня мы поговорим о самом известном тесте для оценки говорящего бота — это тест Тьюринга.
Тест Тьюринга — эмпирический тест, идея которого была предложена Аланом Тьюрингом в статье «Вычислительные машины и разум» (англ. Computing Machinery and Intelligence), опубликованной в 1950 году в философском журнале «Mind». Тьюринг задался целью определить, может ли машина мыслить.
Стандартное звучание закона: «Если компьютер может работать так, что человек не в состоянии определить, с кем он общается — с другим человеком или с машиной, — считается, что он прошел тест Тьюринга»
Разумные, подобные человеку машины на протяжении многих десятилетий были одной из основных тем научно-фантастических произведений. С момента зарождения современной вычислительной техники умы людей занимал вопрос: можно ли построить машину, которая могла бы в чем-то заменить человека. Попыткой создать твердую эмпирическую почву для решения этого вопроса и стал тест, разработанный Аланом Тьюрингом.
Первый вариант теста, опубликованный в 1950 году, был несколько запутанным. Современная версия теста Тьюринга представляет собой следующее задание. Группа экспертов общается с неизвестным существом. Они не видят своего собеседника и могут общаться с ним только через какую-то изолирующую систему — например, клавиатуру. Им разрешается задавать собеседнику любые вопросы, вести разговор на любые темы. Если в конце эксперимента они не смогут сказать, общались ли они с человеком или с машиной, и если на самом деле они разговаривали с машиной, можно считать, что эта машина прошла тест Тьюринга.
Существуют, по крайней мере, три основных варианта теста Тьюринга, два из которых были предложны в статье «Вычислительные машины и разум», а третий вариант, по терминологии Саула Трейджера (Saul Traiger), является стандартной интерпретацией.
Наряду с тем, что существует определенная дискуссия, соответствует ли современная интерпретация тому, что описывал Тьюринг, либо она является результатом неверного толкования его работ, все три версии не считаются равносильными, их сильные и слабые стороны различаются.
Имитационная игра
Тьюринг, как мы уже знаем, описал простую игру для вечеринок, которая включает в себя минимум трех игроков. Игрок А — мужчина, игрок В — женщина и игрок С, который играет в качестве ведущего беседу, любого пола. По правилам игры С не видит ни А, ни В и может общаться с ними только посредством письменных сообщений. Задавая вопросы игрокам А и В, С пытается определить, кто из них — мужчина, а кто — женщина. Задачей игрока А является запутать игрока С, чтобы он сделал неправильный вывод. В то же время задачей игрока В является помочь игроку С вынести верное суждение.
В той версии, которую С. Г. Стеррет (S. G. Sterret) называет «Первоначальный тест на основе имитационной игры» (Original Imitation Game Test), Тьюринг предлагает, чтобы роль игрока А исполнял компьютер. Таким образом, задачей компьютера является притвориться женщиной, чтобы сбить с толку игрока С. Успешность выполнения подобной задачи оценивается на основе сравнения исходов игры, когда игрок А — компьютер, и исходов, когда игрок А — мужчина. Если, по словам Тьюринга, «ведущий беседу игрок после проведения игры [с участием компьютера] выносит неверное решение так же часто, как и после проведения игры с участием мужчины и женщины», то можно говорить о том, что компьютер разумен.
Второй вариант предложен Тьюрингом в той же статье. Как и в «Первоначальном тесте», роль игрока А исполняет компьютер. Различие заключается в том, что роль игрока В может исполнять как мужчина, так и женщина.
«Давайте рассмотрим конкретный компьютер. Верно ли то, что модифицируя этот компьютер с целью иметь достаточно места для хранения данных, увеличивая скорость его работы и задавая ему подходящую программу, можно сконструировать такой компьютер, чтобы он удовлетворительно выполнял роль игрока А в имитационной игре, в то время как роль игрока В выполняет мужчина?», — Тьюринг, 1950, стр. 442.
В этом варианте оба игрока А и В пытаются склонить ведущего к неверному решению.
Главной мыслью данной версии является то, что целью теста Тьюринга является ответ не на вопрос, может ли машина одурачить ведущего, а на вопрос, может ли машина имитировать человека или нет. Несмотря на то, что идут споры о том, подразумевался ли этот вариант Тьюрингом или нет, Стеррет считает, что этот вариант Тьюрингом подразумевался и, таким образом, совмещает второй вариант с третьим. В это же время группа оппонентов, включая Трейджера, так не считает. Но это все равно привело к тому, что можно назвать «стандартной интерпретацией». В этом варианте игрок А — компьютер, игрок В — человек любого пола. Задачей ведущего является теперь не определить кто из них мужчина и женщина, а кто из них компьютер, а кто — человек.
Для организации мероприятий по празднованию в 2012 году столетия со дня рождения Тьюринга создан специальный комитет, задачей которого является донести мысль Тьюринга о разумной машине, отраженную в таких голливудских фильмах, как «Бегущий по лезвию», до широкой публики, включая детей. В работе комитета участвуют: Кевин Ворвик, председатель, Хьюма Ша, координатор, Ян Бланд (Ian Bland), Крис Чапмэн (Chris Chapman), Марк Аллен (Marc Allen), Рори Данлоуп (Rory Dunlop), победители конкурса на получение премии Лёбнера Робби Гарне и Фред Робертс (Fred Roberts). Комитет работает при поддержке организации «Женщины в технике» (Women in Technology) и Daden Ltd.
Тест Тьюринга глазами очевидца
В истории науки об управлении и связи в живом организме и машине — кибернетики — 7 июня 2014 года произошло эпохальное событие: тест для определения искусственного интеллекта, придуманный британским математиком Аланом Тьюрингом 64 года назад, был пройден.
Участники ТТ 07.06.2014, организованного британским Университетом Рединга. Фото: Альберт Ефимов
Важность этого события трудно переоценить, несмотря на то, что преодоление этого важного рубежа мало кем было замечено. Прежде, чем перейти непосредственно к событию, давайте я немного расскажу о развитии исследований интеллекта и о том, что есть тест Тьюринга.
Отгремела последняя мировая война. В пекле этой войны родились все великие инновации 20 века, которые определили дальнейший ход развития технологий: реактивный полет, космические ракеты, атомная энергия, радиолокация, компьютеры.
Алан Тьюринг, математик, был одним из разработчиков первых ЭВМ. Именно с помощью этих электронных вычислителей союзники читали немецкую шифрованную переписку как открытую книгу. Важность таких разработок стала очевидна в то время.
Задумавшись о развитии этих машин, Тьюринг поставил важнейший вопрос: может ли машина мыслить? Затем этот общий вопрос он свел к другому, более простому: можно ли сделать так, что мышление машины (и речь, как отражение мышления) стало невозможно отличить от мышления (и речи) человека? Может ли человек спутать, с кем он говорит — с машиной или с человеком?
Алан Тьюринг был странным и необычным математиком. Его статья «Computing machinery and intelligence», написанная в 1950 году, не утратила актуальности и по сей день: мы так же постоянно спорим о том, имеет ли машина мышление?
Стандартная интерпретация теста Тьюринга (ТТ), согласно «Википедии», звучит так: «Человек взаимодействует с одним компьютером и одним человеком. На основании ответов на вопросы он должен определить, с кем он разговаривает: с человеком или компьютерной программой. Задача компьютерной программы — ввести человека в заблуждение, заставив сделать неверный выбор».
Тьюринг посчитал, что к 2000 году машины будут способны ввести в заблуждение 30% собеседников при условии длительности беседы не более 5 минут.
Желающие получить подробное представление о философии, которая лежит за этим тестом могут посмотретьзамечательный фильм, снятый в СССР, на эту тему.
C того времени предпринималось множество попыток преодолеть ТТ. Первая важнейшая веха была пройдена компьютерной программой ЭЛИЗА, созданной Джозефом Вейценбаумом.
Опять же, был снят гениальный документальный фильм Plug and Pray, который неоднократно демонстрировался на наших мероприятиях Открытым Университетом Сколково.
Прогресс в области изучения естественных языков и повышение мощности компьютеров привел к тому, что возможности для выполнения ТТ пришли с самого неожиданного направления — со стороны чатботов. Чатботы — это компьютерные программы, специально разработанные для моделирования диалога на естественном языке. Покупка и последующее превращение программы SRI в Siri (ПО, установленное в iPhone) — помогло развитию индустрии искусственных помощников. Сейчас активно развиваются приложения для диалога компьютера и человека: для развлечения, обучения, маркетинга и прочие. В «Сколково» есть пара многообещающих проектов на эту тему — «Наносемантика» и «Спиктуит».
Но основная цель, заданная Тьюрингом, до последнего времени оставалась недостижимой: чатботы были скучны и совершено банально демонстрировали машинный интеллект, отдающий жаром процессора и машинным маслом. До 7 июня 2014 года.
Снимок экрана домашней страницы чатбота «Евгений Густман».
В этот день рубеж был преодолен. Чатбот, созданный под руководством российского программиста Владимира Веселова, живущего и работающего в США, сумел преодолеть 30% барьер, установленный Тьюрингом более полувека назад.
Сам Владимир рассказал про себя, команду и свой чатбот следующее:
«Чатбот «Евгений Густман» был создан командой энтузаистов в 2001 году. В 2001 мы попали в финал Loebner Prize, где поделили 2-3 место с Эллой.
В состав команды входили: Евгений Демченко, Сергей Уласень, Михаил Гершкович, Джон Деннинг, Андрей Адащик, Игорь Быковских, Селена Семушкина. Графический образ создан Лореном Алкир (Laurent Alquier). Основная часть команды находится в Санкт Петербурге.
После этого программа и база знаний дорабатывались, исправлялись недостатки. В 2012-м году Густман победил в соревнованиях, посвященных 100-летию со дня рождения Алана Тьюринга, предсказавшего в 1950 году что к 2000-му году компьютеры смогут имитировать человека так, что средний собеседник с вероятностью более 30% будет принимать робота за человека в течение пяти минут диалога. В 2012 результат был 29.2 %, в 2014 — 33.3%.
Программа «Евгений Густман» состоит из базы знаний, которая имеет около трех тысяч шаблонов распознавания фраз пользователя. Это довольно немного, по сравнению с другими чатботами. Мы использовали также различные методы управления диалогом, которые позволяют имитировать именно человека, а не поисковую машину. Евгений старается направить беседу в нужное ему русло, стараясь создавать такие ситуации, когда его фраза выглядят человекоподобно. При короткой продолжительности беседы — 5 минут — такой подход часто срабатывает».
Владимир Веселов закочнил Военный Инженерно-Космический Институт им. А.Ф. Можайского, служил на Байконуре, закончил адъюнктуру ВИКА им. А.Ф. Можайского, работал программистом, научным сотрудником. В данный момент является разрабочиком программного обеспечения в компании Amazon Web Services.
ТТ проходил следующим образом: команда ученых-организаторов теста под руководством профессора Кевина Варвика и его ассистента Хумы Шан собрала судей (30 человек, поделенных на 4 смены) и «скрытых людей», которые должны были вести диалог. В тесте участвовало также пять чатботов, которые общались на английском языке.
Тест Тьюринга. Иллюстрация: сайт Университета Рединга
Каждый судья имел перед собой экран монитора, разделенный на две части. Судья должен был вести диалог одновременно с двумя «сущностями». При этом было неизвестно, кто из них компьютер, а кто — человек. Ровно, как в классическом тесте. Через пять минут окна отключались. Судья заполнял анкету и потом приступал к оценке следующей пары. Основная задача — определить, с кем шел диалог: с машиной или же с человеком.
Программа, созданная Владимиром Веселовым и его коллегами, смогла ввести в заблуждение ровно треть всех судей, присутствовавших на мероприятии. Поверьте, большей концентрации профессоров кибернетики я видел только на собраниях академии наук.
Подошли к концу четыре смены оценки, оргкомитет принялся подсчитывать бюллетени.
После всех церемоний я подошел к профессору и уточнил: действительно ли произошедшее означает, что ТТ окончательно пройден? «Да, — ответил профессор Варвик. — Мы специально пригласили судей и независимых наблюдателей — уважаемых ученых, чтобы все было сделано правильно и никаких сомнений не оставалось. Именно так: тест Тьюринга, пройден. Причем с оценкой значительно превосходящей — на 10% — оценку, данную самим Тьюрингом».
В целом, можно сказать, что для оценки искусственного интеллекта теперь надо придумывать другие тесты.
Скажу еще несколько слов о значении этого события для будущего. Прежде всего, это означает, что проникновение информационных систем в межчеловеческое общение ускоряется. Через пять лет уже невозможно будет сказать, общаетесь вы с живым оператором контактного центра или с машиной. Разницу будет можно почувствовать лишь через 5 минут общения. Второе — срочно необходимо решать вопрос с проведением ТТ на русском языке. Сейчас мы явно отстаем от зарубежных коллег, ведущих исследования ИИ на английском языке. Соревновательный подход, практикуемый на родине спорта — Британии — явно показал свою эффективность. Может быть, нам в Сколково стоит взять инициативу в свои руки и впервые провести ТТ на русском языке?
Что на самом деле проверяет Тест Тьюринга
Некоторое время назад я предложил сыграть в Тест Тьюринга с моим ботом Мишей. Кто попробовал, тот знает, что игрок-робот определяется элементарно. Кто не пробовал, может прочитать об этом в первом же комментарии под той статьей.
Теперь настал момент устроить разбор полетов, рассказать об устройстве бота и сделать выводы.
Правила игры
Правила игры были перечислены в предыдущей статье, повторю здесь, чтобы вам и мне не бегать по ссылкам.
С момента запуска до момента написания статьи было сыграно 256 игр (немного странно, но факт).
Из них закончились с явным результатом, то есть обе стороны сыграли до конца очередного тура (больше одного тура никто не играл) и судья принял решение — 115 игр
В итоге робот правильно определялся в (74-15)/115 = 51% игр, а робота приняли за человека в 11/115 = 9.5% игр, то есть можно уверенно сказать, что Миша-бот тест не прошел.
Что под капотом
Бот написан на Python и по большому счету состоит из трех модулей:
На переходах между состояниями бот передает вопросы судьи к игроку, ответы от игрока судье. Передается только по одному сообщению и бот становится в следующее состояние, поэтому если кто пытался спросить или ответить двумя, видел, что бот это не позволяет делать.
Когда бот получает ответ от робота, он передает ее не сразу, а с задержкой времени — это не сразу появилось, я ее добавил по замечанию galqiwi, спасибо.
Каждое изменение состояния сохраняется в БД SQLite, на случай непредвиденных ситуаций — пропадания электросети, перезагрузки операционки или попросту хозяину бота (мне, то бишь) захотелось остановить его и что-то переделать. При новом запуске бот загружает из БД сохраненные игры, и игра продолжается.
Далее, есть две очереди ожидания — судей, ожидающих игроков, и игроков, ожидающих судей. Когда участник начинает новую игру, просматривается соответствующая очередь, есть ли ему партнёр. Если нет, то сам участник ставится в очередь.
В отдельном потоке живёт диспетчер роботов. Он периодически просматривает очередь судей, ожидающих игроков, и создаёт для них экземпляр робота. В нём специально сделана задержка, чтобы робот не всегда успевал перехватить судью и человек-игрок тоже имел шанс подключиться к игре. В диспетчере заложена возможность создавать различные варианты роботов, нужно просто зарегистрировать их классы. Но пока реализован всего один.
И, наконец, модуль робота. Но прежде, чем рассказать о внутренностях робота, расскажу о базе вопросов и ответов, с которой он работает.
Сначала я набил такой текстовый файл:
… ну и так далее. Затем отдельной утилиткой считал их в базу данных — таблица вопросов, таблица ответов, связь между ними многие-ко-многим. Плюс табличка использованных слов с линками на вопросы. Причем слова сохранялись не в оригинальной форме, а в нормальной и с синонимами. Нормальная форма слова определялась по pymorphy2 от kmike, а синонимы к ней искались из словаря YARN, предварительно сконвертированного из XML в SQLite — словарь занял всего 22 мегабайта, а сколько удовольствия…
Метод поиска синонимов к нормальной форме слова:
Теперь собственно робот. Вообще от робота требуется реализация лишь одного метода
, то есть просто получение ответа на заданный вопрос. Если роботу надо хранить предыдущие вопросы и контекст, какие-то дополнительные действия, то он делает это сам. Поскольку на каждую игру создается свой экземпляр класса робота, то контексты из разных чатов не пересекаются.
Поиск нужного ответа мой робот делает в два этапа:
Как видите, робот не умеет «думать» над ответом, всё, что он может ответить — это одна из заготовок, подходящая или неподходящая для очередного вопроса. Вы скажете, что это фигня, а я скажу — читайте классиков.
«Словарь Вильяма Шекспира, по подсчёту исследователей, составляет 12000 слов. Словарь негра из людоедского племени «Мумбо-Юмбо» составляет 300 слов. Эллочка Щукина легко и свободно обходилась тридцатью.«
Правда, классики не упомянули, обладала ли Эллочка Щукина интеллектом, пусть даже искусственным. Наверное, и сами не были уверены.
Выбор персонажа
Как видите, простота алгоритма робота не позволяет ему поддерживать сложные диалоги, поэтому встал вопрос, какого человека, точнее персонажа, сможет имитировать робот.
Нужен был персонаж, который может отвечать уклончиво, путаться в ответах, не стесняется повторяться. Но, с другой стороны, который был бы похож на человека. Так как я не обеспечил робота какими-либо книжными знаниями и не снабдил его возможностью искать в интернете, то его персонаж не мог быть взрослым образованным человеком. Его область знаний должна была ограничиваться минимумом, только тем, что он сам мог видеть и понять.
Было соблазнительно выбрать Людоедку Эллочку — а что, минимум словарного и фразеологического запаса, любой заготовленный ответ годится практически на любой вопрос. Но это было не интересно, хотелось усложнить задачу.
Поэтому выбор пал на роль ребенка. Возраст у ребенка должен быть такой, чтобы позволять ему связно говорить, понимать — это где-то от двух-трех лет. Он должен знать какие-то базовые вещи, но еще плохо работать с абстракциями. Например, я не вкладывал в робот калькулятор, поэтому и робот в роли ребенка не сможет посчитать «один плюс два» — так что отпадает школьный возраст и близкий к нему. Так что я взял средний возраст в пять лет, когда дети достаточно самоуверенны, но толком еще ничего не знают.
Однако, выбрав для робота роль ребенка, я понимал, что следствием этого выбора будет необходимость, чтобы все игроки-люди так же играли роль маленького мальчика. Практика показала, что мало кто это всерьез воспринял, отвечали как хотели, только что телефонами не обменивались.
Железо
Осталось показать тот суперкомпьютер, на котором живет Миша-бот:
Это Raspberry Pi 3. На хвосте к нему висит SSD, прицеплен на всякий случай, если понадобится активная работа с базами данных, но в самом роботе не используется.
Собственно, это всё о роботе Мише.
Размышления о Тесте Тьюринга
За почти семьдесят лет с момента написания статьи Тесту Тьюринга нашли определение, что это бихевиористский подход, сравнительный анализ на основе поведения — поведение человека сравнивается с поведением машины. Оно, конечно, так, однако я хочу обратить внимание на другие аспекты, на которые Алан Тьюринг, похоже, не обратил внимания.
Итак, то, что мы называем Тестом Тьюринга, было описано Тьюрингом в статье «Может ли машина мыслить?» (первая публикация называлась «Computing Machinery and Intelligence») и названо автором «игрой в имитацию». Если исходить лишь из её названия, можно было полагать, что игроки действительно должны имитировать поведение друг друга — человек притворяется машиной, а машина человеком. Но по замыслу Тьюринга в игре лишь машина должна подражать человеку.
Цитата:
«Можно было бы заметить, что при «игре в имитацию» не исключена возможность того, что простое подражание поведению человека не окажется для машины наилучшей стратегией. Такой случай возможен, но я не думаю, чтобы он привел нас к чему-нибудь существенно новому. Во всяком случае никто не пытался исследовать теорию нашей игры в этом направлении, и мы будем считать, что наилучшая стратегия для машины состоит в том, чтобы давать ответы, которые в соответствующей обстановке дал бы человек.«
Человеку-игроку же Тьюринг отвел роль не активного участника, который может запутывать судью своими сознательно неправильными ответами, а лишь роль образца, контрольного примера, с которым задающий вопросы будет сравнивать ответы машины. От человека ожидается естественное поведение, типичное для человека.
Цитата:
«Если бы человек попытался притвориться машиной, то, очевидно, вид у него был бы весьма жалкий. Он сразу выдал бы себя медлительностью и неточностью при подсчетах.«
Замечу, что Тьюринг не говорит, что человек не должен имитировать машину. Хотя человек может, если хочет, имитировать машину, другого человека или инопланетянина, вообще заниматься чем угодно, даже игнорировать вопросы или задавать встречные, но цель игры — получить ответ на вопрос «может ли [данная] машина мыслить?», поэтому человек здесь лишь помогает задающему вопросы в достижении цели, а не препятствует ему.
Из ответов бота:
«2018-10-23 13:01:53,385 186 Player2Judge Стал бы человек вести себя как машина, чтобы обмануть другого человека?«
Подытожу — два игрока, машина и человек:
Лучшее качество машины
Разобравшись с правилами, следующим шагом предположим, что мы хотим построить мыслящую машину. Как она должна работать, точнее, как она должна проявлять свои мысленные способности?
Мы можем воспользоваться представлениями о мыслящей машине из кинофантастики. Подходит ли Джарвис из «Железного человека» под это определение? R2-D2 или C-3PO из «Звездных войн»? Дэвид из «A.I.»? Долорес Абернати из «Мира Дикого Запада»? Афина из «Земли будущего»? ВАЛЛ-И из одноименного мультфильма? Вроде про каждого из них интуитивно можно сказать, что это мыслящие машины, потому что они ведут себя осмысленно, и не похоже, что они действуют по какой-то относительно простой программе.
Теперь проведем мысленный эксперимент — зададимся вопросом, какая из перечисленных машин скорее всего пройдет Тест Тьюринга? По условиям игры для этого достаточно ответить на вопрос, какая из машин сможет сымитировать человека так, что по его ответам его нельзя будет отличить от настоящего человека.
Очевидно, сразу отпадут роботы R2-D2 и ВАЛЛ-И, как не умеющие разговаривать на человеческом языке, и их я предлагаю далее не рассматривать.
Также очевидно, что в претендентах на победу окажутся машины, специально сконструированные для такой имитации — из нашего списка это Долорес и Афина. Причем если Долорес (я имею в виду её в статусе «девы в беде» в начале первого сезона) сама считает себя человеком, то Афина, напротив, вполне чётко понимает, что она робот, но может исполнить, при необходимости, имитацию на достаточно высоком уровне.
Что же касается Джарвиса, C-3PO и Дэвида, то они тоже осознают, что они машины, и не имеют ни склонности, ни способности скрывать это от людей. Задающему вопросы не придется подлавливать их на каких-то каверзных вопросах, они и сами во всем признаются.
И вот к чему мы пришли. Оказалось, что Тест Тьюринга пройдет машина, которая:
В защиту Тьюринга надо сказать, что перед ним не стояла задача оценки моральных качеств машины. Он искал даже не ответ, а способ получения ответа на вопрос «может ли машина мыслить?», и это в то время (1950), когда задача создания искусственного интеллекта казалась скорее фантастикой, чем теоретической наукой. На этом фоне «игра в имитацию» была значительным шагом вперёд в понимании, как оценивать искусственный интеллект.
Цитата:
«… нас интересует не то, будут ли все цифровые вычислительные машины хорошо играть в имитацию, и не то, будут ли хорошо играть в эту игру те вычислительные машины, которыми мы располагаем в настоящее время; вопрос заключается в том, существуют ли воображаемые вычислительные машины, которые могли бы играть хорошо.«