Corpus

Pretraining Corpus 1

A 20-trillion-token pretraining mixture designed as SQL over public Scry surfaces: web text, public discourse, scholarly full text, the public record, code, and reference — every document time-stamped and source-attributed. Designed and measured in place; nothing is copied.

Design

  • Budget20T tokens · 80% pretrain / 20% cooldown
  • Version2026.08.21
  • Statusdesigned — weights and retained sizes are design targets
  • MeasuredRaw denominators read 2026-08-21

Why it's different

Every document is time-stamped and source-attributed, so temporal curricula, as-of-date training, and leakage-free holdouts are a WHERE clause.
The corpus is a query: each slice is SQL over public surfaces, so anyone with a key can reproduce a slice, audit a weight, or materialize a variant — nothing has to be shipped to be inspected.
Public discourse at depth — whole threads with authors and timing — alongside the web, rather than a thin social garnish.
The public record as text: filings, patents, judgments, and registries, with exhibits and tables intact.
It keeps growing: the archive has a live tail, so the same design re-measured next month is a larger corpus with the same shape.

Mixture

RoleSurfacesRawRetainedWeightCooldown
Webcommoncrawl.pagescrawl.pagesinternet.documents52T12.6T47%40%
Public discourseinternet.textreddit.commentsreddit.poststwitter.tweetssocial.postshackernews.itemsstackexchange.postsforums.postsmailing_lists.messagesquora.answers4T2.4T16%12%
Scholarly full textacademic.catalogacademic.papersacademic.extractionsopenalex.works3.5T2.4T12%18%
Public recordcourts.china_judgmentscn_enterprise.companiesinternet.documents3T1.6T9%8%
Code and software historygithub.reposgithub.documentspackages.catalog1T0.8T9%14%
Transcriptstiktok.transcriptsinternet.documents0.1T0.08T1%1%
Books and referencebooks.cataloginternet_archive.itemsinternet.text0.4T0.3T4%5%
Markets and structured recordsmarkets.catalogcn_enterprise.companiesevents.records0.5T0.2T2%2%

Raw rows and uncompressed text bytes are read from engine metadata; tokens are estimated at 4 bytes per token and rounded to one significant figure. Retained sizes and weights are design targets.

Slices

Web — 24B+ captures · 190M+ crawled pages · 200M+ documents

The same page recurs across crawls and boilerplate rides along, so this slice loses most of its raw mass to exact and fuzzy dedup before quality bands are applied; the top three of five bands train, the lowest two are held for ablation.

  • Common Crawl plain-text captures
  • Scry's own crawl
  • landed documents

Public discourse — 29B+ Reddit records · billions of posts · 364M+ list messages · 83M+ Q&A posts

Threads are kept whole (post plus replies in order) rather than shredded into rows; reposts, near-duplicate short posts, and deleted or bot-flagged records are dropped. Q&A with accepted answers is concentrated into the cooldown phase.

  • Reddit
  • X / Twitter
  • Bluesky
  • Mastodon
  • Hacker News
  • Stack Exchange
  • forums
  • mailing lists
  • Quora
  • Substack

Scholarly full text — 90M+ papers · 500M+ works

One text per paper (best extraction wins), references and running headers stripped, abstracts used where full text is absent. Upweighted in cooldown.

  • academic full text
  • arXiv
  • PubMed
  • OpenAlex abstracts
  • Crossref

Public record — 550M+ filing records · 170M+ patents · 85M+ judgments

Long, formulaic, and heavily templated — dedup of boilerplate sections is the main filter; exhibits and tables are kept as text so the model sees real filings, not summaries.

  • SEC EDGAR filings
  • patents
  • court judgments
  • Congressional Record
  • company registries

Code and software history — 400M+ repositories · 1B+ registry records

The thin slice: READMEs, docs, budgeted top-priority source files, and commit messages. A competitive code share at this budget means licensing in a permissively-licensed code corpus; the design leaves that seat marked rather than filled.

  • GitHub documents
  • Software Heritage commit history
  • package registries
  • Go modules

Transcripts — millions of episodes and videos

Spoken register, kept small and deduplicated by episode; the slice is sized to what is publicly surfaced today.

  • TikTok captions
  • podcast transcripts

Books and reference — 6M+ articles · 60K+ books · 170M+ archive items

Small, clean, and seen more than once: the classic multi-epoch reference slice.

  • Wikipedia
  • Project Gutenberg
  • book catalogs
  • Internet Archive items
  • The Pile (baseline)

Markets and structured records — 300M+ market records · 560M+ trend rows

Rows serialized into short dated sentences so prices, resolutions, and filings arrive as text with their timestamps — a dense numeracy and calendar signal for little of the budget.

  • Kalshi
  • Polymarket
  • Manifold
  • Google Trends
  • FEC
  • company registries

