Ai Data Curation Pretraining logo

Ai Data Curation Pretraining

Community
vasilyu1983
ai-data-curation-pretraining

Builds and audits LLM pretraining corpora: extraction, filtering, dedup, decontamination, data mixing, synthetic data. Use when curating or ablating a pretraining data pipeline.

Overview

Publishervasilyu1983
RepositoryAI-Agents-public
Skill nameai-data-curation-pretraining
Stars
87
Forks
19
Bundled files
7
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 7 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by vasilyu1983 on GitHub. Read the source before you install it.

Installation

Install the Ai Data Curation Pretraining AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/vasilyu1983/AI-Agents-public.git /tmp/AI-Agents-public
mkdir -p .claude/skills
cp -r /tmp/AI-Agents-public/frameworks/shared-skills/skills/ai-data-curation-pretraining .claude/skills/ai-data-curation-pretraining
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ai Data Curation Pretraining in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ai Data Curation Pretraining on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ai Data Curation Pretraining is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Pretraining Data Curation — Functional Reference Skill

Domain: Building web-scale and synthetic pretraining corpora, running controlled data ablations. Distinct from applications-layer retrieval (RAG) and general data engineering.

No theory. No generic pipeline intros. Focus on stage-by-stage decisions, heuristic thresholds, tooling choices, and ablation protocol.

ASCII Flow

text
CommonCrawl WARCs
  |
  v
[Extract]  trafilatura / datatrove HTMLExtractor
  raw text + metadata (URL, timestamp, content-type)
  |
  v
[Language ID]  fastText lid.176.bin
  keep target language(s), threshold ≥ 0.65
  |
  v
[Quality Filter — Heuristic]  Gopher / C4 rules
  symbol-to-word ratio, fraction lines ending ellipsis,
  stopword density, word count bounds, mean word length
  |
  v
[Quality Filter — Classifier]  FineWeb-Edu edu-score / custom
  trained on human labels; outperforms heuristics on recall
  |
  v
[Near-Dedup]  MinHash + LSH banding (datasketch)
  n-gram shingles -> MinHash signature -> band partitioning
  |
  v
[Exact-Substring Dedup]  suffix-array substring match
  remove exact repeated sequences across documents
  |
  v
[Decontamination]  n-gram match against eval benchmarks
  FAIL LOUD — contaminated eval numbers are the field's #1 silent failure
  |
  v
[PII / Safety Scrub]  regex + classifier
  email, phone, SSN, credit card patterns; hate/CSAM removal
  |
  v
[Tokenize + Shard]  HF tokenizers / tiktoken; Parquet shards
  |
  v
[Domain Mix + Weight]  dolma toolkit / custom sampling
  web / books / code / math / synthetic — proportions are a research lever
  |
  v
[Train + Eval]  nanotron / lighteval / lm-evaluation-harness
  ablation output: eval delta per pipeline stage

When to Use This Skill

Activate when the task involves:

  • Finding existing high-quality datasets for pretraining or fine-tuning before building from scratch (see Dataset Discovery reference)
  • Sourcing and filtering CommonCrawl WARCs or other web-scale corpora
  • Implementing or debugging any stage of the curation pipeline above
  • Designing quality filters (heuristic or classifier-based)
  • Running MinHash / LSH deduplication or exact-substring dedup
  • Decontaminating a dataset against evaluation benchmarks
  • Generating synthetic pretraining data (Cosmopedia, Self-Instruct, Evol-Instruct, Nemotron)
  • Designing and executing controlled data ablations
  • Writing datasheets (Gebru et al.) for a curated dataset
  • Understanding open recipe datasets: FineWeb, Dolma, The Pile, RedPajama, SlimPajama, C4, RefinedWeb, OLMo

Scope Boundaries

This skill covers the corpus side of pretraining — from raw crawl to tokenized shards and ablation measurement. Use linked skills for adjacent concerns:

  • Pretraining run setup, distributed training, checkpointingai-pretraining
  • Token budget, compute-optimal scaling (Chinchilla law)ai-scaling-laws
  • Benchmark harness setup, metric interpretationai-evals
  • Applications-layer retrieval, chunking, reranking at inference timeai-rag — NOTE: RAG is not pretraining data curation; do not conflate corpus mixing with retrieval indexing
  • Storage, ingestion, workflow orchestration at platform leveldata-lake-platform

Quick Reference

