Skip to content
Showcase/ProcessBench Earliest-Error Identification
advancedtext

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.

About this dataset

ProcessBench is a benchmark from the Qwen team for measuring the ability to identify erroneous steps in mathematical reasoning. Each test case is a math problem paired with a step-by-step solution generated by one of twelve open-source language models; the task is to output the index of the earliest erroneous step, or -1 if all steps are correct.

The benchmark deliberately focuses on the earliest error rather than rating every step. As the paper argues, once a step introduces a mistake, the correctness of later steps becomes ambiguous: derivations from a wrong premise can follow valid rules yet remain on a globally incorrect path. This distinguishes ProcessBench from PRM800K-style per-step process supervision (see the agentic/prm800k-step-verification task in this showcase), which rates each step to train process reward models.

Problems come from GSM8K, MATH, OlympiadBench, and Omni-MATH, spanning grade-school to Olympiad difficulty. Solutions were reformatted by an LLM into logically complete steps, then annotated by human experts with doctoral-level mathematical expertise. Each solution was labeled by at least three annotators, with more annotators added until three agreed; unresolvable cases were discarded (about 30 percent overall).

A notable property of the benchmark is that many solutions reach the correct final answer through a flawed process, especially on harder problems, so annotators cannot rely on answer checking alone. The paper's evaluation shows that existing process reward models struggle on this task and generalize poorly to challenging problems.

This Potato config reproduces the annotation with the process_reward scheme in first_error mode, attached inline to a scrollable chain-of-thought trace display. As in the paper's protocol, the reference answer is shown to ease annotation, but annotators are instructed to verify the presented solution step by step.

Released
2024 (arXiv:2412.06559); ACL 2025
Test cases
3,400
Subsets
GSM8K (400), MATH (1,000), OlympiadBench (1,000), Omni-MATH (1,000)
Solution generators
12 open-source LLMs
Annotators per solution
3+ (consensus of 3 required, up to 5)
Discard rate in annotation
~30%
Submit

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# ProcessBench Earliest-Error Identification
# Based on: Chujie Zheng, Zhenru Zhang, Beichen Zhang, Runji Lin, Keming Lu,
#   Bowen Yu, Dayiheng Liu, Jingren Zhou, and Junyang Lin (2025).
#   "ProcessBench: Identifying Process Errors in Mathematical Reasoning."
#   Proceedings of the 63rd Annual Meeting of the Association for Computational
#   Linguistics (Volume 1: Long Papers), pp. 1009-1024. arXiv:2412.06559.
#   Paper: https://aclanthology.org/2025.acl-long.50/
#   Dataset: https://github.com/QwenLM/ProcessBench
#
# Task: given a math problem and a step-by-step model-generated solution
# (steps indexed from 0), identify the EARLIEST step containing an error, or
# conclude that all steps are correct. This is the ProcessBench formulation:
# unlike PRM800K-style per-step rating (see agentic/prm800k-step-verification),
# only the first error matters, because the correctness of steps after the
# first error is ambiguous. As in the paper's expert annotation protocol
# (Section 3.2), the reference answer from the source dataset is shown to ease
# the annotation, but annotators must still inspect and verify the presented
# solution step by step.
#
# Annotation instructions adapted from Sections 3.1 and 3.2; the paper does
# not publish the verbatim annotator guideline document (annotators received a
# proficiency examination and annotation tutorial). The error criteria from
# Section 3.1 are quoted verbatim inside the instructions below.

annotation_task_name: "ProcessBench Earliest-Error Identification"
task_dir: "."

data_files:
  - sample-data.json

item_properties:
  id_key: "id"
  text_key: "problem"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

port: 8000
server_name: localhost

annotation_instructions: |
  You are shown a math problem and a step-by-step solution generated by a
  language model, together with the reference answer from the source dataset.
  Your task is to identify the **earliest-occurring error** in the solution,
  or to conclude that all steps are correct. You are not required to solve the
  problem from scratch, but you must inspect and verify the presented solution
  step by step.

  The paper's criteria for an erroneous step (quoted verbatim from Section 3.1):

  "Typically but non-inclusively, we consider a step as erroneous if it
  contains any of the following: (1) Mathematical errors: incorrect
  calculations, algebraic manipulations, or formula applications. (2) Logical
  errors: invalid deductions, unwarranted assumptions, or flawed reasoning
  steps. (3) Conceptual errors: misunderstanding or misapplication of
  mathematical or problem concepts. (4) Completeness errors: missing crucial
  conditions, constraints, or necessary justifications that affect the
  solution's validity. Beyond these types of errors, we encourage human
  annotators to determine the correctness of reasoning steps based on their
  own expertise. We do not require human annotators to explicitly annotate
  error types [...]"

  Mark only the earliest erroneous step: for steps after the first error,
  correctness may become ambiguous or debatable, since derivations based on
  incorrect premises can follow valid rules yet remain on a globally incorrect
  reasoning path. If every step is valid, confirm that all steps are correct.
  Note that a solution can reach the correct final answer and still contain an
  erroneous step.

