Skip to content

Commit 6973591

Browse files
author
Maria
committed
multilingual AIME 2025 for Finnish and Danish
1 parent 06aee5b commit 6973591

1 file changed

Lines changed: 172 additions & 0 deletions

File tree

  • src/lighteval/tasks/multilingual/tasks
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
"""
2+
name:
3+
mAIME2025
4+
5+
dataset:
6+
LumiOpen/mAIME2025
7+
8+
abstract:
9+
The Multilingual AIME 2025 (mAIME2025) is a multilingual version of the
10+
2025 AIME (American Invitational Mathematics Examination) problems,
11+
professionally translated into European languages. This dataset contains
12+
all 30 problems from AIME I and AIME II 2025, translated and
13+
human-reviewed by native speakers to preserve mathematical accuracy and
14+
LaTeX formatting.
15+
16+
languages:
17+
danish, finnish
18+
19+
tags:
20+
math, multilingual, reasoning
21+
22+
paper:
23+
https://maa.org/aime-thresholds-are-available/
24+
"""
25+
26+
from textwrap import dedent
27+
28+
from inspect_ai.dataset import Sample
29+
from inspect_ai.solver import generate, prompt_template
30+
31+
from lighteval.metrics.metrics import Metrics, math_scorer
32+
from lighteval.tasks.lighteval_task import LightevalTaskConfig
33+
from lighteval.tasks.requests import Doc
34+
35+
36+
# Prompt template adapted from AIME task
37+
# Note: Uses English instructions for consistency with AIME
38+
MATH_PROMPT_TEMPLATE = dedent("""
39+
Solve the following math problem efficiently and clearly.
40+
The last line of your response should be of the following format:
41+
'Therefore, the final answer is: $\\boxed{{ANSWER}}$. I hope it is correct'
42+
(without quotes) where ANSWER is just the final number or expression
43+
that solves the problem. Think step by step before answering.
44+
45+
{prompt}
46+
""")
47+
48+
49+
50+
def record_to_sample(record):
51+
return Sample(input=record["question"], target=record["solution"])
52+
53+
54+
def maime_prompt(line, task_name: str = None):
55+
return Doc(
56+
task_name=task_name,
57+
query=MATH_PROMPT_TEMPLATE.format(prompt=line["question"]),
58+
choices=[line["solution"]],
59+
gold_index=0,
60+
)
61+
62+
63+
# Danish tasks
64+
maime25_da = LightevalTaskConfig(
65+
name="maime25:da",
66+
prompt_function=maime_prompt,
67+
sample_fields=record_to_sample,
68+
solver=[prompt_template(MATH_PROMPT_TEMPLATE), generate(cache=True)],
69+
scorer=math_scorer(),
70+
hf_repo="LumiOpen/mAIME2025",
71+
hf_subset="da_combined",
72+
hf_avail_splits=["test"],
73+
evaluation_splits=["test"],
74+
few_shots_split=None,
75+
few_shots_select=None,
76+
generation_size=None,
77+
metrics=[
78+
Metrics.pass_at_k_math(sample_params={"k": 1, "n": 1}),
79+
Metrics.avg_at_n_math(sample_params={"n": 1}),
80+
],
81+
version=1,
82+
)
83+
84+
maime25_da_avg = LightevalTaskConfig(
85+
name="maime25_avg:da",
86+
prompt_function=maime_prompt,
87+
sample_fields=record_to_sample,
88+
hf_repo="LumiOpen/mAIME2025",
89+
hf_subset="da_combined",
90+
hf_avail_splits=["test"],
91+
evaluation_splits=["test"],
92+
few_shots_split=None,
93+
few_shots_select=None,
94+
generation_size=None,
95+
metrics=[Metrics.avg_at_n_math(sample_params={"n": 64})],
96+
version=1,
97+
)
98+
99+
maime25_da_gpassk = LightevalTaskConfig(
100+
name="maime25_gpassk:da",
101+
prompt_function=maime_prompt,
102+
sample_fields=record_to_sample,
103+
hf_repo="LumiOpen/mAIME2025",
104+
hf_subset="da_combined",
105+
hf_avail_splits=["test"],
106+
evaluation_splits=["test"],
107+
few_shots_split=None,
108+
few_shots_select=None,
109+
generation_size=None,
110+
metrics=[Metrics.g_pass_at_k_math(sample_params={"k": 16, "n": 48})],
111+
version=1,
112+
)
113+
114+
# Finnish tasks
115+
maime25_fi = LightevalTaskConfig(
116+
name="maime25:fi",
117+
prompt_function=maime_prompt,
118+
sample_fields=record_to_sample,
119+
solver=[prompt_template(MATH_PROMPT_TEMPLATE), generate(cache=True)],
120+
scorer=math_scorer(),
121+
hf_repo="LumiOpen/mAIME2025",
122+
hf_subset="fi_combined",
123+
hf_avail_splits=["test"],
124+
evaluation_splits=["test"],
125+
few_shots_split=None,
126+
few_shots_select=None,
127+
generation_size=None,
128+
metrics=[
129+
Metrics.pass_at_k_math(sample_params={"k": 1, "n": 1}),
130+
Metrics.avg_at_n_math(sample_params={"n": 1}),
131+
],
132+
version=1,
133+
)
134+
135+
maime25_fi_avg = LightevalTaskConfig(
136+
name="maime25_avg:fi",
137+
prompt_function=maime_prompt,
138+
sample_fields=record_to_sample,
139+
hf_repo="LumiOpen/mAIME2025",
140+
hf_subset="fi_combined",
141+
hf_avail_splits=["test"],
142+
evaluation_splits=["test"],
143+
few_shots_split=None,
144+
few_shots_select=None,
145+
generation_size=None,
146+
metrics=[Metrics.avg_at_n_math(sample_params={"n": 64})],
147+
version=1,
148+
)
149+
150+
maime25_fi_gpassk = LightevalTaskConfig(
151+
name="maime25_gpassk:fi",
152+
prompt_function=maime_prompt,
153+
sample_fields=record_to_sample,
154+
hf_repo="LumiOpen/mAIME2025",
155+
hf_subset="fi_combined",
156+
hf_avail_splits=["test"],
157+
evaluation_splits=["test"],
158+
few_shots_split=None,
159+
few_shots_select=None,
160+
generation_size=None,
161+
metrics=[Metrics.g_pass_at_k_math(sample_params={"k": 16, "n": 48})],
162+
version=1,
163+
)
164+
165+
TASKS_TABLE = [
166+
maime25_da,
167+
maime25_da_avg,
168+
maime25_da_gpassk,
169+
maime25_fi,
170+
maime25_fi_avg,
171+
maime25_fi_gpassk,
172+
]

0 commit comments

Comments
 (0)