StageToolingHighest-Leverage Lever
Extractdatatrove HTMLExtractor, trafilaturaExtractor choice sets noise ceiling for all downstream stages
Language IDfastText lid.176.bin; GlotLID (2000+ languages) or OpenLID for low-resource/multilingualThreshold: ≥ 0.65 keeps recall; ≥ 0.85 kills noisy multilingual. Use GlotLID over lid.176 once >176 languages or heavy code-switching is in scope — it's what FineWeb2 standardized on
Heuristic qualityGopher rules, C4 rulesSymbol-to-word ratio < 0.1; stopword density > 2 words per 100
Classifier qualityFineWeb-Edu edu-scoreSingle classifier outperforms 20+ Gopher rules on recall
Near-dedupMinHash + LSH (datasketch)Jaccard threshold 0.8, 9-gram shingles, 128 permutations
Exact-dedupSuffix-array substringCatches boilerplate that MinHash misses (short repeated blocks)
Semantic-dedupSemDeDup (arXiv 2303.09540)Embedding-cluster dedup catches paraphrases MinHash misses; complements (not replaces) MinHash
Decontaminationn-gram overlap vs eval sets≥ 13-gram match = contaminated; remove entire document
PII / safetyRegex + classifier cascadeEmail/phone regex first (fast), then classifier for context-dependent PII
Tokenize + shardHF tokenizers, tiktokenShard to ≤ 1 GB Parquet; document boundaries matter for context windows
Domain mixdolma toolkit; DoReMi / RegMix for weightsMix proportions are the single most impactful knob after basic filtering — set them with a method, not by hand (see Data Mixing Methods)

Frontier Recipes & Methods (2024–2026)

The pipeline above is the durable backbone. These are the recipes a current practitioner is expected to know and cite; treat them as the modern defaults, not optional extras.

Recipe / MethodWhat it changedUse it for
DataComp-LM (DCLM) — arXiv 2406.11794First controlled benchmark for data curation (240T-token pool, fixed compute, 53 evals). Showed a single fastText classifier trained on high-quality reference text (DCLM-Baseline) beats heuristic stacks decisively.The reference point when arguing any filtering choice. Replicate its model-based filtering before hand-tuning Gopher rules.
Nemotron-CC — arXiv 2412.02595Solves the token-yield problem: aggressive edu-style filters discard ~90% of tokens. Uses a classifier ensemble + synthetic rephrasing of mid/low-quality pages to recover 6.3T usable tokens.Multi-trillion-token runs where filtering would otherwise starve the corpus. Pairs with the synthetic-data reference.
WRAP (rephrase-the-web) — arXiv 2401.16380Rephrases web pages into cleaner styles ("like Wikipedia", QA format) instead of only filtering — ~3x pretraining speedup at fixed compute. The paradigm Nemotron-CC scales.Lifting quality of pages that filtering would drop; augmenting scarce high-quality domains.
FineWeb-2 — arXiv 2506.20920Extends the FineWeb/datatrove pipeline to 1000+ languages with per-language threshold tuning (20TB, 5B docs).Any non-English or multilingual corpus. The default multilingual baseline.
Common Pile v0.1 / Comma — arXiv 2506.052098TB public-domain + openly licensed corpus across 30 sources; 7B models competitive with unlicensed-data peers.Corpora with IP/copyright exposure (enterprise, public release). See licensing traps.
Common Corpus — arXiv 2506.01732 (Pleias / AI Alliance)~2T-token openly licensed corpus with heavy non-English (French, German, multilingual) coverage; complements Common Pile's English/code skew.Open-license corpora needing broader multilingual coverage than Common Pile alone.
Blu-WERP — arXiv 2511.18054 (Nov 2025)Reports +4.0% vs. DCLM-Baseline and +9.5% vs. FineWeb, aggregate, at 1B scale, via JusText extraction + Bloom-filter dedup + semantic classifier. Not yet independently replicated or adopted by a frontier lab as of this writing — treat as an emerging challenger, not a settled successor.Sanity-checking whether your extraction+filter stack is still state-of-the-art; a candidate to benchmark against, not yet a default to copy blind.

Data Mixing Methods

Domain mix is the highest-leverage knob after basic filtering — but "tune via ablations" is no longer the frontier answer. Set it with a principled method:

MethodMechanismWhen to reach for it
DoReMi — arXiv 2305.10429Train a small proxy with group-DRO to find domain weights that minimize worst-case excess loss; transfer weights to the full run. +6.5pp few-shot vs Pile defaults.You have fixed domains and want robust weights without a full sweep.
Data Mixing Laws — arXiv 2403.16952Fit a scaling-law surface over mixture ratios from small proxy runs; extrapolate the optimum before spending full compute.Predicting the optimal mix at target scale from cheap experiments.
RegMix — arXiv 2407.01492Train many small models on random mixtures, regress performance on ratios, pick the predicted-best mixture. Matches DoReMi at lower compute.Compute-cheaper alternative to DoReMi; many candidate domains.

Whichever you use, still validate the chosen mix with a held-out ablation run (Run E) — the methods set the prior, the ablation confirms it.

