THUDM / THUDM/slime

[Bug] Validate DAPO labels as exact integers without float coercion

Open
#2,231 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.5k
Forks
1.3k
Avg merge
5h 36m
Merged PRs (30d)
22

Description

Current limitation

The DAPO scorer canonicalizes ground-truth labels with int(float(gt)). This can change the value being compared:

  • "0.5" becomes "0", so a prediction of 0 is incorrectly accepted.
  • Integers beyond binary64's exact range can be rounded before comparison. For example, 9007199254740993 may no longer match itself.

DAPO-Math-17K defines its labels as integers, so the scorer should validate that contract rather than truncate or round labels.

Expected behavior

Malformed, non-finite, and non-integral labels should be rejected with a contextual error. Valid integral decimal and exponent spellings should be canonicalized without losing large-integer precision.

Related pull request

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the DAPO scorer's label canonicalization, as described in the issue, and review related pull request #2203. Reproduce the listed decimal, non-finite, non-integral, exponent, and large-integer cases; done means invalid labels produce contextual errors and valid integral spellings preserve exact integer values.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.