Spaces:
Running
Running
File size: 5,758 Bytes
a1e9cea 881357e 9be823f a1e9cea 9be823f 881357e 9be823f 881357e 9be823f a1e9cea 9be823f 881357e a1e9cea 881357e 9be823f 60c1c5f a1e9cea 319595d a1e9cea 60c1c5f 9be823f a1e9cea 9be823f a1e9cea 9be823f a1e9cea 9be823f 60c1c5f a1e9cea 60c1c5f 9be823f a1e9cea 9be823f 1437ca9 9be823f 1437ca9 a1e9cea 9be823f a1e9cea 319595d a1e9cea 9be823f a1e9cea 9be823f a1e9cea 9be823f 296bc9c a1e9cea 9be823f a1e9cea 9be823f a1e9cea 9be823f a1e9cea 9be823f a1e9cea 9be823f 881357e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | from dataclasses import dataclass
from enum import Enum
@dataclass
class Metric:
key: str
col_name: str
description: str = ""
@dataclass
class Task:
benchmark: str
metrics: list[Metric]
col_name: str
description: str
task_type: str
test_size: int
dataset_url: str = ""
primary_metric: str = ""
def __post_init__(self):
if not self.primary_metric:
self.primary_metric = self.metrics[0].key
@property
def metric(self) -> str:
"""Backward-compatible primary metric key."""
return self.primary_metric
MMRED_GROUP_DEFS = [
("mmred_dc_sa_c", "DC-SA-C", "Кто провёл больше/меньше всего времени в одиночестве?"),
("mmred_dc_sr_i", "DC-SR-I", "Сколько шагов X провёл в комнате Y?"),
("mmred_dc_cc_i", "DC-CC-I", "Сколько шагов в комнатах существовала толпа (3+ человек)?"),
("mmred_dc_ws_r", "DC-WS-R", "В какой комнате X провёл больше/меньше всего времени?"),
("mmred_dc_whs_c", "DC-WHS-C", "Кто провёл больше/меньше всего времени в комнате X?"),
]
MMRED_LENGTHS = [32, 64, 128]
MMRED_GROUP_KEYS = {group_key for group_key, _, _ in MMRED_GROUP_DEFS}
MMRED_SUBTASK_KEYS = {
f"{group_key}_{length}"
for group_key, _, _ in MMRED_GROUP_DEFS
for length in MMRED_LENGTHS
}
def _mmred_metrics() -> list[Metric]:
metrics = [
Metric(
"em.dc_aggregate",
"Overall",
"Итоговая оценка MMReD: гармоническое среднее пяти взвешенных EM по типам вопросов.",
),
]
for group_key, group_label, group_desc in MMRED_GROUP_DEFS:
metrics.append(
Metric(
f"{group_key}::em.dc_aggregate",
group_label,
f"{group_desc} Взвешенный EM по длинам 32/64/128.",
)
)
for group_key, group_label, _ in MMRED_GROUP_DEFS:
for length in MMRED_LENGTHS:
metrics.append(
Metric(
f"{group_key}_{length}::exact_match",
f"{group_label} × {length}",
f"Exact Match на подзадаче длины {length}.",
)
)
return metrics
# Select your tasks here
# ---------------------------------------------------
class Tasks(Enum):
ruaime = Task(
benchmark="ruaime",
metrics=[
Metric(
"exact_match",
"Exact match",
"Максимум из exact_match,flexible-extract и exact_match,strict-match.",
),
],
col_name="ruAIME",
dataset_url="https://huggingface.co/datasets/MERA-evaluation/ruAIME",
description=(
"Русскоязычный набор задач AIME (1983–2025): олимпиадная математика с числовыми "
"ответами, требующая многошагового рассуждения."
),
task_type="Математика, рассуждение",
test_size=724,
primary_metric="exact_match",
)
t_math = Task(
benchmark="t_math",
metrics=[
Metric(
"exact_match",
"Exact match",
"Математическая эквивалентность предсказания и эталона (math_verify).",
),
],
col_name="T-math",
dataset_url="https://huggingface.co/datasets/MERA-evaluation/T-math",
description=(
"310 олимпиадных математических задач на русском из Всероссийской олимпиады "
"школьников и Московской олимпиады (2005–2025)."
),
task_type="Математика, олимпиадные задачи",
test_size=310,
primary_metric="exact_match",
)
luzitania = Task(
benchmark="luzitania",
metrics=[
Metric(
"exact_match",
"Exact match",
"Максимум из exact_match,flexible-extract и exact_match,strict-match.",
),
],
col_name="Luzitania",
dataset_url="https://huggingface.co/datasets/MERA-evaluation/Luzitania",
description=(
"Набор для оценки многошагового математического рассуждения на русском языке: "
"олимпиадные и продвинутые задачи с целочисленными ответами."
),
task_type="Логика, рассуждение",
test_size=251,
primary_metric="exact_match",
)
mmred = Task(
benchmark="mmred",
metrics=_mmred_metrics(),
col_name="MMReD",
dataset_url="https://huggingface.co/datasets/MERA-evaluation/MMReD",
description=(
"Multi-Modal Reasoning in Dense Context — синтетический бенчмарк рассуждения "
"на длинном плотном контексте. 5 типов вопросов × 3 длины (32, 64, 128) = 750 вопросов."
),
task_type="Длинный контекст, рассуждение",
test_size=750,
primary_metric="em.dc_aggregate",
)
NUM_FEWSHOT = 0
# ---------------------------------------------------
|