CoolFace
Datasetpublic

SlayerLab/minimal-en-corpus-2.5b-v2

Minimal EN Corpus 2.5B 2.0 A deterministic English-language pretraining corpus for approximately 125M-parameter GPT-style models. This is the curated 2.0 generation of Minimal EN Corpus: source-pinned, model-free quality filtered, exact- and near-deduplicated, and decontaminated against the public evaluation splits of ARC, HellaSwag, PIQA, WinoGrande, OpenBookQA, BoolQ, MMLU, and GSM8K. The name refers to the original approximately 2.5B-token source mixture. After cleaning… See the full description on the dataset page: https://huggingface.co/datasets/SlayerLab/minimal-en-corpus-2.5b-v2.

sourceHugging Faceupdated 3d agoView on Hugging Face
0likes342downloads
Dataset Card

Minimal EN Corpus 2.5B 2.0

A deterministic English-language pretraining corpus for approximately 125M-parameter GPT-style models. This is the curated 2.0 generation of Minimal EN Corpus: source-pinned, model-free quality filtered, exact- and near-deduplicated, and decontaminated against the public evaluation splits of ARC, HellaSwag, PIQA, WinoGrande, OpenBookQA, BoolQ, MMLU, and GSM8K.

The name refers to the original approximately 2.5B-token source mixture. After cleaning, deduplication, and benchmark decontamination, the packaged release contains 2,431,800,156 canonical 12,288-token BPE tokens and 2,911,078 documents. Four 32,000- and 49,152-token CustomBPE and SuperBPE alternatives are also included for retokenizing the Parquet text.

Contents

