Как мы собрали русскоязычный датасет олимпиадной математики (и зачем это нужно AI)

от автора

Математические исследования всё чаще используют методы ИИ для анализа сложных задач, генерации решений и предоставления персонализированного обучения. Однако эффективность таких моделей напрямую зависит от качества и структуры данных, на которых они обучаются. Несмотря на обилие математических текстов в интернете, существует заметный дефицит крупных, размеченных и многоязычных датасетов, специально ориентированных на олимпиадную математику. В частности, для русскоязычных моделей остро не хватает материалов, сочетающих в себе авторитетность источника, сложность содержания и лингвистическое разнообразие.

Команда специалистов Doubletapp  создала такой ресурс — датасет задач American Invitational Mathematics Examination (AIME) мы перевели на русский язык. AIME представляет собой уникальный источник сложных, тщательно проработанных задач, которые идеально подходят для тренировки логических и алгоритмических способностей языковых моделей.

Нашей основной целью был не просто машинный перевод текстов, а создание комплексного набора данных, сохраняющего всю структурную и математическую целостность оригиналов.
Для чего нужен этот датасет:

  • Бенчмаркинг моделей. Математические задачи — признанный стандарт для оценки reasoning-способностей языковых моделей. ruAIME позволяет проводить такую оценку в русскоязычном контексте, где существующих бенчмарков практически нет.

  • Обучение и файнтюнинг. Датасет можно использовать для тренировки и тонкой настройки моделей, специализирующихся на генерации и анализе математических текстов на русском языке.

  • Образовательные инструменты. На основе датасета можно создавать чат-боты и обучающие системы, способные помогать русскоязычным студентам и любителям математики в решении нестандартных олимпиадных задач.

Расскажем, как проходил сбор, обработка и перевод задач AIME.

Содержание

Обзор связанных работ

Рассмотрим наиболее известные усилия в области создания математических датасетов, чтобы определить нишу, которую занимает наш русскоязычный датасет задач AIME.

Англоязычные датасеты сложных математических задач

  • MATH: бенчмарк является одним из наиболее известных и сложных для оценки способностей языковых моделей к решению математических задач уровня старшей школы и олимпиад. Он содержит задачи из AMC 10, AMC 12 и AIME с пошаговыми решениями.
    Несмотря на высокое качество и сложность, его главным ограничением для русскоязычного сообщества является язык — все данные представлены исключительно на английском. Наш датасет напрямую дополняет MATH, предоставляя параллельный корпус для кросс-лингвистических исследований и позволяя обучать и тестировать модели для русскоязычной аудитории.

  • TheoremQA: сравнительно новый датасет, фокусирующийся на вопросах и доказательствах из высшей математики (теория вероятностей, матанализ, линейная алгебра). В то же время он нацелен на университетский уровень, а наш датасет сохраняет фокус на олимпиадных задачах среднего и старшего школьных уровней, что делает их комплементарными по охвату сложности.

  • GSM8K (Grade School Math 8K): широко известный датасет, состоящий из нескольких тысяч текстовых задач на элементарную арифметику уровня начальной и средней школы. Задачи в GSM8K обычно решаются за 2–8 шагов. AIME находится на качественно ином уровне сложности: его задачи требуют несравнимо более длинных цепочек рассуждений (десятки шагов), творческого подхода и часто нетривиальных озарений.

Русскоязычные математические ресурсы

  • Онлайн-архивы и базы задач: в рунете существует несколько авторитетных ресурсов, посвященных олимпиадной математике, таких как problems.ru и цифровые архивы различных математических кружков. Эти ресурсы содержат огромное количество уникальных и сложных задач. Но как правило они представлены в виде неструктурированного HTML-контента, предназначенного для человеческого восприятия, а не для машинного обучения. Чтобы преобразовать их в чистый, структурированный, машиночитаемый формат нужна масса усилий по парсингу и нормализации. Наш датасет предлагает готовое, очищенное и структурированное решение.

  • Датасеты для генерации задач: существуют проекты, направленные на генерацию простых математических задач на русском языке для младших школьников. Однако они не охватывают уровень сложности олимпиадных задач, таких как AIME, который требует глубоких рассуждений и многошаговых решений.

Методология сбора и обработки данных

Для создания датасета математических задач AIME мы разработали автоматизированный пайплайн на Python. Его целью были сбор, очистка и структурирование данных с общедоступного ресурса. Расскажем о каждом этапе процесса. 

Источник данных

