OpenSML-Base-175M / TECHNICAL_REPORT.md
wzebrowski's picture
Document JSONLite descendant training and main-checkpoint results
ea6ddf7 verified
|
Raw History Blame Contribute Delete
12.6 kB

OpenSML-Base-175M: pretraining technical report

Author: William Zebrowski · Parameters: 175,611,648 · Processed token positions: 17,300,111,360

This report describes the pretrained ancestor of OpenSML-JSONLite-175M. Its weight hash is 5151567e266244c9e32fd6e01775192633abe227320269ecdefe28ce43e9ccc3. It was trained from random initialization on the Stage A corpus and continuation. No post-training stage is included in these weights. Frozen checkpoint metadata is in checkpoint_metadata.json; checkpoint_provenance.json pins the selected artifact.

Architecture

The architecture has 24 transformer layers, hidden width 768, 12 query heads, 4 KV heads (head dimension 64), RMSNorm, Q/K normalization, RoPE base 10,000, a SwiGLU FFN with width 2,048, tied embeddings, a 32,000-token vocabulary and a 2,048-token context. Linear layers have no biases. Compute weights are BF16; pretraining used FP32 master weights/moments/gradient accumulation. The exact native model and kernels are included in native_bundle.zip and the model configuration is config.json.

4. Tokenizer and serialization

The model uses the project's frozen 32K byte-level BPE tokenizer at reference/opensml-150m/tokenizer/bytebpe32k_v1. The selected base reuses that tokenizer unchanged. Its own manifest has format sml-v2-tokenizer-v1; the format name is not a model-weight lineage claim.

Tokenizer artifact SHA-256
Tokenizer manifest / contract fingerprint 1194292c6d906ac19e6f01c6ad2b42825143fad426a22aa8856d903776701ecb
tokenizer.json e095f0413a11fa91fbb58f37d00e4c6bcda59beb89b28f6f680db1436a7e8891
tokenizer_config.json 619f500553367eb76f5be00a98625130ec857b9c367561334984096c029ba2a9
tokenizer corpus.json e4c47b7b6aba08f948de7c2c7cb94c58dbd09dde2ded6ac185c60856ee686d27

Structural token IDs:

ID Token Meaning
0 <|pad|> Padding
1 <|doc_end|> Document/end-of-sequence marker
2 <|turn_start|> Role/turn header
3 <|turn_end|> End of a conversational-format turn

The base completion runner uses a raw text prefix and ends on document-end or a reserved structural token. It does not construct chat turns. The reserved role/turn IDs exist in the tokenizer but do not imply instruction tuning in the base model.

Ordinary text must round-trip through the tokenizer and cannot emit reserved structural IDs. Special-token-looking content can be rejected by the tokenizer; the API does not promise unrestricted literal handling of all structural strings. Prompt/output limits are checked without truncating source text.

5. Pretraining corpus and curation

The selected base is the best retained checkpoint at update 132005 after 17,300,111,360 processed token positions. The original budget was 20B; a continuation was configured toward 30B, but this inherited checkpoint is not a completed 20B or 30B artifact.

Source weights below are intended processed-token sampling weights, not measured unique-document shares. No claim of 17.3B globally unique corpus tokens is made.

Source Sampling weight (%) Repository / configuration Pinned revision Additional selection
FineWeb-Edu 50 HuggingFaceTB/smollm-corpus / fineweb-edu-dedup 3ba9d605774198c5868892d7a8deda78031a781f Deduplicated educational subset
DCLM-Edu 18 HuggingFaceTB/dclm-edu dbad8ad71224482740cd9c9d353591adbf62fe04 edu_int_score≥3
FineWiki English 13 HuggingFaceFW/finewiki / en 8bd13e72e6a002407649b3e898535f42ceb1aeb9 English
Cosmopedia v2 9 HuggingFaceTB/smollm-corpus / cosmopedia-v2 3ba9d605774198c5868892d7a8deda78031a781f Format contains textbook/tutorial/blog/educational
Python text mirror 10 Avelina/python-edu-cleaned / default 3fedf55e02e72dd1fd68963f991f5e91adcb0f8d int_score≥4

Public source cards: SmolLM corpus, DCLM-Edu, FineWiki. The Python-Edu upstream subset identifies files; this run used the configured text mirror. The mirror's pinned README could not be retrieved during report preparation, so its provenance statement here comes from the local corpus specification, not a newly completed external audit.

The exact corpus specification is corpus.json. Training preserves source text and code indentation. NFC/whitespace normalization is used for identity hashing and partitioning, not to rewrite model input.

The content-split policy hashes identity into 10,000 buckets: 97% training, 1% validation, 1% final and 1% tokenizer development. Identity checks do not establish that a supervised benchmark article never appeared elsewhere in pretraining web data.

Recorded stream settings are a 256-document accepted-document shuffle buffer, bounded 100,000-document deduplication window, 4 prefetched batches and up to 5 retry attempts. The corpus JSON's generic 10,000 shuffle value is not the active stream override. Filtering rejects documents below 200 characters, above 200,000 UTF-8 bytes, with null characters, excess replacement characters or an excessive repeated-line pattern. Source exhaustion fails rather than silently recycling. Deduplication is bounded; it is not global semantic or fuzzy deduplication.

6. Pretraining execution, optimization and validation

Pretraining runs on the recorded five-Mac Apple Silicon cluster. Mac1's current local hardware was independently checked during report preparation as an Apple M5 Ultra with 96 GB unified memory. Other worker descriptions below are historical cluster records, not newly queried hardware inventories.

Mac Recorded chip RAM Microbatch MLX cache cap
1 M5 Ultra 96 GB 7 16 GiB
2 M3 Ultra 96 GB 3 16 GiB
3 M4 Max 36 GB 2 4 GiB
4 M4 Max 36 GB 2 4 GiB
5 M4 Max 36 GB 2 4 GiB

