106
stars
11
commits
1
linked in READMEs
Sep 7, 2026
updated
📦 UltraData Collection | 🌐 UltraData | 🤗 MiniCPM5 Series
English | 中文
UltraData-RL-2609 is the L3 refined data for reinforcement learning within UltraData's L0-L4 tiered data management framework. Built for the RL stage of MiniCPM5-2B post-training, it complements UltraData-SFT-2605 with verifiable-reward tasks. It is also the training corpus used by JustRL II (Scaling Small LLMs to 128K Reasoning with a Critic), which extends the minimalist JustRL recipe with a critic and 128K-scale reasoning RL.
The release contains more than 85,000 training samples spanning mathematical reasoning, scientific / knowledge reasoning, long-context understanding, and code generation. Each sample is a verifiable task, normalized into JSONL for RL training, and constructed around three goals — verifiable outcomes, trustworthy rewards, and calibrated difficulty — so that the policy receives a stable, traceable training signal.
The release contains 85,995 samples across four RL directions. Knowledge corresponds to the STEM / science-reasoning slice in the construction write-up.
| Direction | Samples | Share | Task | How outcomes are verified |
|---|---|---|---|---|
| Math | 32,412 | 37.7% | Competition- and textbook-style problems with a single extractable answer | Answer match against ground_truth |
| Code | 23,665 | 27.5% | Program synthesis from a natural-language specification | Execute the submission against test cases in ground_truth |
| Long-Context | 18,046 | 21.0% | Long-document multi-hop QA (context is included in query) | Answer match against ground_truth; context is guaranteed to support the answer |
| Knowledge | 11,872 | 13.8% | Short-answer science / knowledge reasoning | Answer match against ground_truth |
| Total | 85,995 | 100% |
JustRL II uses UltraData-RL-2609 as its verifiable-reward training set for scaling small LLMs to 128K reasoning with a critic. Building on the minimalist JustRL recipe, it further adopts length-adaptive advantage estimation and a critic for more stable long-horizon RL.
In the JustRL II experimental setting with this dataset, AIME 2025 rises from 61 to 81 within about 300 RL steps. The final MiniCPM5-2B checkpoint that consumes UltraData-RL-2609 in post-training further reaches 86 on AIME 2025. See the JustRL II technical blog for the full ablations, and additional benchmarks.
Stages 1–2 prepare the data; stages 3–5 enforce verifiable → trustworthy → calibrated; stage 6 packages the release. All four domains share the same six stages with domain-specific verifiers and filters.
What each domain does at stages 2–4:
| Domain | Stage 2 · standardization | Stage 3 · verifiability | Stage 4 · reward check |
|---|---|---|---|
| Math / Knowledge | Rewritten as short-answer | Answer extraction and match | Multi-model consensus |
| Long-Context | Context extended, Q–A link kept | Explicit context–answer link required | Answer compare + model review |
| Code | Unified query and I/O contract | Sandboxed execution against tests | Test / solution / output cross-check |
Each JSONL line is one RL training sample. The release uses five fields: uuid, query, ground_truth, source, and domain.
{
"uuid": "{Domain}_00001",
"query": "…the full problem statement shown to the policy…",
"ground_truth": "…reference answer…",
"source": "{Original Source} | UltraData-RL-2609",
"domain": "{Domain}"
}
| Field | Type | Description |
|---|---|---|
| uuid | string | Globally unique sample ID (domain prefix + index). |
| query | string | The task the model must answer or complete; for long-context tasks the full context and the question are both in this field. |
| ground_truth | string | object | Reference answer or verifiable target: a string for Math / Knowledge / Long-Context; a test-case object for Code (see below). |
| source | string | UltraData-RL-2609 |
| domain | string | One of Math, Knowledge, Long_Context, Code. |
Code problems are standard-I/O tasks (call_type = std, fn_name = null). Their ground_truth holds two equal-length arrays, inputs and outputs: the i-th entries are the complete stdin and expected stdout of the i-th test case. Verification is execution-based: pipe inputs[i] to the candidate program's stdin and compare stdout with outputs[i] after trailing-whitespace normalization; a submission is correct only if every test case passes. Example with two tests:
{"inputs": ["3\n1 2 3\n", "1\n5\n"], "outputs": ["6\n", "5\n"]}
from datasets import load_dataset
ds = load_dataset("openbmb/UltraData-RL-2609", "Math", split="train")
ds = load_dataset("openbmb/UltraData-RL-2609", "Knowledge", split="train")
ds = load_dataset("openbmb/UltraData-RL-2609", "Long-Context", split="train")
ds = load_dataset("openbmb/UltraData-RL-2609", "Code", split="train")
print(ds[0]["query"][:300])
print(ds[0]["ground_truth"])
Available configs: Math, Knowledge, Long-Context, Code.
Math), science / knowledge reasoning (Knowledge), long-context multi-hop QA (Long-Context), program synthesis with executable tests (Code).This project is released under the Apache 2.0 license. Upstream datasets are licensed under MIT, CC BY 4.0, and CC BY-SA 4.0, which continue to apply to content derived from them. Apache 2.0 does not override those terms.
No unauthorized unchanged redistribution: Without prior written permission from the original authors (or this organization), any institution, organization, or third-party platform is strictly prohibited from directly reposting, mirroring, re-hosting, or commercially repackaging and republishing any artifacts of this project in any form.
If you find UltraData-RL-2609 useful in your research, please consider citing:
@misc{ultradata_rl_2609,
title = {UltraData-RL-2609},
author = {MiniCPM Team},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/openbmb/UltraData-RL-2609}}
}
106
stars
11
commits
1
linked in READMEs
Sep 7, 2026
updated
📦 UltraData Collection | 🌐 UltraData | 🤗 MiniCPM5 Series
English | 中文
UltraData-RL-2609 is the L3 refined data for reinforcement learning within UltraData's L0-L4 tiered data management framework. Built for the RL stage of MiniCPM5-2B post-training, it complements UltraData-SFT-2605 with verifiable-reward tasks. It is also the training corpus used by JustRL II (Scaling Small LLMs to 128K Reasoning with a Critic), which extends the minimalist JustRL recipe with a critic and 128K-scale reasoning RL.
The release contains more than 85,000 training samples spanning mathematical reasoning, scientific / knowledge reasoning, long-context understanding, and code generation. Each sample is a verifiable task, normalized into JSONL for RL training, and constructed around three goals — verifiable outcomes, trustworthy rewards, and calibrated difficulty — so that the policy receives a stable, traceable training signal.
The release contains 85,995 samples across four RL directions. Knowledge corresponds to the STEM / science-reasoning slice in the construction write-up.
| Direction | Samples | Share | Task | How outcomes are verified |
|---|---|---|---|---|
| Math | 32,412 | 37.7% | Competition- and textbook-style problems with a single extractable answer | Answer match against ground_truth |
| Code | 23,665 | 27.5% | Program synthesis from a natural-language specification | Execute the submission against test cases in ground_truth |
| Long-Context | 18,046 | 21.0% | Long-document multi-hop QA (context is included in query) | Answer match against ground_truth; context is guaranteed to support the answer |
| Knowledge | 11,872 | 13.8% | Short-answer science / knowledge reasoning | Answer match against ground_truth |
| Total | 85,995 | 100% |
JustRL II uses UltraData-RL-2609 as its verifiable-reward training set for scaling small LLMs to 128K reasoning with a critic. Building on the minimalist JustRL recipe, it further adopts length-adaptive advantage estimation and a critic for more stable long-horizon RL.
In the JustRL II experimental setting with this dataset, AIME 2025 rises from 61 to 81 within about 300 RL steps. The final MiniCPM5-2B checkpoint that consumes UltraData-RL-2609 in post-training further reaches 86 on AIME 2025. See the JustRL II technical blog for the full ablations, and additional benchmarks.
Stages 1–2 prepare the data; stages 3–5 enforce verifiable → trustworthy → calibrated; stage 6 packages the release. All four domains share the same six stages with domain-specific verifiers and filters.
What each domain does at stages 2–4:
| Domain | Stage 2 · standardization | Stage 3 · verifiability | Stage 4 · reward check |
|---|---|---|---|
| Math / Knowledge | Rewritten as short-answer | Answer extraction and match | Multi-model consensus |
| Long-Context | Context extended, Q–A link kept | Explicit context–answer link required | Answer compare + model review |
| Code | Unified query and I/O contract | Sandboxed execution against tests | Test / solution / output cross-check |
Each JSONL line is one RL training sample. The release uses five fields: uuid, query, ground_truth, source, and domain.
{
"uuid": "{Domain}_00001",
"query": "…the full problem statement shown to the policy…",
"ground_truth": "…reference answer…",
"source": "{Original Source} | UltraData-RL-2609",
"domain": "{Domain}"
}
| Field | Type | Description |
|---|---|---|
| uuid | string | Globally unique sample ID (domain prefix + index). |
| query | string | The task the model must answer or complete; for long-context tasks the full context and the question are both in this field. |
| ground_truth | string | object | Reference answer or verifiable target: a string for Math / Knowledge / Long-Context; a test-case object for Code (see below). |
| source | string | UltraData-RL-2609 |
| domain | string | One of Math, Knowledge, Long_Context, Code. |
Code problems are standard-I/O tasks (call_type = std, fn_name = null). Their ground_truth holds two equal-length arrays, inputs and outputs: the i-th entries are the complete stdin and expected stdout of the i-th test case. Verification is execution-based: pipe inputs[i] to the candidate program's stdin and compare stdout with outputs[i] after trailing-whitespace normalization; a submission is correct only if every test case passes. Example with two tests:
{"inputs": ["3\n1 2 3\n", "1\n5\n"], "outputs": ["6\n", "5\n"]}
from datasets import load_dataset
ds = load_dataset("openbmb/UltraData-RL-2609", "Math", split="train")
ds = load_dataset("openbmb/UltraData-RL-2609", "Knowledge", split="train")
ds = load_dataset("openbmb/UltraData-RL-2609", "Long-Context", split="train")
ds = load_dataset("openbmb/UltraData-RL-2609", "Code", split="train")
print(ds[0]["query"][:300])
print(ds[0]["ground_truth"])
Available configs: Math, Knowledge, Long-Context, Code.
Math), science / knowledge reasoning (Knowledge), long-context multi-hop QA (Long-Context), program synthesis with executable tests (Code).This project is released under the Apache 2.0 license. Upstream datasets are licensed under MIT, CC BY 4.0, and CC BY-SA 4.0, which continue to apply to content derived from them. Apache 2.0 does not override those terms.
No unauthorized unchanged redistribution: Without prior written permission from the original authors (or this organization), any institution, organization, or third-party platform is strictly prohibited from directly reposting, mirroring, re-hosting, or commercially repackaging and republishing any artifacts of this project in any form.
If you find UltraData-RL-2609 useful in your research, please consider citing:
@misc{ultradata_rl_2609,
title = {UltraData-RL-2609},
author = {MiniCPM Team},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/openbmb/UltraData-RL-2609}}
}