Doom - бенчмарк для оценки качества языковых моделей на математических и физических задачах на русском языке.
Doom - это инструмент для тестирования и оценки способности языковых моделей (LLM) решать задачи по математике и физике. Бенчмарк позволяет:
- Измерять точность решения математических задач
- Оценивать понимание физических концепций и способность решать задачи по физике
- Сравнивать производительность разных моделей на русскоязычном контенте
- Оценивать улучшения в способностях моделей к решению научных задач
Основная часть кодовой базы адаптирована из проекта OpenAI simpleeval.
- RussianMath - разнообразные задачи по математике на русском языке (основной математический датасет)
- RussianPhysics - задачи по физике на русском языке (основной физический датасет)
Рекомендуется использовать uv и Python 3.13 для лучшей совместимости и производительности:
# Установка uv (если еще не установлен)
# Windows (PowerShell)
pip install uv
# Создание виртуального окружения
uv venv venv -p 3.13
# Активация окружения
# Windows
.venv\Scripts\activate
# Linux/macOS
# source .venv/bin/activate
# Установка зависимостей с помощью uv
uv pip install -r requirements.txtАльтернативный вариант (стандартный pip):
pip install -r requirements.txtpython runner.pypython runner.py --dataset russianmath # Только датасет RussianMath
python runner.py --dataset physics # Только датасет RussianPhysicspython runner.py --no-cache # Игнорировать кэш и повторно выполнить оценку
python runner.py --max-workers 8 # Установить количество параллельных обработчиков
python runner.py --config path/to/config.yaml # Указать альтернативный конфигpython runner.py --helpНастройка выполняется через файлы YAML в директории configs/:
configs/run.yaml # Основной конфигурационный файлПример конфигурационного файла:
model_list:
- gpt-4o
- claude-3-opus-20240229
# Общие настройки (применяются ко всем моделям, если не переопределены)
# num_examples: 100 # Опционально: Ограничить количество примеров для каждого датасета (по умолчанию используются все)
# debug: false # Опционально: Включить режим отладки
gpt-4o:
model_name: gpt-4o
endpoints:
- api_base: "https://api.openai.com/v1"
api_key: "your-api-key"
api_type: openai
parallel: 1
system_prompt: "Вы - полезный помощник по математике и физике. Ответьте на русском языке."
max_tokens: 32000
# num_examples: 50 # Опционально: Переопределить количество примеров для этой модели
claude-3-opus-20240229:
# ... конфигурация для Claude ...Описание параметров конфигурации:
model_list: Список моделей для оценки.[model_name]: Блок конфигурации для конкретной модели. Имя блока должно совпадать с именем вmodel_list.model_name: Имя модели (может отличаться от ключа блока, например, для локальных моделей).endpoints: Список эндпоинтов API.api_base/base_url: URL API.api_key/credentials: Ключ API или учетные данные (зависит отapi_type).
api_type: Тип API (openai,gigachatи т.д.).parallel: Количество параллельных запросов к API для этой модели.system_prompt: Системный промпт для модели.max_tokens: Максимальное количество токенов в ответе.num_examples(Опционально): Количество примеров для оценки этой модели. Переопределяет глобальное значениеnum_examples. По умолчанию используются все доступные примеры из датасета.
num_examples(Глобально, Опционально): Количество примеров для оценки для всех моделей, если не переопределено в блоке модели. По умолчанию используются все доступные примеры из датасета.debug(Глобально, Опционально): Включить режим отладки для вывода дополнительной информации.
После запуска оценки автоматически будет сгенерирована таблица лидеров.
Она сохраняется в файле results/leaderboard.md.
Детальные результаты по каждой модели доступны в директории results/details/.
Вы можете опубликовать результаты тестирования своей модели в общем лидерборде:
- Клонируйте репозиторий и запустите тесты вашей модели
- Загрузите результаты через HuggingFace Space
- Дождитесь проверки и добавления результатов в лидерборд
Формат результатов для публикации в JSON формате:
{
"score": 0.586,
"math_score": 0.8,
"physics_score": 0.373,
"total_tokens": 1394299,
"evaluation_time": 4533.2,
"system_prompt": "Вы - полезный помощник по математике и физике. Ответьте на русском языке."
}Чтобы протестировать собственную модель на бенчмарке Doom:
- Разверните свою модель локально или через API
- Добавьте конфигурацию вашей модели в
configs/run.yaml - Запустите бенчмарк с помощью
python runner.py
Подробные инструкции по хостингу моделей через VLLM и их тестированию на бенчмарке доступны в файле Instruction.md.
/configs- конфигурационные файлы/src- исходный код бенчмарка/results- результаты тестирования/results/details- подробные результаты по каждой модели/results/cache- кэш результатов для ускорения повторных запусков
/images- графические ресурсы проекта
Текущий лидерборд с результатами тестирования различных моделей доступен на HuggingFace Space.
Проект распространяется под лицензией Apache 2.0. См. файл LICENSE для получения дополнительной информации.
