HiPhO#
Overview#
HiPhO is the first benchmark dedicated to high school physics Olympiads with human-aligned evaluation. It compiles 13 recent Olympiad exams (2024-2025) spanning international and regional competitions, with mixed modalities that range from text-only problems to diagram-based problems.
Task Description#
Task Type: Free-form physics problem solving graded against official marking schemes
Input: A physics problem (constants sheet + context + question), optionally with figures
Output: A step-by-step solution ending with boxed final answers inside
<answer>...</answer>Modalities: Text-only and text+figure (illustration / variable / data figures)
Key Features#
403 problems across 14 exam papers (IPhO, APhO, EuPhO, NBPhO, PanPhO, PanMechanics, CPhO, F=MA), each exam exposed as its own subset.
English prompts are used for English exams and Chinese prompts for the Chinese exams (CPhO, PanMechanics), following the official language mapping.
Two grading regimes reproduced from the paper, dispatched per problem:
Step-level for problems shipping an official marking scheme: the LLM judge scores every marking criterion and the awarded points are summed.
Answer-level for problems without a marking scheme: boxed final answers are matched against the ground truth by a rule-based math check, with an LLM judge as fallback.
Evaluation Notes#
Requires an LLM judge: run with
judge_strategy='llm'(or'auto', which enables the judge for this benchmark) and providejudge_model_args.judge_strategy='rule'is not supported.Primary metric:
accuracy, the per-problem awarded/attainable point ratio in[0, 1], aggregated by mean per subset. For step-level problems the attainable maximum is the sum of the marking criteria; for problems with several official schemes (EuPhO, NBPhO) the highest-scoring scheme is used, matching the paper.This reports the normalized exam score per exam. It does not compute the paper’s gold/silver/bronze medal thresholds, which require the raw point totals and official cutoffs.
Solutions can be long and figure problems need vision input; give the evaluated model a generous
generation_config.max_tokens. A solution truncated before its<answer>block yields no boxed answer and scores near zero for reasons unrelated to physics ability.Figures are sent inline as base64 and the largest is ~1.5 MB; set
max_image_bytesindataset_argsif the served model enforces a smaller per-image limit.Resources: Paper | GitHub | Leaderboard
Properties#
Property |
Value |
|---|---|
Benchmark Name |
|
Dataset ID |
|
Paper |
|
Tags |
|
Metrics |
|
Default Shots |
0-shot |
Evaluation Split |
|
Data Statistics#
Metric |
Value |
|---|---|
Total Samples |
403 |
Prompt Length (Mean) |
3020.35 chars |
Prompt Length (Min/Max) |
653 / 9336 chars |
Per-Subset Statistics:
Subset |
Samples |
Prompt Mean |
Prompt Min |
Prompt Max |
|---|---|---|---|---|
|
45 |
4624.02 |
2496 |
8787 |
|
43 |
2041.81 |
960 |
3745 |
|
7 |
1924.29 |
1468 |
2051 |
|
6 |
1646.33 |
1422 |
1856 |
|
25 |
1598.76 |
1279 |
1957 |
|
25 |
1721.2 |
1395 |
2513 |
|
37 |
4152.57 |
2201 |
6701 |
|
39 |
6359.74 |
3362 |
9336 |
|
24 |
2305.25 |
1317 |
4486 |
|
20 |
2677.7 |
1359 |
4808 |
|
29 |
878.55 |
653 |
1283 |
|
23 |
874.87 |
667 |
1150 |
|
33 |
2820.55 |
1448 |
3880 |
|
47 |
3526.47 |
1561 |
6209 |
Image Statistics:
Metric |
Value |
|---|---|
Total Images |
413 |
Images per Sample |
min: 1, max: 5, mean: 1.5 |
Resolution Range |
456x60 - 3200x1645 |
Formats |
png |
Sample Example#
Subset: APhO_2025
{
"input": [
{
"id": "9ec40cee",
"content": [
{
"text": "You are participating in a high school physics Olympiad exam.\nPlease read the following question carefully and provide a clear, step-by-step solution with full reasoning.\nInstructions:\n1. Use LaTeX to format all variables, equations, and calc ... [TRUNCATED 3334 chars] ... gamma} R^{\\delta}$ \nwhere $G$ is the gravitational constant, and $\\beta, \\gamma$ and $\\delta$ are constant exponents.\nQuestion (Answer only the question stated below):\nFind the values of exponents: (1) $\\beta$, (2) $\\gamma$, and (3) $\\delta$."
},
{
"image": "[BASE64_IMAGE: png, ~101.8KB]"
}
]
}
],
"target": "",
"id": 0,
"group_id": 0,
"subset_key": "APhO_2025",
"metadata": {
"id": "APhO_2025_1_A_1",
"source": "APhO_2025",
"question": "Find the values of exponents: (1) $\\beta$, (2) $\\gamma$, and (3) $\\delta$.",
"answers": [
"\\boxed{$\\beta = 2$}",
"\\boxed{$\\gamma = -1$}",
"\\boxed{$\\delta = 4$}"
],
"marking": [
[
"Award 0.2 pt if the answer correctly expresses the dimension of $G$ as $[G] = L^3 M^{-1} T^{-2}$, where $L$ is the base dimensions length, $M$ is mass, and $T$ is time. Otherwise, award 0 pt.",
"Award 0.1 pt if the answer correctly sets up the exponent equation $0 = 2 - \\beta$. Otherwise, award 0 pt.",
"Award 0.1 pt if the answer correctly sets up the exponent equation $0 = \\gamma + 1$. Otherwise, award 0 pt.",
"Award 0.1 pt if the answer correctly sets up the exponent equation $1 = \\delta - 3$. Otherwise, award 0 pt.",
"Award 0.1 pt if the answer obtains the correct value $\\beta = 2$. Otherwise, award 0 pt.",
"Award 0.1 pt if the answer obtains the correct value $\\gamma = -1$. Otherwise, award 0 pt.",
"Award 0.1 pt if the answer obtains the correct value $\\delta = 4$. Otherwise, award 0 pt."
]
]
}
}
Note: Some content was truncated for display.
Prompt Template#
No prompt template defined.
Usage#
Using CLI#
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets hipho \
--limit 10 # Remove this line for formal evaluation
Using Python#
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['hipho'],
dataset_args={
'hipho': {
# subset_list: ['APhO_2025', 'CPhO_2025', 'EuPhO_2024'] # optional, evaluate specific subsets
}
},
limit=10, # Remove this line for formal evaluation
)
run_task(task_cfg=task_cfg)