Описание задачи
Задание состоит в решении математических задач, сформулированных на естественном языке, следующих типов:
- составление и решение уравнения,
- составление и решение системы уравнений,
- решение задачи на пропорции и сравнение,
- сопоставление описываемых в задаче объектов с неизвестными переменными в уравнении.
Каждый пример в датасете состоит из текстовой задачи с вопросом и 4 вариантами ответа. Правильный ответ может быть только один.
Мотивация
Задание направлено на проверку способности модели решать математические задачи с использованием таких простейших операций, как сложение, умножение, вычитание, деление и выполнять операции сравнения.
Поля данных
Каждый пример имеет фиксированные поля данных:
instruction
— строка, содержащая инструкцию для задачи и информацию о требованиях к формату вывода модели. Использованные промпты представлены в репозитории проекта.inputs
— словарь, содержащий данные для входа модели.id
— целое число, обозначающее индекс примера;option_a
— строка, содержащая вариант ответа A;option_b
— строка, содержащая вариант ответа B;option_c
— строка, содержащая вариант ответа C;option_d
— строка, содержащая вариант ответа D;
outputs
— строка, содержащая букву правильного ответа.meta
— словарь, содержащий метаинформацию:id
— целое число, обозначающее номер задания;task
— строка, содержащая информацию о типе задания:math
— решение систем уравнений и сравнение величин;logiс
— сопоставление объектов, описываемые в задаче, с неизвестными переменными в уравнении и их решение.
Промпты
Промпты представлены в виде инструкций, всего 10 различных промптов.
Пример промпта:
"Решите математичеcкую задачу: {text}\nA) {option_a}\nB) {option_b}\nC) {option_c}\nD) {option_d}\nВыберите один правильный ответ. В ответе укажите только букву правильного ответа.\nОтвет:"
Создание датасета
В датасет вошли два типа задач:
и logic
.
math
logic
Задачи типа
представляют собой математические задачи, сформулированные на естественном языке. Для решения подобного вида задач необходимо построить систему уравнений (или одно уравнение) и решить ее, сопоставив описываемые в задаче объекты с неизвестными переменными в уравнении. Задачи данного типа формировались с использовались открытых источников, содержащие базы математических задач.
logic
math
Задачи типа
состоят из математического выражения (линейного уравнения или системы линейных уравнений), а также вопроса по данному выражению. Для ответа на вопрос необходимо решить линейное уравнение или систему линейных уравнений. Для некоторых задач также необходимо произвести операцию сравнения. Математические выражения представляют собой синтетические данные, сгенерированные с помощью open source библиотеки google-deepmind/mathematics_dataset с использованием модулей linear_1d и linear_2d. Полученные сгенерированные выражения были переписаны с математического языка на естественный русский язык с использованием разметчиков. Далее для каждого выражения разметчики сформулировали вопрос на естественном языке и правильный ответ.
math
При формировании датасета к части задач разметчики добавляли инструкцию на естественном языке, характеризующую задание. Для каждого задания из датасета разметчики также сформулировали 3 неправильных варианта ответа.
Валидация
Все примеры из датасета прошли валидацию разметчиками на платформе Яндекс.Толока. Разметчики проверяли корректность условий задачи и правильность ответа. Основной пул разметки включал в себя все 2000 заданий типа
и 570 заданий типа math
. Для каждого примера было установлено перекрытие в 3 человека с возможностью увеличения до 5, если согласованность в задании менее 70%. Из итоговой разметки были исключены ответы разметчиков, которые показали точность разметки на контрольных заданиях менее 50% .
logic
В результате валидации в итоговую тестовую выборку вошли примеры с полной согласованностью разметчиков. В обучающую выборку вошли оставшиеся примеры с согласованностью выше 60%.
Человеческая оценка
Человеческая оценка производилась с помощью платформы Яндекс.Толока с перекрытием разметчиков равным 5.
Финальная оценка точности человека равна 0.99
.