CoolFace
Datasetpublic

codelion/sutra-10B

Sutra 10B Pretraining Dataset A high-quality pedagogical dataset designed for LLM pretraining, containing 10,193,029 educational entries totaling over 10 billion tokens. This is the largest dataset in the Sutra series, designed to demonstrate that dense, curated datasets can provide best-in-class pretraining performance for small language models. Dataset Description This dataset was generated using the Sutra framework, which creates structured educational content… See the full description on the dataset page: https://huggingface.co/datasets/codelion/sutra-10B.

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
12likes570downloads
Dataset Card

Sutra 10B Pretraining Dataset

A high-quality pedagogical dataset designed for LLM pretraining, containing 10,193,029 educational entries totaling over 10 billion tokens. This is the largest dataset in the Sutra series, designed to demonstrate that dense, curated datasets can provide best-in-class pretraining performance for small language models.

Dataset Description

This dataset was generated using the Sutra framework, which creates structured educational content optimized for language model pretraining. Each entry is designed to maximize learning efficiency through:

  • Clear pedagogical structure: Content follows proven educational patterns
  • Cross-domain connections: Concepts are linked across disciplines
  • Varied complexity levels: From foundational (level 1) to advanced (level 10)
  • Quality-controlled generation: All entries meet minimum quality thresholds
  • Diverse content types: 33 different pedagogical formats
  • Rich metadata: Every entry annotated with 13 structured fields

Dataset Statistics

MetricValue
Total Entries10,193,029
Total Tokens10,218,677,925
Avg Tokens/Entry1002
Avg Quality Score0.701
TokenizerSmolLM2 (HuggingFaceTB/SmolLM2-135M)

Domain Distribution

DomainEntriesTokensPercentage
interdisciplinary3,561,0523570.0M34.9%
technology2,154,4812159.9M21.1%
science1,456,7081460.3M14.3%
social_studies862,288864.4M8.5%
mathematics830,414832.5M8.1%
life_skills559,667561.1M5.5%
artsandcreativity455,738456.9M4.5%
language_arts235,957236.5M2.3%
philosophyandethics76,72476.9M0.8%

Content Type Distribution (Top 15)

Content TypeCountPercentage
historical_context3,082,95730.2%
concept_introduction928,2449.1%
data_analysis776,4957.6%
worked_examples697,8616.8%
problem_set676,9776.6%
tutorial620,1636.1%
technical_documentation520,2465.1%
research_summary494,0234.8%
code_implementation473,0564.6%
practical_application438,1574.3%
creative_writing337,0653.3%
reasoning_demonstration227,3432.2%
qa_pairs200,0762.0%
ethical_analysis157,8821.5%
experiment_design141,8591.4%

Data Sources

Sutra-10B was created by scaling the same recipe used for Sutra-1B from 1 billion to 10 billion tokens. The core pedagogical content was generated using the Sutra framework, then mixed with several high-quality open datasets for diversity:

SourceDescriptionApproximate Tokens
Sutra (core)Pedagogical content generated with the Sutra framework, scaled from the 1B recipe~7.8B
Nemotron-CC-Math v1High-quality mathematical content (NVIDIA)~0.5B
OpenWebMathMathematical web content~0.5B
Wikipedia (English)Encyclopedic knowledge~0.5B
CosmopediaSynthetic educational content (multiple subsets)~0.5B
FineWeb-EduHigh-quality educational web content~0.5B

Data Fields

Each entry contains 13 structured fields:

FieldTypeDescription
idstringUnique identifier (UUID)
concept_namestringThe concept being taught (2-5 words)
domainstringPrimary knowledge domain (9 domains)
content_typestringType of pedagogical content (33 types)
textstringThe main educational content
quality_scorefloatQuality assessment score (0.0-1.0)
information_densitystringMeasure of information per token (low/medium/high)
complexity_levelintegerDifficulty level (1-10)
token_countintegerNumber of tokens (SmolLM2 tokenizer)
prerequisiteslist[string]Required prior knowledge concepts
builds_tolist[string]Advanced concepts this enables
cross_domain_connectionslist[string]Related knowledge domains
quality_assessmentobjectMulti-dimensional quality scores

Quality Assessment Sub-fields

Sub-fieldTypeDescription
clarityfloatHow clear and readable (0.0-1.0)
accuracyfloatFactual correctness (0.0-1.0)
pedagogyfloatEducational structure quality (0.0-1.0)
engagementfloatHow engaging the content is (0.0-1.0)
depthfloatDepth of coverage (0.0-1.0)
creativityfloatCreative presentation (0.0-1.0)

Valid Domains (9)

mathematics, science, technology, language_arts, social_studies, arts_and_creativity, life_skills, philosophy_and_ethics, interdisciplinary

Valid Content Types (33)

concept_introduction, reasoning_demonstration, code_implementation, technical_documentation, tutorial, cross_domain_bridge, worked_examples, qa_pairs, common_misconceptions, meta_learning, synthesis, prerequisite_scaffolding, code_explanation, diagnostic_assessment, code_debugging, historical_context, research_summary, problem_set, case_study, analogy, experiment_design, proof, algorithm_analysis, data_analysis, ethical_analysis, comparative_analysis, creative_writing, debate_argument, practical_application, thought_experiment, visualization, system_design, review_summary

Data Cleaning

The dataset underwent comprehensive cleaning:

  • Deduplication: SHA-256 hash-based exact duplicate removal across all sources
  • Quality Filtering: Entries below quality_score 0.3 removed
  • Length Filtering: Entries shorter than 50 tokens or longer than 65,536 tokens removed
  • Garbage Detection: Repetitive content, control characters, non-English content filtered
  • Field Validation: All 13 fields validated and normalized

Metadata Generation

Metadata was generated using heuristic keyword-based classification:

  • Domain and content type classification via pattern matching and text analysis
  • Quality scores computed from text statistics (vocabulary diversity, structure, length)
  • Token counts computed using SmolLM2 tokenizer for accuracy

Usage

python
from datasets import load_dataset

# Load the full dataset
ds = load_dataset("codelion/sutra-10B", split="train")

# Stream for large-scale training
ds = load_dataset("codelion/sutra-10B", split="train", streaming=True)

# Filter by domain
math_ds = ds.filter(lambda x: x["domain"] == "mathematics")

# Filter by quality
high_quality = ds.filter(lambda x: x["quality_score"] > 0.7)

# Filter by complexity
beginner = ds.filter(lambda x: x["complexity_level"] <= 3)

Scaling Trajectory

Sutra-10B is the largest dataset in the Sutra series, scaling the original 1B recipe by 10x. When evaluated on SmolLM2-70M (69M parameters), benchmark performance remains consistent across scales, suggesting the model has reached its capacity ceiling. Larger models are expected to benefit more from the additional data and diversity.

Intended Use

This dataset is designed for:

  • LLM Pretraining: High-quality educational content for foundational model training
  • Domain-specific fine-tuning: Subset by domain for specialized training
  • Educational AI research: Studying pedagogical content generation
  • Curriculum learning: Progressive complexity for staged training
  • Small model optimization: Demonstrating data quality > quantity for small LMs

Related Datasets

Citation

bibtex
@article{sharma2026sutra,
  title={Scaling Pedagogical Pretraining: From Optimal Mixing to 10 Billion Tokens},
  author={Sharma, Asankhaya},
  year={2026},
  url={https://huggingface.co/blog/codelion/scaling-pedagogical-pretraining-10-billion-tokens}
}

License

Apache 2.0