В качестве основного источника выступил архив вики-ресурса Art of Problems Solving (AoPS). Этот сайт содержит полную коллекцию задач AIME за все годы проведения, включая их условия и подробные решения. Особенностью данных является активное использование математической нотации LaTeX.

Общая архитектура процесса

Управляющий цикл сбора

Главная функция скрипта организует процесс обхода страниц. Она последовательно итерируется по годам (от 1983 до 2025) и для каждого года определяет список доступных контестов (AIME, AIME I, AIME II). Для каждого контеста скрипт систематически генерирует URL-адреса предполагаемых страниц с задачами и проверяет их существование.

Парсинг и извлечение контента

Для каждого валидного URL вызывается функция парсинга. Её задача — извлечь с веб-страницы три ключевых элемента:

  • Условие задачи: текст проблемы, включая все математические формулы.

  • Решение: один или несколько вариантов решений, представленных на странице.

  • Ответ: конечный ответ к задаче, который автоматически извлекается из специальных тегов оформления (например, boxed{}, fbox{} и т. п.).

Очистка и структурирование текста

Для работы с текстовым содержимым реализовали специальную функцию, которая обрабатывает HTML-структуру, извлекает текстовые узлы и корректно обрабатывает встроенные математические формулы (теги LaTeX). Эта функция обеспечивает сохранение семантической целостности текста и формул, правильно расставляя пробелы и знаки препинания.

Сохранение данных

Все извлеченные данные сохраняются в структурированном виде. Для эффективного хранения и последующего использования выбрали формат Parquet. Он оптимально подходит для работы с табличными данными, содержащими текстовые поля и метаинформацию, благодаря высокой скорости чтения и сжатию. Скрипт реализует инкрементальное сохранение результатов через фиксированные интервалы, что минимизирует риск потери данных при длительном запуске.

Итоговый датасет

В результате работы скрипта был создан датасет, где каждая запись содержит всю информацию о задаче: год проведения, тип контеста, текст условия, текст решения, конечный ответ и ссылку на источник.

Анализ и метрики исходного датасета

Перед построением прогнозных моделей провели всесторонний анализ исходного датасета, направленный на оценку его объёма, качества, внутренней структуры и пригодности для решения задачи классификации. Анализ включал в себя статистическое исследование числовых ответов, оценку разнообразия условий задач и выявление потенциальных паттернов и аномалий.

Статистика числовых ответов

  • Уникальность: высокий показатель уникальности ответов (~63%) свидетельствует о том, что датасет не перенасыщен повторяющимися задачами с идентичными ответами — это поможет обучить модель распознавать разнообразные паттерны.

  • Распределение и диапазон: ответы распределены в диапазоне от 0 до 997, что охватывает широкий спектр возможных результатов для задач олимпиадного уровня. Распределение близко к симметричному, со средним и медианным значениями, расположенными в нижней части диапазона, и умеренным стандартным отклонением, указывающим на сбалансированную изменчивость без выраженного перекоса.

  • Частотный анализ: распределение частот ответов является равномерным. Ни один ответ не доминирует; даже самый частотный встречается не более чем в 2-3% случаев. Топ-10 наиболее распространённых ответов покрывают менее 20% всех задач, что подтверждает отсутствие ярко выраженных шаблонных результатов и необходимость в сложной модели, а не простом частотном подходе.

Структурные и математические паттерны

Анализ выявил наличие в ответах значительного количества чисел со специальными свойствами, что отражает природу олимпиадных задач.

  • Специальные числа: в выборке часто встречаются степени двойки, полные квадраты, простые числа, палиндромы, а также числа с повторяющимися или последовательно возрастающими/убывающими цифрами. Это указывает на то, что модель должна уметь распознавать не только вычислительные, но и логико-математические паттерны.

  • Сумма цифр: средняя сумма цифр ответа составляет примерно 11, что является дополнительной характеристикой распределения целевых значений.

Анализ условий задач

Мы проанализировали текстовое содержание условий задач.

  • Длина и сложность: средняя длина условия составляет 300 символов (95 токенов после обработки), что указывает на достаточно компактные, но содержательные формулировки, типичные для олимпиадных задач.

  • Структурное богатство: значительная часть задач содержит комбинацию текста, математических формул (LaTeX), специальных символов (но пока без мультимодальных данных). Это подтверждает необходимость использования моделей, способных работать со структурированной текстовой информацией.

  • Тематическое разнообразие: автоматическая кластеризация и анализ содержания позволили выделить основные тематические разделы: алгебра (~36%), геометрия, теория чисел, комбинаторика и другие. Высокие значения энтропии и низкий индекс Джини для тематических меток говорят о хорошем балансе между категориями, что исключает перекос обучения в сторону какой-либо одной темы.