Default Workflow

  1. Define corpus goal: target language, domain distribution, token budget, training compute budget.
  2. Extract: run datatrove HTMLExtractor over WARC dumps; keep URL + source metadata.
  3. Language filter: fastText lid; log per-language token counts before and after.
  4. Heuristic filter: apply Gopher + C4 rules; log drop rate per rule to identify dominant removals.
  5. Classifier filter: train or apply FineWeb-Edu edu-score / custom classifier; set threshold on a held-out labeled set.
  6. Dedup: MinHash + LSH near-dedup first (catches paragraph-level duplicates), then suffix-array exact-substring.
  7. Decontaminate: match against every evaluation benchmark you plan to report; fail loud on any ≥ 13-gram overlap.
  8. PII / safety scrub: regex sweep + safety classifier; document removal rates.
  9. Tokenize + shard: produce indexed Parquet shards; verify document count and total token count.
  10. Mix + ablate: design controlled ablation runs (one change per run); train small proxy model; measure eval delta with lm-evaluation-harness.
  11. Datasheet: write Gebru et al. datasheet before publishing or using the corpus externally.

Data Ablation Table

Run small proxy model (e.g., 1B param) at fixed compute budget. One change per run. Evaluate on the same benchmark suite with lm-evaluation-harness.

RunCorpusChange vs PriorExpected Signal
ARaw CC extract (no filter)BaselineNoisy ceiling
B+Heuristic filter + near-dedupGopher + MinHash+3–8 pts on perplexity benchmarks
C+Classifier filterFineWeb-Edu score+2–5 pts over heuristics alone
D+Synthetic data (10% mix)Cosmopedia / Self-InstructVaries by task domain
EMethod-driven mix (DoReMi / RegMix prior, then validate)Vary web:books:code:synthIdentifies optimal mix for target tasks

Protocol: hold compute constant across A–E. Evaluate on HellaSwag, ARC, MMLU, and a domain task. Do not change model architecture between runs. Do not change eval prompt format between runs. Decontaminate before each run independently.

ASCII Heuristic Rules Cheat Sheet

