ks46/usernames
usernames 149,142,110 unique login-style usernames (1,713 MB of bytes) collected from public sources, filtered to [A-Za-z0-9._-]{3,64} with case kept, deduplicated exactly, and split by xxh3_64(name) % 64 == 0 into 2,328,816 held-out and 146,813,294 training names. Files prep/names.parquet: every kept name with src (index of the source that first mentioned it, in the table order below), h (xxh3_64 of the name) and heldout; sorted by h. prep/train.bin… See the full description on the dataset page: https://huggingface.co/datasets/ks46/usernames.
usernames
149,142,110 unique login-style usernames (1,713 MB of bytes) collected from public sources, filtered to [A-Za-z0-9._-]{3,64} with case kept, deduplicated exactly, and split by xxh3_64(name) % 64 == 0 into 2,328,816 held-out and 146,813,294 training names.
Files
prep/names.parquet: every kept name withsrc(index of the source that first mentioned it, in the table order below),h(xxh3_64 of the name) andheldout; sorted byh.prep/train.bin,prep/heldout.bin: the same names in the same order, each followed by a zero byte (<eos>), ready to memory-map for byte-level training.prep/card.json: per-source counts, overlap between sources, length histogram, most frequent shapes.sources/<id>.parquet: the names extracted from each source before cross-source dedup, onenamecolumn, sorted by name.prep/names.parquet: the whole corpus, sorted by name:name,source(the owning source),heldout.
Curation
The corpus is curated: training.curate scores every name with a classifier fine-tuned from the teacher model on the judge labels below (expected quality 1–5, expected offensiveness 0–4, P(offensive ≥ 3)), and training.prep --curated keeps each name with probability (quality ramp 2.5 → 3.5) × (offensiveness flat to 0.1, ramp to 0 at 1.0), zero when P(offensive ≥ 3) > 0.2, decided by a hash of the name. Dropped 47,979,317 names: 27,418,319 at the quality floor, 3,718,801 at the offensiveness ceiling, 16,962,271 by the ramps' draw.
Labels
labels/<set>.parquet: names scored by an LLM judge (training.judge --label):qis signup-form quality 1 (keyboard mash, ids) to 5 (a name a person clearly chose),ois offensiveness 0 (fine), 1 (edgy), 2 (crude), 3 (explicit or harassing), 4 (hateful or violent); a hash-strided sample of the corpus named after it. These train the curation classifier (training.curate).
Sources
raw is the count after the filter within the source; kept is after cross-source dedup, where the first source in this order owns a name. Stack Exchange display names of the form user1234567 are dropped.