PathDescription
train/*.parquetTraining text: 2,905,199 documents
validation/*.parquetValidation text: 5,879 documents
data/train.bin2,426,751,493 little-endian uint16 tokens
data/val.bin5,048,663 little-endian uint16 tokens
data/train.idx2,905,200 little-endian uint64 document offsets
data/val.idx5,880 little-endian uint64 document offsets
data/manifest.jsonBinary layout, sizes, token counts, and SHA-256 checksums
tokenizer/tokenizer.jsonCanonical 12,288-token Hugging Face tokenizers tokenizer used by the binaries
tokenizer/nanogpt-12k.jsonCanonical native integer BPE merge table
tokenizer/alternatives/CustomBPE and SuperBPE tokenizers at 32,000 and 49,152 tokens
manifests/tokenizers.jsonTokenizer formats, source hashes, training provenance, and binary compatibility
manifests/Split, mixture, provenance, quality, deduplication, and decontamination evidence

The Parquet schema is:

  • —document_id: string
  • —source_id: string
  • —text: large_string

Tokenizers

Canonical binary tokenizer

  • —Byte-level BPE with GPT-2-style pretokenization
  • —Vocabulary size: 12,288
  • —12,029 merges
  • —<|endoftext|>: ID 12,285
  • —<|im_start|>: ID 12,286
  • —<|im_end|>: ID 12,287
  • —One <|endoftext|> separator follows every document in the binary package

data/train.bin and data/val.bin are encoded only with this canonical tokenizer. The alternative tokenizers below are not binary-compatible; use them to retokenize train/*.parquet and validation/*.parquet.

Alternative tokenizers

FamilyVocabularyHugging Face tokenizerOriginal model artifact
CustomBPE32,000tokenizer/alternatives/custom-bpe-32000/tokenizer.jsonmerges.json
CustomBPE49,152tokenizer/alternatives/custom-bpe-49152/tokenizer.jsonmerges.json
SuperBPE32,000tokenizer/alternatives/superbpe-32000/tokenizer.jsontokenizer.json
SuperBPE49,152tokenizer/alternatives/superbpe-49152/tokenizer.jsontokenizer.json

CustomBPE retains its exact source merges.json; the adjacent tokenizer.json is an encoding-equivalent Hugging Face ByteLevel BPE conversion. SuperBPE retains its original two-stage Hugging Face tokenizer with cross-whitespace stage-two merges. All four were trained on SlayerLab/minimal-en-corpus-5b revision 870948fee236859fd9f72f7057f39252dceb697f; exact input and implementation provenance is in each artifact.json and manifests/tokenizers.json.

Mixture

SourceDocumentsPackaged tokensValidation tokens
FineWeb-Edu632,656740,991,8741,524,021
DCLM Baseline387,876559,537,7041,150,920
English Wikipedia297,392222,835,179458,740
StackExchange296,980215,231,537443,666
FineMath 4+122,968188,938,462388,889
Cosmopedia v2202,632174,597,123359,046
Stack-Edu114,249137,442,576283,116
Project Gutenberg969107,234,878260,303
peS2o v27,10749,790,602106,348
Gutenberg Dialogue826,78824,476,17950,332
English Wikinews21,46110,724,04223,282

The train/validation split is whole-document, source-stratified, deterministic, and selected by seeded xxHash64 rank over stable document IDs. Validation targets 5M tokens without slicing documents.

Preparation

  1. 1.Deterministic source selection from pinned upstream revisions.
  2. 2.Byte-exact and normalized-exact deduplication.
  3. 3.128-permutation MinHash/LSH near-deduplication over 5-word shingles at a 0.8 similarity threshold.
  4. 4.Source-aware model-free quality filtering, repeated-line cleanup, and secret/PII redaction.
  5. 5.Benchmark decontamination using normalized exact fragments and contiguous 13-word n-grams, including propagation through prior duplicate families.
  6. 6.Deterministic whole-document train/validation packaging.

Curation removed 225,888 duplicate documents, rejected 6,137 quality failures, and removed 2,603 benchmark-contaminated documents. The final decontamination audit found zero configured direct or duplicate-family overlaps and zero token/checksum mismatches.

Loading the text dataset

python
from datasets import load_dataset

ds = load_dataset("SlayerLab/minimal-en-corpus-2.5b-v2")
print(ds)
print(ds["train"][0]["source_id"])

Streaming avoids downloading the complete text export:

python
from datasets import load_dataset

ds = load_dataset(
    "SlayerLab/minimal-en-corpus-2.5b-v2",
    split="train",
    streaming=True,
)
print(next(iter(ds)))

Using the nanoGPT binaries

python
import numpy as np

train = np.memmap("data/train.bin", dtype="<u2", mode="r")
val = np.memmap("data/val.bin", dtype="<u2", mode="r")
train_idx = np.memmap("data/train.idx", dtype="<u8", mode="r")
val_idx = np.memmap("data/val.idx", dtype="<u8", mode="r")

vocab_size = 12288
block_size = 2048

Binary checksums

FileSHA-256
data/train.bina32ecf2e13521d62fb576d86c029e5e9f06bae8309b2572b8e0368980a42a4aa
data/val.bindaf16636db428ecc637608aeeb93f0480584eac553f902d744d9245adc1e40fb
data/train.idxe25e0cc414b6d98e205a9c49a3c050b2a5ecd22bf866162946b71ed6b1f74fad
data/val.idx2f24ff1fc1789c962ccfff3e4bc252d831ed2c3719541f36ea90d80df4022b4e

Upstream licensing and provenance

This aggregate corpus does not apply a new unified license to underlying documents. Each document retains a source_id and remains subject to its upstream license, terms, and attribution requirements.

SourceRevisionLicense / terms
FineWeb-Edu87f09149ef4734204d70ed1d046ddc9ca3f2b8f9ODC-By-1.0
DCLM Baseline817d6752765f6a41261085171dd546b104f60626CC-BY-4.0 dataset card; upstream page rights remain applicable
English Wikipediab04c8d1ceb2f5cd4588862100d08de323dccfbaaCC-BY-SA-3.0 and GFDL
StackExchangeRedPajama-Data-1T-v1.0.0Stack Exchange CC BY-SA terms; preserve post attribution metadata
FineMath 4+e92b25a616738fe95dc186b64dfb19f9c8525594ODC-By-1.0
Cosmopedia v23ba9d605774198c5868892d7a8deda78031a781fODC-By-1.0
Stack-Edueeec5caac5cc3758a18f1d3ba4416837a9ba814cPer-file permissive licenses only; Software Heritage provenance retained
Project Gutenberg164853d214065df26a630ee1ab91a0c39e461cafProject Gutenberg License and per-work public-domain status; jurisdiction-dependent
peS2o v2636a503e44a3ca1b58e01fb61eab0825cd574de0ODC-By-1.0; upstream open-access paper terms remain applicable
Gutenberg Dialoguef3a0a1df18275cd9f61f7d161ad6eed3ce35f88cMIT dataset packaging over Project Gutenberg-derived dialogue; overlaps the books donor
English Wikinewsb4c2ec3857fcac203c40b8d61586e934ed07c128Public domain before 2005-09-25; CC-BY-2.5 through 2024-12-15; CC-BY-4.0 from 2024-12-16

Review the upstream dataset cards before commercial use, redistribution, or public model release. Detailed pinned revisions and transformations are recorded under manifests/.

Version 2.0

  • —Rebuilt the mixture from pinned current source revisions under the Pollock Corpus V2 proposal.
  • —Added exact, normalized-exact, and MinHash near-deduplication.
  • —Added source-aware quality filtering and deterministic redaction manifests.
  • —Added pinned core-language-model benchmark decontamination with duplicate-family propagation.
  • —Added indexed train and validation binaries plus reusable Parquet text splits.
  • —Added exact CustomBPE and SuperBPE tokenizer artifacts at 32,000 and 49,152 vocabulary sizes.
  • —Verified two complete release builds as byte-identical before publication.

Author

Dawid Majewski — huggingface.co/dawidmajewski