text
Gopher rules (sample):
  word_count: 50 ≤ n ≤ 100_000
  mean_word_length: 3 ≤ chars ≤ 10
  symbol_to_word_ratio: < 0.1  (symbols = #, %, |, …)
  fraction_lines_ending_ellipsis: < 0.3
  fraction_lines_starting_bullet: < 0.9
  stopword_density: ≥ 2 of {the, be, to, of, and, that, have, with} per 100 words

C4 rules (sample):
  no_lorem_ipsum: True
  no_javascript_warning: True  (blocks containing "javascript" must-be-enabled)
  line_terminal_punctuation: ≥ 0.95 of lines end in {. ! ? "}
  no_curly_braces: True  (proxy for code / template bleed)
  deduplicated_3gram: remove exact 3-gram repeated lines

MinHash + LSH Banding Intuition

text
Choose:
  n = 9  (shingle size in tokens)
  k = 128  (MinHash permutations)
  bands b = 20, rows r = 128/20 ≈ 6

P(collision) ≈ 1 - (1 - s^r)^b
At s=0.8 (80% Jaccard): P ≈ 0.86  -> most duplicates found
At s=0.5 (50% Jaccard): P ≈ 0.28  -> most near-matches missed (safe)

Increase b / decrease r to catch lower-Jaccard near-dups (more aggressive).
Decrease b / increase r to tighten threshold (less aggressive, faster).

Known Traps

  1. Contamination — the field's most common silent failure. Benchmark text appears in training data, scores look inflated, but the model learned the answer key. Decontaminate against every benchmark you plan to report, using n-gram overlap. Fail loud: if any document matches ≥ 13 grams, remove it and log the URL.

  2. Model collapse from synthetic data — iteratively training on model outputs concentrates the distribution; tail capabilities and rare knowledge erode. Canonical reference: Shumailov et al., "AI models collapse when trained on recursively generated data," Nature 631:755–759 (2024), DOI 10.1038/s41586-024-07566-y. Mitigation: always mix human-sourced web data with synthetic; monitor output diversity metrics (distinct-n, entropy) during generation. The picture is more nuanced than "synthetic = collapse risk": scaling-law work on mixed corpora finds collapse is not inevitable at moderate synthetic ratios (arXiv 2510.01631, Oct 2025 — mixes around 1/3 rephrased-synthetic + 2/3 natural web reduced loss without collapse), and external verification against a stronger model or human judge — not just mixing — is the mechanism that reliably prevents collapse under fully recursive retraining (ICLR 2026 workshop, "Escaping Model Collapse via Synthetic Data Verification"). Treat "mix with real data" as necessary but insufficient; pair it with a verifier gate (see synthetic-data reference).

  3. Diversity collapse — heavy classifier filtering removes stylistically unusual but high-quality text (dialects, domain jargon, informal registers). Check: does the filtered corpus have narrower vocabulary size and sentence-length distribution than the input?

  4. Generator contamination — when a generative model produces synthetic data, it may reproduce memorized benchmark content. Decontaminate the synthetic data independently, not just the web data.

  5. Distillation licensing — GPT-4 / Claude ToS prohibit using model outputs to train competing models. Verify the generator's license before mixing distilled data into a publicly released corpus.

  6. Single-change ablation discipline — changing two variables in one run makes the delta uninterpretable. Always one change per run.

  7. EU AI Act training-data transparency (live enforcement risk, not theoretical) — under Article 53(1)(d), GPAI model providers placing a model on the EU market must publish a "sufficiently detailed summary" of training content using the AI Office's mandatory template (published 2025-07-24), covering categories including crawled/scraped data, licensed data, user data, and synthetic data. The obligation took effect 2025-08-02 for new GPAI models (models already on the market by then have until 2027-08-02); the AI Office may begin compliance checks and corrective measures from 2026-08-02. Non-compliance exposes providers to fines up to €15M or 3% of global annual revenue. Separately, the DSM Directive Article 4 TDM exception requires crawlers to detect and honor machine-readable rightsholder opt-outs (robots.txt-style signals); the Commission is still finalizing standard opt-out protocols as of mid-2026. Practical implication for curation pipelines: log data-source category (crawled / licensed / synthetic / user) per document from Stage 0 onward — retrofitting this after the fact for a training-data summary is far more expensive than logging it during extraction.

Common Anti-Patterns

  • Pulling a HF dataset and calling it "curation" — curation requires documented filtering decisions and a datasheet.
  • Running ablations with more than one pipeline change per run — you cannot attribute the eval delta.
  • Reporting evaluation numbers without decontamination — always contamination-check first.
  • Using the full-size model for ablations — proxy model at 1B params + fixed compute budget is the standard.
  • Skipping PII scrub because "it's just pretraining data" — PII memorization is a real attack surface.

Core Principles

  1. Every pipeline stage is a measurable research lever — log drop rates, token counts, and eval deltas at each stage separately.
  2. One change per ablation run — this is the entire discipline of data ablations.
  3. Decontaminate or your numbers lie — fail loud on contamination; it is not optional.
  4. Verifier-gate synthetic data — only include generated examples that pass a verifier or judge; unfiltered synthetic data degrades quality.
  5. Datasheet everything — Gebru et al. datasheet for every dataset you publish or hand off.

Navigation: Core References

  • Dataset Discovery — where to find existing datasets (HF, Kaggle, Google Dataset Search, government portals, lm-evaluation-harness) and the license/contamination gates before using them
  • Web Curation Pipeline — datatrove stage-by-stage: WARC download, extraction, language ID, heuristic filter, dedup, decontamination
  • Synthetic Data Generation — Cosmopedia / Self-Instruct / Evol-Instruct recipes, verifier gating, collapse traps
  • Data Ablation Method — controlled-run protocol, proxy model setup, metric collection, datasheet

External Sources

See data/sources.json for curated primary sources across:

  • Open corpus recipes and papers (FineWeb, Dolma, The Pile, RedPajama, C4, RefinedWeb)
  • Deduplication and decontamination methods
  • Synthetic data generation papers
  • Evaluation harness

Fact-Checking Rule

  • Known bugs, regressions, framework/compiler/runtime footguns, and version-specific crash or workaround guidance must be verified against current primary web sources before being treated as current fact.
  • Verify volatile external facts before final answers.
  • Prefer official docs, standards, release notes, and GitHub READMEs.
  • If you cannot verify, say so explicitly and present the guidance as a dated assumption instead of a fact.

Learnings Loop

Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).

After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Ai Data Curation Pretraining AI skill do?

Builds and audits LLM pretraining corpora: extraction, filtering, dedup, decontamination, data mixing, synthetic data. Use when curating or ablating a pretraining data pipeline.

Why use Ai Data Curation Pretraining on TypingMind?

Because you install it once and use it with any model. Ai Data Curation Pretraining is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ai Data Curation Pretraining in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/vasilyu1983/AI-Agents-public/tree/main/frameworks/shared-skills/skills/ai-data-curation-pretraining. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Ai Data Curation Pretraining?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ai Data Curation Pretraining?

As many as you like. As long as a model supports skills, you can use Ai Data Curation Pretraining with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ai Data Curation Pretraining AI skill free?

Yes. It is published on GitHub by vasilyu1983 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