ruTiE
Описание задачи
Turing-test Interview Emulation (ruTiE) — русскоязычный тест на симуляцию теста Тюринга. Датасет имитирует связный диалог с испытуемым, где ему задается набор вопросов на различные темы и испытуемому нужно для каждого вопроса выбрать наиболее правильный из двух вариантов ответ. Темы вопросов покрывают различные категории, на разные аспекты теста Тьюринга. Вопросы подразумевают, что испытуемый (модель) полностью помнит контекст диалога и может иметь отсылку к предыдущим частям. Особенность заключается в том, что ответы не обязательно представлены в чисто бинарном формате, когда только один является правильным, а второй ложным. Необходимо обработать оба ответа и выбрать тот, который более близок к правильному ответу, что дополнительно усложняет решение и вносит дополнительный шаг рассуждений.
Ключевые слова: память, контекст, логика, знания о мире, здравый смысл
Мотивация
Первая версия датасета представляет собой полноценный длинный диалог, в ходе которого модель отвечает на ряд взаимосвязанных (либо нет) вопросов. Датасет исследует:
- длину контекста моделей и память. Для этого в датасете прописаны специальные поля в meta, которые указывают на то контекстуальный вопрос или нет. Если вопрос самостоятелен и может быть задан в той же формулировке с теми же вариантами ответов без снижения возможности ответить верно, то в мета-информации вопроса в поле контекста стоит
False
, если же вопрос опирается на контекст предыдущей беседы и не может быть полностью понят и интерпретирован без этого контекста — то в мета-информации вы увидитеTrue
. - в начальной мере - возможности моделей сразу по нескольким категориям направления мышления, которые необходимы, чтобы решить эмуляцию Теста Тьюринга (категории подобраны так, чтобы разрабатывать любой последующий датасет подобного типа с учётом дефолтной возможности их идентифицирования):
sentiment
(эмоциональная окраска)intent
(намерения участников диалога или описанных в вопросе персонажей)style
(стилистика текста; например, принадлежность его к канцелярскому стилю, к стилю определённых авторов и т.п.)humor
(наличие юмора, умение определять, насколько текст смешной)irony
(ирония и её детекция)facts
(фактологическая точность, честность)profanity
(профанная/обсценная лексика)text_metrics
(простые символьные/математические операции, посчитать число букв, число согласных, гласных, звонких, глухих, посчитать слова на букву «о», решить простейший математический пример, данный в текстовой или цифровой форме и т.п.)language_structure
(способность воспринимать формы слов и структурно-формообразующие отношения в предложении: флексии, согласованность текста, орфографию/синтаксис и т.д.)topic_modelling
(способность определять тематику текста)multilanguage
(кросс-язычные и мультиязычные задачи)algorithmic_transformations
(разные тексты-перевёртыши, сортировка символов, добавление/удаление частей, редупликации и т.д. и т.п.)
3) способности модели различать базовые классы задач, которые необходимы, чтобы решить эмуляцию теста Тьюринга (они и составляют датасет):
world
— знания о мире;math
— символьные вычисления, математика, логика;memory
— активизация функции направленной долговременной памяти модели, включить некоторую информацию и вопрос в память, извлечь некоторую информацию из долговременной памяти;reasoning
— выводы, причинно-следственные связи;strings
— операции со строками (анаграммы, подсчеты под-последовательностей и т.д.);spell
— вопросы связанные с правописанием, и составом слов;games and rules
— умение обращаться с системами, построенными на правилах (игры, в том числе шахматные задачи, ПДД, головоломки и подобные тому системы);sound
— текстовые вопросы на звуковую модальность и аудиоформу слова, звуки, ударения, рифму, аудио по тексту;shape
— вопросы на ассоциативные связи, “осознание” форм реального мира через символьные системы и графические объекты;lexis
— знания о системе языка, лингвистические знания, словообразование (гиперонимы/гипонимы, термины родства, и т.д.);emotion
— распознавание эмоций;ethics
— этические задачи;trap
— вопросы с подвохом, контекстуальные или логико-лингвистические ловушки (подводка к неправильному ответу, сбивание с хода диалога).
Описание данных
Поля Датасета
Каждый пример данных содержит следующие поля:
— инструктивный промпт, соотвествующий текущему заданию;instruction
— словарь, содержащий следующую информацию:inputs
— вопрос;question
— вариант ответаchoice1
;1
— вариант ответаchoice2
;2
— информация об ответе, возможные варианты:outputs
или1
;2
— метаинформация о задачеmeta
— номер диалога (от нуля);dialog_id
— порядковый номер вопроса в диалоге;question_id
— категория вопроса;category
— нужен ли контекст для ответа на вопрос;use_context
— класс имитации.turing_imitation
Примеры датасета
Один полный пример задания — это один диалог.
Формально диалог выглядит следующим образом:
[
{
"instruction": "Вам дан диалог и два варианта ответа. Учитывая контекст диалога, ответьте на последний вопрос, поставив только цифру 1 или 2.\n{context}\n{question}\n1. {choice1}\n2. {choice2}\nКакой ответ из двух наиболее правильный?",
"inputs": {
"question": "Сколько ног у человека?",
"choice1": "Две",
"choice2": "Четыре"
},
"outputs": "1",
"meta": {
"dialog_id": 0,
"question_id": 0,
"category": [
"world"
],
"use_context": false,
"turing_imitation": [
"facts"
]
}
},
{
"instruction": "Вам дан диалог, в котором необходимо продолжить реплики. Учитывая контекст диалога, и два варианта ответа на реплику (вопрос) ответьте на последний вопрос.\n{context}\n{question}\n1. {choice1}\n2. {choice2}\nКакой ответ наиболее правильный? Укажите только номер ответа без дополнительных пояснений.",
"inputs": {
"question": "А у муравья?",
"choice1": "Две",
"choice2": "Шесть"
},
"outputs": "2",
"meta": {
"dialog_id": 0,
"question_id": 1,
"category": [
"world"
],
"use_context": true,
"turing_imitation": [
"facts"
]
}
}
]
Чтобы прогнать модель на датасете, вам необходимо последовательно подавать реплики по
друг за другом и добавлять ответ модели в контекст, в поле question_id
инструкции.
context
Например:
- взять диалог
dialog_id=0
; - последовательно по
question_id
подать вопросы в модель и получить результат; - поле
context
на первом вопросе является пустой строкой, с каждым следующим вопросом диалога в полеcontext
пишется{question}\nОтвет:`
и ответ из предыдущих реплик, ответ пишется в форме текста, который берется с варианта ответа из полейchoice1
либоchoice2
.
То есть инструкция для второй реплики диалога, если мы на первый вопрос ответили, что у Человека четыре ноги (choice2), выглядит следующим образом:
Вам дан диалог, в котором необходимо продолжить реплики. Учитывая предыдущий контекст диалога, и два варианта ответа на вопрос ответьте на последний.
{question}
1) {choice1}
2) {choice2}
Какой ответ наиболее правильный?
Ответ:
- далее, надо подставить по аналогии вопрос и варианты ответа следующего порядкового примера из датасета и отправить их в модель:
Вам дан диалог, в котором необходимо продолжить реплики. Учитывая предыдущий контекст диалога, и два варианта ответа на вопрос ответьте на последний.
Сколько ног у человека?
1. Две
2. Четыре
Ответ: 1
А у муравья?
1) Две
2) Шесть
Какой ответ наиболее правильный?
Ответ:
- и так далее до конца диалога.
💡 соблюдайте последовательность реплик! Строго по `question_id`, иначе весь датасет будет решен неправильно.
Разбиение данных
Первая версия датасета состоит лишь из одного длинного диалога длины 500 для тренировочного публичного сета, и одного диалога длины 4500 для тестового датасета.
Промпты
Инструкция (промпт) подается на датасет целиком, а не к каждой реплике. Были подобраны 10 разных промптов, таких как:
"Ниже приведен диалог, в котором последней репликой является вопрос. Выберите ответ на этот вопрос из двух приведенных вариантов, укажите только цифру 1 или 2.\nДиалог:\n{context}\n{question}\nВарианты ответа:1. {choice1}\n2. {choice2}\nОтвет:"
Создание датасета
Датасет собран вручную разметчиками, и затем провалидирован.
Оценка
Метрики
Датасет представляет собой полноценный длинный диалог, с бинарными заданиями по различным тематикам. Закрытый сет — это один такой диалог, качество по которому считается метрикой точность (Accuracy), средней по диалогу.
Человеческая оценка
Для замера уровня человека на этой задачи мы провели человеческую оценку на одном из диалогов тестового сета из 430 примеров. Для этого мы создали 2 дизайна на краудсорсинговой платформе, как люди будут решать задачу:
1) если человеку показывать предыдущий контекст;
2) без контекста, последовательно задавая вопросы человеку, рассчитывать на человеческую память.
Accuracy для варианта (1) с показом истории ответов = 0.942.
Accuracy для варианта (2) без показа истории ответов = 0.976.
Ограничения
Отсутствует баланс классов по мета-категориям. Датасет будет пополняться новыми диалогами в будущем.
Ссылки
[1] Pinar Saygin, A., Cicekli, I. & Akman, V. Turing Test: 50 Years Later. Minds and Machines 10, 463–518 (2000). https://doi.org/10.1023/A:1011288000451
[2] Stanford Encyclopedia of Philosophy. "The Turing Test."