Задачи

Скачать

ruTiE

Описание задачи

Turing-test Interview Emulation (ruTiE) — русскоязычный тест на симуляцию теста Тюринга. Датасет имитирует связный диалог с испытуемым, где ему задается набор вопросов на различные темы и испытуемому нужно для каждого вопроса выбрать наиболее правильный из двух вариантов ответ. Темы вопросов покрывают различные категории, на разные аспекты теста Тьюринга. Вопросы подразумевают, что испытуемый (модель) полностью помнит контекст диалога и может иметь отсылку к предыдущим частям. Особенность заключается в том, что ответы не обязательно представлены в чисто бинарном формате, когда только один является правильным, а второй ложным. Необходимо обработать оба ответа и выбрать тот, который более близок к правильному ответу, что дополнительно усложняет решение и вносит дополнительный шаг рассуждений.

Ключевые слова: память, контекст, логика, знания о мире, здравый смысл

Мотивация

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

  1. длину контекста моделей и память. Для этого в датасете прописаны специальные поля в meta, которые указывают на то контекстуальный вопрос или нет. Если вопрос самостоятелен и может быть задан в той же формулировке с теми же вариантами ответов без снижения возможности ответить верно, то в мета-информации вопроса в поле контекста стоит False, если же вопрос опирается на контекст предыдущей беседы и не может быть полностью понят и интерпретирован без этого контекста — то в мета-информации вы увидите True.
  2. в начальной мере - возможности моделей сразу по нескольким категориям направления мышления, которые необходимы, чтобы решить эмуляцию Теста Тьюринга (категории подобраны так, чтобы разрабатывать любой последующий датасет подобного типа с учётом дефолтной возможности их идентифицирования):
  • 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": "Вам дан диалог, в котором необходимо продолжить реплики. Учитывая контекст диалога, и два варианта ответа на реплику (вопрос) ответьте на последний вопрос.\\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", "memory"],
	  "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) Шесть
Какой ответ наиболее правильный?
  • и так далее до конца диалога.
💡 соблюдайте последовательность реплик! Строго  по `question_id`, иначе весь датасет будет решен неправильно.

Разбиение данных

Первая версия датасета состоит лишь из одного длинного диалога длины 430 для тренировочного публичного сета, и одного диалога длины 430 для тестового датасета.

Промпты

Инструкция (промпт) подается на датасет целиком, а не к каждой реплике. Были подобраны несколько разных промптов, таких как:

Вам дан диалог, в котором необходимо продолжить реплики. Учитывая контекст диалога, и два варианта ответа на реплику (вопрос) ответьте на последний вопрос.\\n{context}\\n{question}\\n1. {choice1}\\n2. {choice2}\\n Какой ответ наиболее правильный?

Создание датасета

Датасет собран вручную разметчиками, и затем провалидирован.

Оценка

Метрики

Датасет представляет собой полноценный длинный диалог, с бинарными заданиями по различным тематикам. Закрытый сет — это один такой диалог, качество по которому считается метрикой точность (Accuracy), средней по диалогу.

Человеческая оценка

Для замера человеческой оценки мы создали 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."