The physical ring is 1→2→3→5→4→1. Four accumulation microsteps and 2,048-token sequences produce (7+3+2+2+2)×4×2048=131072 positions/update. Unequal-rank gradients are weighted by token counts. Early batch transitions mean the lifetime token count is not simply 132005×131072.

  • First 125 updates: microbatches [4, 4, 2, 2, 2], 114,688 positions/update, 14,336,000 tokens.
  • From 125: microbatches [6, 4, 2, 2, 2], 131,072 positions/update.
  • From 963 / 124,174,336 tokens: [7, 3, 2, 2, 2], same global batch; per-Mac cache caps recorded.
  • Stage A continuation starts from 113313 / 14,850,113,536 tokens, retaining weights, FP32 optimizer state, source cursors, counters and controller history.
  • Selected base: 132005 / 17,300,111,360 tokens.

Ethernet supports SSH orchestration; the training ring uses verified Thunderbolt/RDMA links. Sequential microbatch materialization, FP32 gradient accumulation and custom Metal paths were used.

Pretraining optimizer/schedule Recorded setting
Optimizer AdamW
Nominal peak LR 3e-4
Original warmup 200M tokens, 1% of the 20B budget
Base schedule Warmup/stable interval/cosine; continuation stretches nominal decay to 24B–30B
Adaptive controller Factor 0.8; patience 12 evaluations; cooldown 10; minimum delta 0.002
Controller LR floor 3e-5
Effective cap at selected 132005 3.221225472e-5
Recorded controller reductions / evaluations 9 / 242
Betas (0.9,0.95)
Epsilon 1e-8
Weight decay 0.1
Gradient clipping 1.0
Seed 7337
Loss Next-token cross entropy; FP32 reductions

The nominal 3e-4 schedule is not the effective late-run learning rate: the retained controller cap bounds it. The record does not justify a claim that the run trained at 3e-4 for all 17.3B positions.

Validation and qualitative samples occur at 50M-token boundaries. The fixed validation panel has 32 batches/source, batch 2, five sources, context 2,048: nominally 655,360 positions/event. Aggregate loss is source-mixture weighted. Validation fingerprint: 4ddd461c131d4d27d07bb07f5aab3fcb5a00d4b1202066e3d9b6ee6b3129087b. Selected-base validation loss is 2.5563359551876785, perplexity 12.8885. This measures document prediction, not extraction or chat reliability.

Regular saves occur every 100M tokens, plus best-validation and clean-stop saves. Exact checkpoint metadata is authoritative. The initial October 2 technical report's early observations, 20B target and old schedule describe history; they are superseded here for this selected artifact. Contemporary qualitative logs often showed roughly 41k tokens/s, but no reproducible end-to-end cluster performance/energy benchmark is established by this report. The separate 42.7k profiling candidate is not claimed as the configuration that trained this checkpoint.

Training run

The 175.6M-parameter base was trained from random initialization using next-token prediction across the educational web, Wikipedia, Cosmopedia and Python mixture. Five Apple Silicon Macs carried out distributed pretraining over Thunderbolt/RDMA. Validation was measured every 50M tokens. The curves show a steep early loss reduction followed by slower improvement; the published base was selected using held-out validation.

Stage A pretraining training loss, EMA and held-out validation loss

Training loss and held-out validation during pretraining. Left: raw training loss and exponential moving average. Right: held-out validation loss.

Evaluation and interpretation

EVALUATION_RESULTS.json gives the exact selected-base loss, source losses and validation identity. There is no verified full downstream benchmark result for this exact weight hash in the retained benchmark-results inventory. No older OpenSML-150M or post-trained descendant benchmark score is attributed here. Historical qualitative generations are in PRETRAINING_SAMPLES.json. They show both plausible first completions and repeated or unsupported continuations; they are not accuracy measurements.

Standalone package and verification

The downloadable model.safetensors is byte-identical to the preserved selected pretrained artifact, with 351,242,342 bytes. The native runtime bundle contains only model/kernel/tokenizer code and tokenizer assets; it contains no SFT data, JSON adapter, optimizer or source cursor state. The root runner is tested with a raw text prefix in stock MLX. Packaging verification is distinct from a reproduction of the historical validation run or a new benchmark.

Use and limitations

This model supports raw text completion and further adaptation. Instruction following, conversation, text-to-JSON extraction, multilingual reliability, prompt-injection robustness and general safety are not established by these pretraining results. BF16 native MLX on Apple Silicon is the verified packaging platform. No framework-conversion, quantized or CPU/CUDA parity claim is made.

The source code uses Apache-2.0. The model-weight license remains unassigned in this prepared repository. Dataset licenses apply separately; see THIRD_PARTY_NOTICES.md. The report does not establish blanket commercial or underlying-source redistribution clearance.

JSONLite descendant

The OpenSML-JSONLite-175M-Instruct descendant uses 100,096,883 additional structured-data continued-pretraining tokens followed by one joint full-weight SFT. The main checkpoint inherits 32,000 SFT presentations. On the observed original 1,444-request extraction panel it scores 89.54% complete correctness, 94.91% field accuracy, 93.75% extracted-value F1, 96.13% missing-field accuracy and 99.93% schema validity. Broader structural diagnostics remain weaker: 183/384 complete requests (47.66%). These are descendant results, not scores of this base. See the JSONLite technical report.

JSONLite's supplied runner targets short English text and flat string-based schemas. Broader JSON tasks, arbitrary domains, chat and multilingual reliability are not established. Check schema validity and source-grounded meaning separately. The original base weights, tokenizer and inference runtime are unchanged.