Оценка качества и чистоты данных

В датасете не должно быть дубликатов и аномалий — для оценки чистоты датасета мы использовали следующие методы:

  • Семантические дубликаты: проверка с помощью метрики Левенштейна и анализа векторных представлений (эмбеддингов) показала практическое отсутствие полных дубликатов или синонимичных переформулировок одной и той же задачи. Каждая запись уникальна по своему содержанию.

  • Аномалии и выбросы: применение методов IQR, Z-score и Isolation Forest не выявило статистически значимых аномалий в распределении числовых ответов. Это свидетельствует о высоком качестве разметки данных и их внутренней согласованности.

Выводы по анализу датасета

По результатам анализа мы видим, что датасет обладает высоким качеством и пригоден для обучения моделей машинного обучения. Его ключевые характеристики: репрезентативность, сбалансированность, чистота, сложность.

Этап перевода математических задач на русский язык

После успешного сбора и структурирования датасета задач AIME мы перевели их на русский язык. Этот этап был критически важен для подготовки данных к обучению моделей, ориентированных на русскоязычную аудиторию.

Цель и задачи перевода

Основной целью являлось создание высококачественного параллельного корпуса (английский-русский) математических текстов. Что было важно:

  • Сохранение точности. Все математические формулы, обозначения и структурные элементы должны остаться неизменными.

  • Естественность языка. Перевод математических рассуждений и пояснений должен быть выполнен грамотно, с использованием принятой в русскоязычной математической литературе терминологии.

  • Автоматизация процесса. Учитывая объем данных, мы автоматизировали перевод с использованием передовых языковых моделей.

Выбор инструмента для перевода

Для выполнения перевода выбрали API модели DeepSeek Reasoner. Этот выбор был обусловлен несколькими факторами:

  • Способность работать с математическим контекстом. Модель демонстрирует высокие способности к пониманию и обработке сложных технических и математических текстов.

  • Управление длинным контекстом. Модель эффективно работает с длинными текстами, что важно для задач с развернутыми многошаговыми решениями.

  • Контролируемое выполнение инструкций. Модель надежно следует заданным инструкциям, что было ключевым для сохранения структуры исходных данных.

Процесс автоматизированного перевода

Мы разработали специальный скрипт, который последовательно обрабатывал каждый текстовый файл с задачей. Формировался специальный промпт, который явно инструктировал модель:

  • Перевести на русский язык только текст между маркерами
    ---BEGIN_PROBLEM---/---END_PROBLEM--- и
    ---BEGIN_SOLUTION---/---END_SOLUTION---.

  • Строго сохранить все оригинальные маркеры, формулы LaTeX, теги boxed{} и переносы строк.

  • Не добавлять в ответ никаких пояснений, нумерации или дополнительного текста, кроме самого перевода.

Сам промпт получился вот таким:

Переведи на русский только текст между маркерами. В ответе ОБЯЗАТЕЛЬНО оставь маркеры в точности такими, как ниже, и не добавляй ничего лишнего (никаких предисловий, пояснений, нумерации и т.д.). Сохрани все формулы и переносы строк.
<
условие задачи с решением>

Скрипт читал файлы из исходной директории, отсортированные по номеру, и отправлял их содержимое на API DeepSeek. Для управления нагрузкой и соблюдением лимитов API между запросами добавлялась случайная задержка. Каждый успешно переведенный текст сохранялся в новой директории. Скрипт был разработан так, чтобы его можно было безопасно остановить и возобновить; он автоматически пропускал уже обработанные файлы, проверяя их наличие в выходной директории.

Контроль качества

Хотя процесс был автоматическим, на этапе разработки мы выборочно проверяли перевод для оценки его качества и точности соблюдения инструкций. Это позволило убедиться, что модель корректно обрабатывает математические выражения и не вносит в них изменения.

Итог этапа

В результате работы скрипта мы получили полный параллельный корпус оригинальных задач на английском языке и их качественных переводов на русский.

Адаптация датасета

Для удобства использования датасета в качестве бенчмарка для оценки языковых моделей, исходные данные мы преобразовали в строго определенный формат. Этот процесс включил несколько ключевых этапов.

Данные храним в двух JSON-файлах:

  • test.json: содержит основные вопросы для тестирования моделей.

  • shots.json: содержит примеры задач для few-shot обучения, строго отделенных от основного теста; задачи не должны пересекаться.

