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.
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 and patents, 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
| Role | Surfaces | Raw | Retained | Weight | Cooldown |
|---|
| Web | commoncrawl.pagescrawl.pagesinternet.documents | 52T | 12.6T | 47% | 40% |
| Public discourse | internet.textreddit.commentsreddit.postssocial.postshackernews.itemsstackexchange.postsforums.postsmailing_lists.messages | 4T | 2.4T | 16% | 12% |
| Scholarly full text | academic.catalogacademic.papersacademic.extractionsopenalex.works | 3.5T | 2.4T | 12% | 18% |
| Public record | internet.documents | 3T | 1.6T | 9% | 8% |
| Code and software history | github.reposgithub.documentspackages.catalog | 1T | 0.8T | 9% | 14% |
| Transcripts | tiktok.transcriptsinternet.documents | 0.1T | 0.08T | 1% | 1% |
| Books and reference | books.cataloginternet_archive.itemsinternet.text | 0.4T | 0.3T | 4% | 5% |
| Markets and structured records | markets.catalogcn_enterprise.companiesevents.records | 0.5T | 0.2T | 2% | 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
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
- Bluesky
- Mastodon
- Hacker News
- Stack Exchange
- forums
- mailing lists
- newsletters
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
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
- Congressional Record
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
Cleaning, before and after
Real documents from the archive — the raw capture on the left, the text a model would train on to 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:
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
Related docs
Schema, provenance, and freshness Inspect Scry schema, source-native tables, provenance fields, freshness state, and query-visible corpus surfaces before running broad research queries.Connect Scry to ChatGPT, Claude, Codex, and other agents Add Scry as an MCP server in ChatGPT, Claude.ai, Claude Desktop and Cowork, Claude Code, Codex, Cursor, or any MCP client, then ask it structured questions over the corpus.