# Steps are pre-segmented into a list in the data, so cot_segmentation is not
# needed; the cot_trace display and the process_reward scheme point straight
# at the step list.
instance_display:
  fields:
    - key: steps
      type: cot_trace
      display_options:
        show_rail: true
        collapse_long_steps: true
        clamp_lines: 10

annotation_schemes:
  - annotation_type: process_reward
    name: earliest_error
    description: "Work through the solution in order and mark the earliest erroneous step, or confirm all steps are correct."
    steps_key: steps
    mode: first_error
    inline_with_trace: true

html_layout: |
  <div style="padding: 15px; max-width: 860px; margin: auto;">
    <div style="background: #e8f4fd; border: 1px solid #b3d9f2; border-radius: 8px; padding: 16px 20px; margin-bottom: 14px;">
      <h3 style="margin: 0 0 8px 0; color: #1a5276; font-size: 16px;">Math Problem</h3>
      <div style="font-size: 15px; color: #2c3e50; line-height: 1.6;">{{problem}}</div>
    </div>
    <div style="display: flex; gap: 12px; margin-bottom: 14px;">
      <div style="flex: 1; background: #fef9e7; border: 1px solid #f9e79f; border-radius: 8px; padding: 12px 16px;">
        <strong style="color: #7d6608; font-size: 13px;">Solution's final answer</strong>
        <div style="font-size: 15px; font-weight: 600; color: #1a5276;">{{final_answer}}</div>
      </div>
      <div style="flex: 1; background: #eafaf1; border: 1px solid #a9dfbf; border-radius: 8px; padding: 12px 16px;">
        <strong style="color: #196f3d; font-size: 13px;">Reference answer (from source dataset)</strong>
        <div style="font-size: 15px; font-weight: 600; color: #145a32;">{{reference_answer}}</div>
      </div>
    </div>
    <p style="color: #6b7280; font-size: 13px; margin: 0;">The solution steps are shown below as a reviewable trace. Verify each step in order and mark the earliest error, or confirm all steps are correct.</p>
  </div>

allow_all_users: true
instances_per_annotator: 30
annotation_per_instance: 3
allow_skip: true

Sample Datasample-data.json

json
[
  {
    "id": "processbench_001",
    "problem": "A bakery sells muffins for $3 each and croissants for $2 each. On Monday it sold 24 muffins and 18 croissants. On Tuesday it sold twice as many muffins as Monday and half as many croissants. How much revenue did the bakery earn over the two days?",
    "steps": [
      "On Monday, muffin revenue is 24 × $3 = $72 and croissant revenue is 18 × $2 = $36, so Monday's total is $72 + $36 = $108.",
      "On Tuesday, the bakery sold twice as many muffins as Monday, which is 2 × 24 = 48 muffins, and half as many croissants, which is 18 ÷ 2 = 9 croissants.",
      "Tuesday's muffin revenue is 48 × $3 = $124, and Tuesday's croissant revenue is 9 × $2 = $18, so Tuesday's total is $124 + $18 = $142.",
      "Adding the two days together, the total revenue is $108 + $142 = $250."
    ],
    "final_answer": "$250",
    "reference_answer": "$270"
  },
  {
    "id": "processbench_002",
    "problem": "Solve for x: 5(x - 2) + 3 = 2x + 14.",
    "steps": [
      "Distribute the 5 on the left side: 5x - 10 + 3 = 2x + 14.",
      "Combine like terms on the left side: 5x - 7 = 2x + 14.",
      "Subtract 2x from both sides: 3x - 7 = 14.",
      "Add 7 to both sides: 3x = 21.",
      "Divide both sides by 3: x = 7."
    ],
    "final_answer": "x = 7",
    "reference_answer": "x = 7"
  }
]

// ... and 8 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/agentic/processbench-math-error-steps
potato start config.yaml

Dataset & paper

Zheng et al., ACL 2025

Citation (BibTeX)

bibtex
@inproceedings{zheng-etal-2025-processbench,
    title = "{P}rocess{B}ench: Identifying Process Errors in Mathematical Reasoning",
    author = "Zheng, Chujie and Zhang, Zhenru and Zhang, Beichen and Lin, Runji and Lu, Keming and Yu, Bowen and Liu, Dayiheng and Zhou, Jingren and Lin, Junyang",
    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.50/",
    doi = "10.18653/v1/2025.acl-long.50",
    pages = "1009--1024"
}

Details

Annotation Types

process_reward

Domain

MathematicsReasoning

Use Cases

Process Reward ModelsReasoning VerificationBenchmark Annotation

Tags

process-reward-modelmath-reasoningerror-identificationfirst-errorcritique

Found an issue or want to improve this design?

Open an Issue