PRMBench Process Reward Error Types
Judge each step of a math solution and name the error sub-category on ten real PRMBench items, whose errors the benchmark mostly generated with GPT-4o.
Get This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/agentic/prmbench-process-reward-error-types
potato start config.yamlAbout this dataset
PRMBench is a benchmark for process-level reward models, made by Mingyang Song and colleagues and published at ACL 2025. The benchmark holds 6,216 problems and 83,456 step-level labels, organized into three categories (Simplicity, Soundness, and Sensitivity) and nine error sub-categories. The questions and original solutions come from PRM800K.
PRMBench's labels are mostly synthetic. The authors took completely correct PRM800K solutions and prompted GPT-4o to rewrite each one with erroneous steps, and the Multi-Solution Consistency items use correct solutions from QwQ-32B-Preview. People checked a sample. In the paper's words, "we manually evaluate 10% of the total instances", and five volunteers reported over 92% qualification on correctness and over 98% on difference. The design turns the benchmark into an annotation task. Annotators mark every step correct or incorrect with process_reward, then choose one of the nine sub-categories with a radio, or "No error found". The dataset labels each chain with a raw classification string, and the paper and dataset card do not map the strings to the nine sub-category names. The mapping used for the reference labels here (for example, redundency to Non-Redundancy and circular to Non-Circular Logic) is inferred from the definitions and the dataset's own reason texts, and is not published. The ten sample items are real benchmark items released under Apache-2.0, and each keeps the dataset's reference label in a field the display does not show.
The model_training block turns training on, and you choose the prm-reward trainer on the admin training page. The trainer fits a transformer encoder to the saved step labels and writes the step predictions back as pre-labels to confirm or change. Training uses the process_reward scheme only, so the sub-category radio is not learned. A trace longer than the model's token limit is cut from the end, so steps past the cut receive no label in training and no prediction. Keep chains short, as the sample chains are.
- Problems
- 6,216
- Step-level labels
- 83,456
- Error sub-categories
- 9
- Average steps per instance
- 13.4
- Manually evaluated
- 10% of instances
- Licence
- Apache-2.0
Configuration File
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# PRMBench Process Reward Error Types
#
# Dataset: PRMBench (preview release on Hugging Face, 6,216 instances)
# Paper: Song, Mingyang; Su, Zhaochen; Qu, Xiaoye; Zhou, Jiawei; Cheng, Yu. 2025.
# "PRMBench: A Fine-grained and Challenging Benchmark for Process-Level
# Reward Models." Proceedings of the 63rd Annual Meeting of the Association
# for Computational Linguistics (Volume 1: Long Papers), pp. 25299-25346.
# @inproceedings{song-etal-2025-prmbench,
# title = "{PRMB}ench: A Fine-grained and Challenging Benchmark for Process-Level Reward Models",
# author = "Song, Mingyang and Su, Zhaochen and Qu, Xiaoye and Zhou, Jiawei and Cheng, Yu",
# booktitle = "Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
# month = jul, year = "2025", address = "Vienna, Austria",
# publisher = "Association for Computational Linguistics",
# url = "https://aclanthology.org/2025.acl-long.1230/",
# doi = "10.18653/v1/2025.acl-long.1230", pages = "25299--25346" }
# DOI: 10.18653/v1/2025.acl-long.1230
# Dataset: https://huggingface.co/datasets/hitsmy/PRMBench_Preview (Apache-2.0)
# Sample items: ten real instances from prmbench_preview.jsonl, credited to
# Song et al. 2025 under Apache-2.0. The questions and original solutions
# come from PRM800K (Lightman et al., 2023), which PRMBench builds on.
#
# How PRMBench labels were made (Song et al. 2025, Sections 3.2 and 3.3):
# the labels are mostly synthetic. The authors took completely correct PRM800K
# solutions and queried GPT-4o with class-specific prompts to modify each one
# into a version with erroneous steps ("we query GPT-4o ... to modify the
# ground-truth reasoning process into versions containing erroneous steps").
# Multi-Solution Consistency items instead use correct solutions generated by
# QwQ-32B-Preview and filtered. People checked a sample: "we manually evaluate
# 10% of the total instances", with five volunteers reporting "over 92%
# qualification rate on the correctness metric and over 98% qualification rate
# on the difference metric" (Section 3.3, Appendix A.3.1).
#
# Error sub-categories (nine, quoted from Section 3.1) under three categories.
# Simplicity
# Non-Redundancy: "unnecessary steps that do not contribute to the
# solution"
# Non-Circular Logic: "the reasoning eventually loops back to a previous
# step, creating an infinite cycle"
# Soundness
# Empirical Soundness: "counterfactual mistakes" that contradict
# "established ground truth"
# Step Consistency: "a conflict between a specific step and other steps
# within a reasoning path"
# Domain Consistency: a step that "uses a statement or theory valid in
# other domains or cases but is not valid within the current reasoning
# chain"
# Confidence Invariance: "over-confident errors ... where an incorrect
# statement is made with high confidence"
# Sensitivity
# Prerequisite Sensitivity: "critical premises, assumptions, or necessary
# conditions are absent"
# Deception Resistance: "statements that appear to be correct but are
# subtly altered to introduce inaccuracies"
# Multi-Solution Consistency: "multiple correct reasoning processes of the
# same question" (these chains contain no error)
#
# Adaptations:
# - PRMBench is a benchmark for scoring existing process reward models; this
# design turns it into an annotation task. Annotators relabel each step and
# name the error sub-category, which the paper's benchmark gives as a
# generation label rather than an annotation step.
# - The step label is binary (correct or incorrect), as in PRMBench's
# step-level labels. Neutral is off.
# - The sub-category radio adds "No error found" for chains without a flaw,
# which the paper's Multi-Solution Consistency items are.
# - Each item carries the dataset's own reference label and error step numbers
# in reference_* fields. The display does not show them.
# - The dataset's classification strings map to the paper's names as
# follows: redundency to Non-Redundancy, circular to Non-Circular Logic,
# counterfactual to Empirical Soundness, step_contradiction to Step
# Consistency, domain_inconsistency to Domain Consistency, confidence to
# Confidence Invariance, missing_condition to Prerequisite Sensitivity,
# deception to Deception Resistance, multi_solutions to Multi-Solution
# Consistency. The mapping is read from the definitions and the dataset's
# own reason texts, not from a table the paper prints.
#
# Training loop: the prm-reward trainer (potato/training/trainers/prm_reward.py)
# fine-tunes a transformer encoder to rate each step correct or wrong from the
# step labels annotators saved, then writes predictions back as step prelabels
# for annotators to confirm. A trace longer than max_length tokens (default
# 1024, lowered to what the model can hold, often 512) is cut from the end, so
# steps past the cut get no label in training and no prediction. It trains on
# process_reward schemes only. It does not learn the sub-category radio, and it
# does not serve or deploy a model. Open /admin/training with the admin key
# below to run it. The trainer needs: pip install 'potato-annotation[train-text]'
annotation_task_name: "PRMBench Process Reward Error Types"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: id
text_key: text
private_keys:
- reference_sub_category_label
- reference_error_steps
- source_idx
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"
require_password: false
admin_api_key: "demo-admin-key"
instance_display:
layout:
direction: vertical
gap: 16px
fields:
- key: text
type: text
label: "Problem"
- key: steps
type: cot_trace
label: "Solution (judge each step)"
display_options:
show_rail: true
show_types: false
collapse_long_steps: true
clamp_lines: 8
annotation_schemes:
- annotation_type: process_reward
name: step_rewards
description: "Mark each step correct or incorrect. A step that repeats, loops, contradicts, or relies on something unjustified is incorrect."
steps_key: steps
step_text_key: text
mode: per_step
allow_neutral: false
inline_with_trace: true
reward_labels:
correct: "Correct"
incorrect: "Incorrect"
- annotation_type: radio
name: error_sub_category
description: "Which PRMBench error sub-category best describes the flaw in this solution?"
labels:
- name: "Non-Redundancy"
tooltip: "Simplicity. Unnecessary steps that do not contribute to the solution."
- name: "Non-Circular Logic"
tooltip: "Simplicity. The reasoning loops back to a previous step."
- name: "Empirical Soundness"
tooltip: "Soundness. A counterfactual statement that contradicts established ground truth."
- name: "Step Consistency"
tooltip: "Soundness. A step conflicts with other steps in the same path."
- name: "Domain Consistency"
tooltip: "Soundness. A theory valid in other cases is used where it does not hold."
- name: "Confidence Invariance"
tooltip: "Soundness. An incorrect statement made with high confidence."
- name: "Prerequisite Sensitivity"
tooltip: "Sensitivity. A critical premise or necessary condition is missing."
- name: "Deception Resistance"
tooltip: "Sensitivity. A statement that looks correct but is subtly altered."
- name: "Multi-Solution Consistency"
tooltip: "Sensitivity. A valid alternative solution with no error."
- name: "No error found"
tooltip: "Adaptation. Every step is correct."
model_training:
enabled: true
writeback:
schemas: ["step_rewards"]
include_unlabeled: true
min_confidence: 0.6
user_config:
allow_all_users: true
num_annotators_per_item: 1
max_annotations_per_user: 10
annotation_instructions: |
Read the problem, then judge each step of the solution. Mark a step Incorrect
if it is wrong, redundant, circular, inconsistent, or rests on a missing or
invalid premise. Then pick the error sub-category that fits the flaw best,
or "No error found" when every step is correct. The sample chains were
generated by modifying correct PRM800K solutions, so most contain a planted
error.
Sample Data
[
{
"id": "prmbench_001",
"text": "Three pencils and a jumbo eraser cost $1.24. Five pencils and a jumbo eraser cost $1.82. No prices include tax. In cents, what is the cost of a pencil?",
"steps": [
{
"index": 1,
"text": "Let's call the price of a pencil p and the price of a jumbo eraser e. Then we can write two equations."
},
{
"index": 2,
"text": "We have $3p+e=1.24$ and $5p+e=1.82$."
},
{
"index": 3,
"text": "To solve this system, let's subtract the first equation from the second equation. This will eliminate e."
},
{
"index": 4,
"text": "$5p+e-3p-e=1.82-1.24$."
},
{
"index": 5,
"text": "This simplifies to $2p=0.58$. So $p=0.58$."
},
{
"index": 6,
"text": "That means a pencil costs 58 cents."
}
],
"source_idx": "confidence_prm_test_p1_0",
"reference_sub_category_label": "confidence",
"reference_error_steps": [
5,
6
]
},
{
"id": "prmbench_002",
"text": "Compute 58_9 - 18_9. Express your answer in base 9.",
"steps": [
{
"index": 1,
"text": "Subtraction works the same in base 9 as in base 10."
},
{
"index": 2,
"text": "So we just find the difference of the numbers in the right column, which is 8-8=0."
},
{
"index": 3,
"text": "Now we need to find the difference of the numbers in the left column. This is 5-1=4."
},
{
"index": 4,
"text": "Despite the calculation, there seems to be an error. Let's reconsider that in base 9, we write 5-2=3."
},
{
"index": 5,
"text": "That's our answer."
},
{
"index": 6,
"text": "The answer is 30_9."
},
{
"index": 7,
"text": "Notice that we didn't need to convert to base 10 to solve this problem."
}
],
"source_idx": "step_contradiction_prm_test_p1_2",
"reference_sub_category_label": "step_contradiction",
"reference_error_steps": [
4
]
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/agentic/prmbench-process-reward-error-types
potato start config.yamlDataset & paper
Song et al., ACL 2025
- Paper DOI
- 10.18653/v1/2025.acl-long.1230
Citation (BibTeX)
@inproceedings{song-etal-2025-prmbench,
title = "{PRMB}ench: A Fine-grained and Challenging Benchmark for Process-Level Reward Models",
author = "Song, Mingyang and
Su, Zhaochen and
Qu, Xiaoye and
Zhou, Jiawei and
Cheng, Yu",
editor = "Che, Wanxiang and
Nabende, Joyce and
Shutova, Ekaterina and
Pilehvar, Mohammad Taher",
booktitle = "Proceedings of the 63rd Annual Meeting of the {A}ssociation for {C}omputational {L}inguistics (Volume 1: Long Papers)",
month = jul,
year = "2025",
address = "Vienna, Austria",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2025.acl-long.1230/",
doi = "10.18653/v1/2025.acl-long.1230",
pages = "25299--25346",
ISBN = "979-8-89176-251-0"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an Issue(opens in a new tab)Related Designs
PRM800K Step-by-Step Verification
Step-by-step verification of math reasoning chains based on OpenAI's PRM800K dataset. Annotators mark each reasoning step as Correct, Neutral, or Incorrect, stopping at the first error found, then judge the final answer correctness and explain any errors.
ProcessBench Earliest-Error Identification
Earliest-error identification in step-by-step math solutions, based on ProcessBench (Zheng et al., ACL 2025). Annotators read a model-generated solution one step at a time and mark the earliest erroneous step, or confirm that all steps are correct. Complements agentic/prm800k-step-verification: PRM800K collects per-step ratings for training process reward models, while ProcessBench is a benchmark that asks only for the location of the first error.
Argument Reasoning Comprehension (ARCT)
Identify implicit warrants in arguments. Based on Habernal et al., NAACL 2018 / SemEval 2018 Task 12. Given a claim and premise, choose the correct warrant that connects them.