JingweiNi/ocr2_hardest_questions_10k_seed20260527
收藏资源简介:
--- dataset_info: features: - name: hardness_rank dtype: int64 - name: question dtype: string - name: answer dtype: string - name: question_id dtype: string - name: ocr2_id dtype: string - name: language_split dtype: string - name: source_dataset dtype: string - name: source_split dtype: string - name: source_platform dtype: string - name: difficulty dtype: string - name: difficulty_score dtype: float64 - name: difficulty_score_type dtype: string - name: judgement dtype: string - name: pass_rate dtype: string - name: source_index dtype: string - name: sample_seed dtype: int64 splits: - name: train num_bytes: 23260103 num_examples: 10000 download_size: 11173986 dataset_size: 23260103 configs: - config_name: default data_files: - split: train path: data/train-* --- # OCR2 Hardest Questions 10k This dataset contains the top 10,000 unique questions from `nvidia/OpenCodeReasoning-2` under a deterministic metadata ranking. In this dataset, "hardest" is defined only by OCR2 source metadata: difficulty first, then pass rate. It is not based on a verifier, model-generated traces, or annotation outcomes. ## Source - Source dataset: `nvidia/OpenCodeReasoning-2` - OCR2 language splits scanned: `train/python`, `train/cpp` - Sample seed: `20260527` - Local generation script: `synthetic_dataset_generation.prepare_ocr2_hardest_questions` ## Candidate Filtering The script scans OCR2 parquet metadata and constructs candidates as follows: 1. Keep rows with a non-empty `question_id`. 2. Keep only rows with `judgement == "right"`. 3. Convert `difficulty` to `difficulty_score`. 4. Drop unknown/unmapped difficulty values. 5. Collapse duplicate rows to one representative per `question_id`. The published run scanned `2,572,641` OCR2 rows and kept `33,706` unique candidate questions before taking the top 10,000. ## Difficulty Score Numeric difficulty values are treated as contest ratings and kept as-is. For example, OCR2 difficulty `3500` becomes `difficulty_score=3500.0`. String difficulty labels are mapped as follows: | Source style | Label | Score | |---|---:|---:| | TACO | `VERY_HARD` | 2500 | | TACO | `HARD` | 2200 | | TACO | `MEDIUM_HARD` | 1900 | | TACO | `MEDIUM` | 1500 | | TACO | `EASY` | 800 | | TACO | `UNKNOWN_DIFFICULTY` | -1 | | APPS | `competition` | 2200 | | APPS | `interview` | 1600 | | APPS | `introductory` | 800 | | Missing | `None` or empty string | -1 | Rows with score `-1` are removed because `--drop-unknown-difficulty` is enabled for this release. ## Duplicate Handling OCR2 can contain multiple rows for the same `question_id`, for example across languages or source solutions. The representative row for each `question_id` is chosen by: 1. Higher `difficulty_score`. 2. Lower `pass_rate`. 3. `judgement == "right"` if still tied. 4. Deterministic SHA-256 tie-break from the seed and row id. ## Final Hardness Ranking After deduplication, questions are sorted by: 1. `difficulty_score` descending. 2. `pass_rate` ascending. 3. Deterministic SHA-256 tie-break from the seed and `question_id`. 4. `question_id` as the final stable tie-break. The first 10,000 rows in this sorted list are published. The dataset column `hardness_rank` is this final zero-based rank. ## Question Text Reconstruction Many OCR2 rows store placeholder question text such as `-`. For the released dataset, question text is reconstructed from the original benchmark datasets using OCR2's `dataset`, `split`, and `index` metadata. The release validation found `0` placeholder questions and `0` missing questions after reconstruction. ## Release Statistics - Rows: `10,000` - Unique `question_id`: `10,000` - Judgement counts: `{'right': 10000}` - Source dataset counts: `apps=1356`, `code_contests=719`, `open-r1/codeforces=2894`, `taco=5031` - Difficulty score range: `1800.0` to `3500.0` - Difficulty counts: `1800=298`, `1900=347`, `2000=302`, `2100=306`, `2200=288`, `2300=249`, `2400=301`, `2500=262`, `2600=192`, `2700=202`, `2800=145`, `2900=135`, `3000=115`, `3100=108`, `3200=99`, `3300=74`, `3400=61`, `3500=129`, `HARD=1550`, `MEDIUM_HARD=1487`, `VERY_HARD=1994`, `competition=1356` ## Reproduction Command ```bash HF_HUB_DISABLE_XET=1 PYTHONPATH=. python -m synthetic_dataset_generation.prepare_ocr2_hardest_questions \ --sample-size 10000 \ --seed 20260527 \ --save-path gen_data/ocr2_hardest_questions_10k_seed20260527 \ --summary-path gen_data/ocr2_hardest_questions_10k_seed20260527_summary.json \ --hf-repo JingweiNi/ocr2_hardest_questions_10k_seed20260527 ``` The exact run summary is also stored in this repository as `summary.json`.
This dataset contains the top 10,000 unique questions from `nvidia/OpenCodeReasoning-2` under a deterministic metadata ranking. In this dataset, hardest is defined only by OCR2 source metadata: difficulty first, then pass rate. It is not based on a verifier, model-generated traces, or annotation outcomes.




