task_categories:question-answering task_ids:closed-domain-qa language_creators:machine-generated multilinguality:monolingual language:ru license:cc-by-nc-4.0 region:us
---
language:
- ru
language_creators:
- machine-generated
license:
- cc-by-nc-4.0
multilinguality:
- monolingual
pretty_name: arithmetic
source_datasets: []
tags: []
task_categories:
- question-answering
task_ids:
- closed-domain-qa
---

# Арифметические задачи для диалоговой системы

Датасет содержит сэмплы с простыми математическими заданиями примерно такого вида:

```
- Фонарик Федора работает от 2 батареек, а фонарик Лехи от 6. Сколько батареек нужно фонарикам Федора и Лехи в сумме?
- 2+6=8, столько батареек потребуется.
- Теперь прибавь к результату 469, что получилось?
- 8 плюс 469 равно 477
- Подели на 53, что получилось?
- 9
```

Основная масса задач связана с арифметическими действиями. Есть некоторое количество задач
на поиск корней квадратного уравнения:

```
- Найди действительные корни квадратного уравнения a⋅x²+b⋅x+c для a=45, b=225, c=-270
- Тут два действительных корня -6 и 1
```


Также есть пополняемый набор задач с раскрытым ходом решения:

```
- В болотистых лесах проживает 8 сусликов. Охотник съедает по одному суслику каждые 9 дней. Сколько сусликов останется через 12 дней?
- За 12 дней охотник пообедает 1 раз. Поэтому останется 8-1=7 сусликов.
```

Некоторые задачи построены так, чтобы заставить модель обращать внимание не просто на
наличие чисел, а на контекст их употребления:

```
- Вика принесла в школу 5 мандаринов. Друзья попросили ее поделиться с ними мандаринами. Она отдала им 3 штуки. Сколько мандаринов Вика отдала?
- 3
```

Иногда числа в задаче не имеют отношения к сути задачи, что должно еще сильнее побуждать решающую модель учитывать контекст:

```
-  Перемножив восемь и семь, учитель средней школы №77 получил 5084. Он верно посчитал?
-  Учитель средней школы №77 ошибся, так как 8*7=56, а не 5084
```

## Формат данных

Каждый сэмпл содержит список связанных реплик без префикса "- ", образующих цепочку арифметических заданий, в которых
условие новой задачи требует анализа как минимум предыдущей реплики.

## Лексическая вариативность ответов

Для многих задач ответ сформулирован не просто как число, в него добавлен сопутствующий текст:

```
- Чему равно 2+2?
- 2+2 равно 4
```

## Метрики генеративных моделей

После файнтюна (1 эпоха, lr=1e-5) на 90% датасета, получаются такие метрики на тестовой части:

```
Модель                                   Среднее отклонение числового ответа              Доля верных ответов
                                         в сравнении с верным 
sberbank-ai/rugpt3small_based_on_gpt2        8.03e+02%                                    0.057
sberbank-ai/rugpt3medium_based_on_gpt2       2.89e+02%                                    0.085
sberbank-ai/rugpt3large_based_on_gpt2        1.58e+02%                                    0.131
facebook/xglm-2.9B                           8.13e+02%                                    0.224
```

## Генератор сэмплов

При формировании датасета использовался движок шаблонной генерации из этого репозитория: [https://github.com/Koziev/math](https://github.com/Koziev/math).


## Использование датасета

Датасет используется для тренировки [чатбота](https://github.com/Koziev/chatbot).