Процесс трансформации данных

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

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

  • Формирование объекта inputs: поле question заполнялось текстом условия задачи на русском языке, полученным на этапе перевода.

  • Извлечение ответа (outputs):
    в это поле помещался конечный ответ задачи (answer), который был ранее извлечен на этапе парсинга.

  • Наполнение метаданных (meta):

    • id: уникальный числовой идентификатор, присвоенный каждой задаче в исходном датасете.

    • url: URL-адрес исходной страницы на AoPS Wiki для обеспечения верифицируемости и атрибуции.

    • categories: словарь с метаданными о задаче — тип соревнования (contest_type), год (year), номер задачи (problem_id) и математическая область (math_domain), определенная на основе анализа содержания.

    • solutions: поле содержит одно или несколько решений задачи на русском языке. Это позволяет использовать датасет не только для оценки, но и для обучения моделей.

Итоговая структура датасета

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

{  "instruction": "ТОЛЬКО РЕЗУЛЬТАТ! Разберись с задачей: {question}. Выведи только числовой результат, комментариев и пояснений давать не нужно!",  "inputs": {      "question": "В окружности проведены две пересекающиеся хорды. Радиус окружности равен 5, BC=6, и AD делится пополам хордой BC. Найдите произведение mn, где m/n - несократимая дробь, представляющая синус центрального угла малой дуги AB."  },  "outputs": "175",  "meta": {      "id": 999,      "url": "https://artofproblemsolving.com/wiki/index.php/2024_AIME_Problems/Problem_0",      "categories": {          "contest_type": "AIME",          "year": 2024,          "problem_id": 0,          "math_domain": "Геометрия"      },      "solutions": {          "solution_1": {              "id": 1,              "text": "Пусть O - центр окружности. Поскольку BC=6, расстояние от O до BC равно 4. Рассмотрим геометрическое место середин хорд из A - это окружность с диаметром AO. Условие единственности означает, что эта окружность касается BC. Проведя необходимые вычисления, получаем sin(∠AOB) = 7/25. Таким образом, m=7, n=25, и их произведение равно 175."          }      }  }}

Оценка с помощью lm-evaluation-harness

Для объективной оценки математических способностей модели deepseek-reasoner мы провели тестирование с помощью фреймворка lm-evaluation-harness на собранном русскоязычном датасете.

Цель тестирования

Определить, насколько эффективно модель способна понимать сложные олимпиадные задачи на русском языке, содержащие текст, математическую нотацию (LaTeX), и выдавать точный конечный числовой ответ.

Процедура тестирования

  • Настройка: модель deepseek-reasoner была интегрирована в harness в режиме инференса.

  • Задачи: модели последовательно предъявлялись задачи из тестового набора (test.json). Каждый пример включал условие задачи (поле inputs).

  • Промпт: для каждой задачи использовались стандартизированные инструкции (поле instruction), требующие от модели выдать только конечный числовой ответ без пояснений.

  • Метрика: основной метрикой оценки была точность (accuracy) — процент задач, для которых ответ модели точно совпал с эталонным ответом (outputs).

Результаты

  • Модель успешно справилась с ~70% задач из тестового набора, продемонстрировав способность к сложным многошаговым рассуждениям и пониманию математического контекста на русском языке.

  • В ~30% случаев модель не смогла предоставить корректный ответ. Анализ этих ошибок показал две основные причины:

    • Неверное решение: модель выдавала ошибочный числовой ответ, что указывает на сбой в логике или вычислениях.

    • Превышение лимита токенов: в ряде случаев модель запускала чрезмерно длинную цепочку рассуждений, превышая установленное ограничение на максимальное количество генерируемых токенов, и не успевала прийти к финальному ответу.

Заключение

Наш проект — это не просто перевод AIME, а шаг к развитию математического AI на русском языке. Мы закрываем дефицит качественных русскоязычных данных и даём инструмент, который можно применять на практике.

Датасет подходит для обучения моделей, создания образовательных продуктов, кросс-лингвистических исследований и разработки бенчмарков для оценки ИИ. Его можно масштабировать: добавлять задачи из других олимпиад и использовать как основу для решений, где важны логика и точность рассуждений.

Мы создаём экспертные данные и AI-решения под задачи бизнеса — этот кейс лишь один из примеров.
Хотите повысить качество моделей, автоматизировать сложные процессы или запустить интеллектуальный продукт — напишите нам.

ссылка на оригинал статьи https://habr.com/ru/articles/1022826/