Pipeline

  • One row per documentEvery slice already has the internet.text shape — source, relation, id, ts, author, title, text, uri — so normalization is a SELECT, not an ETL.
  • Exact dedupBy content digest and canonical URL across crawls and sources; the first-seen timestamp is the one kept.
  • Fuzzy dedupMinHash candidate clusters, then verified word 3-gram containment before a document is dropped; the longer document survives.
  • Language and quality bandsLanguage id, then five quality bands calibrated per content type (prose, code, structured, multilingual) by a small classifier distilled from model labels; bands are reported per slice, not hidden.
  • Decontamination, twiceN-gram overlap against public evaluation suites, and a time cutoff: because every document carries ts, any benchmark published after the cutoff is clean by construction and a temporal holdout falls out for free.
  • MixturePer (role, quality band) weights with at most 2.5 epochs on any cell, two phases — 80% pretrain, 20% cooldown that leans into scholarly text, code, Q&A, and the top bands.

Cleaning, before and after

Real documents from the archive: the raw capture on the left, what the model would train on on the right. Every character is quoted from a live surface — nothing is reconstructed.

A mailing-list message, unwrapped from its page

Extraction and boilerplate removal · commoncrawl.distillate — tier-A HTML to tier-B clean text · mail.python.org distutils-sig archive, 11 April 2018 (public list archive)

Before — raw capture
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD>
  <TITLE> [Distutils] How to install examples files?</TITLE>
  <LINK REL="Index" HREF="index.html">
  <style type="text/css"> pre { white-space: pre-wrap; } </style>
  <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
</HEAD>
<BODY BGCOLOR="#ffffff">
  <H1>[Distutils] How to install examples files?</H1>
  <B>Thomas Kluyver</B>
  <A HREF="mailto:distutils-sig%40python.org?Subject=Re%3A...&In-Reply-To=%3C...%3E">thomas at kluyver.me.uk</A><BR>
  <I>Wed Apr 11 04:04:19 EDT 2018</I>
  <P><UL>
    <LI>Previous message (by thread): <A HREF="032142.html">[Distutils] How to install examples files?</A></LI>
    <LI>Next message (by thread): <A HREF="032144.html">[Distutils] How to install examples files?</A></LI>
    <LI><B>Messages sorted by:</B>
        <a href="date.html#32145">[ date ]</a> <a href="thread.html#32145">[ thread ]</a>
        <a href="subject.html#32145">[ subject ]</a> <a href="author.html#32145">[ author ]</a></LI>
  </UL><HR>
<!--beginarticle--><PRE>If I recall correctly, 'pip install --target' works by installing
into a temporary directory, then copying only the library part ...
After — cleaned document
If I recall correctly, 'pip install --target' works by installing into a
temporary directory, then copying only the library part to the target
directory. So it will throw away any docs/examples/scripts that would be
installed outside the importable package.

On Tue, Apr 10, 2018, at 10:08 PM, Michael Schwager wrote:
> It looks like the following setup.py will do what I want, but it won't
> install the examples when I use --target:

What the stage removed:

  • the DOCTYPE, <head>, inline CSS, and page chrome
  • the "reply to this message" mailto link carrying the full subject and In-Reply-To id
  • the Previous/Next-message links and the "Messages sorted by [date][thread][subject][author]" navigation
  • the HTML markup wrapped around every quoted line, leaving plain > prefixes the model can read

8,029 bytes of HTML became 3,981 bytes of text — about half of the capture was markup and navigation the model never needs to see. The same extraction runs on scholarly PDFs, where the cuts are deeper: running headers, hyphenated line-breaks, and reference lists routinely take a raw paper from ~120K characters to ~27K of clean prose.

Public mailing-list archive; a short excerpt shown to illustrate the extraction step.

Reproduce it

Raw mass of the discourse slice by source

The same denominators this page reports, reproduced from the unified text surface.

SELECT source, count() AS docs
FROM internet.text
GROUP BY source
ORDER BY docs DESC

A temporal holdout in one predicate

Everything in a slice after a cutoff date — the shape of a leakage-free evaluation split.

SELECT id, ts, author, title, left(text, 400) AS excerpt
FROM internet.text
WHERE source = 'hackernews' AND ts >= '2026-01-01'
ORDER BY ts DESC
LIMIT 20

Web slice, one crawl, one host

A Common Crawl slice narrowed the way the dedup stage sees it: one page text per URL, latest capture wins.

SELECT url, argMax(text, ts) AS text
FROM crawl.pages
WHERE host = 'lesswrong.com' AND status = 200
GROUP BY url
LIMIT 20

Known gaps

  • NoteRetained sizes, band shares, and weights are design targets until the pipeline runs over a sample and measures them; raw counts are the only measured numbers on this page.
  • NoteCode is thin relative to frontier mixtures at this budget; the seat is marked for a permissively-licensed code corpus.
  • NoteNo mathematics-heavy or synthetic rewrite slice yet; multilingual share is unmeasured.
  • NotePer-source terms and licenses govern what can leave the archive; this page describes a design measured in place, not a download.

Sources

Related docs