CoolFace
Datasetpublic

OctoReasoner/mercury_verl

Mercury (verl efficiency eval set) The eval split of Elfsong/Mercury (arXiv 2402.07844; 256 LeetCode-style tasks; the train split ships no test cases and is not gradable), converted to the verl rule-reward schema by verl/scripts/data/mercury.py. Source license CC-BY-NC-4.0 (non-commercial) -- this conversion keeps that license. Every row's ground truth carries the full official scoring contract: entry point, the task's convert_offline/evaluate_offline hooks (lctk linked-list /… See the full description on the dataset page: https://huggingface.co/datasets/OctoReasoner/mercury_verl.

sourceHugging Facecc-by-nc-4.0updated 1mo agoView on Hugging Face
0likes81downloads
Dataset Card

Mercury (verl efficiency eval set)

The eval split of Elfsong/Mercury (arXiv 2402.07844; 256 LeetCode-style tasks; the train split ships no test cases and is not gradable), converted to the verl rule-reward schema by verl/scripts/data/mercury.py. Source license CC-BY-NC-4.0 (non-commercial) -- this conversion keeps that license.

Every row's ground truth carries the full official scoring contract: entry point, the task's convert_offline/evaluate_offline hooks (lctk linked-list / binary-tree conversions included), the materialised test cases, and the reference solution pool. All 256 rows verified at build time: at least one reference solution passes the grading harness locally.

Prompt format: the FinalMix3 training format -- unified system turn + leading [INSTRUCTION] block + ### Starter Code: section + trailing format reminder (verl/scripts/data/unified_prompt.py) -- so evaluation prompts match the training distribution. Numbers recorded against the earlier house-LCB-style prompts are not comparable.

Scoring (verl/verl/utils/reward_score/mercury.py): the extracted class Solution runs all test cases through the task's own hooks in ONE timed firejail execution, reproducing the official sandbox (github.com/Elfsong/Mercury src/sandbox.py). On a full pass, the official Beyond percentile is computed against the task's reference solutions re-executed on the same machine (cached per task); reward = 0.5*pass + 0.5*beyond. Eval recipe: verl/recipe/run_mercury_eval.sh.

Known compromises vs the official evaluator

  • —At most MERCURY_MAX_REFS (default 8) of the ~18 reference solutions are measured per task, sampled evenly across the LeetCode-runtime ordering, to bound reward-time cost.
  • —Beyond = clip((max_rt - rt)/(max_rt - min_rt), 0, 1) -- the paper's formula. The reference implementation clamps the numerator at 1 second before dividing (treated here as a bug).
  • —Runtimes come from a single un-repeated pass (official parity); on this benchmark's small generated inputs, sub-millisecond loop times make Beyond noisy at the per-task level. Aggregate Beyond@1 over 256 tasks is stable.
  • —Execution runs under firejail rlimits, not the official in-process reliability guard.