Downloads · 30 days
10
2% of all-time downloads
Marcolini/nanochat-d24-chat-champion
nanochat-d24-chat-champion is a text generation model from Marcolini. Use it when you need the model to write or continue text. It is set up for nanochat. The card lists the license as mit.
The strongest chat checkpoint produced on a single RTX 4070 in this project — and it did not replicate.
Downloads · 30 days
10
2% of all-time downloads
All-time downloads
543
Public
Parameters
911M
2.7 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors2.7 GB · 100%
How the weights are stored.
BF16491M · 54%
From the Hugging Face model README
The strongest chat checkpoint produced on a single RTX 4070 in this project — and it did not replicate.
Run tag: d24_r32_adamw_partial_fr20_mixv2_2026-03-29_1040_s768_gc, step 300. Adapted from Marcolini/nanochat-d24-base-champion @ 820,230.
📊 SFT runs on W&B · 📄 Experiment log and 14 failed branches · 🧪 The data mixes that lost
This is the best single confirmed run on the chat branch. It is published as provisional, not promoted, because it failed its own reproducibility rule:
mixv3, mixv4, a two-stage curriculum, stage-B boosters and a curated-reasoning branch all failed to beat itAt this scale a single run sits inside seed noise. The seed sweep is the evidence, and it says this number is not reliably reachable. Treat the metrics below as one draw, not an expectation.
1000-problem confirm pack.
| Metric | Value | Reference |
|---|---|---|
| GSM8K pass@8 | 4.60% | 46 / 1000 |
| MMLU | 27.40% | 274 / 1000 · random baseline for 4-choice is 25% |
| SpellingBee | 0.39% | 1 / 256 |
| Best SFT val bpb | 0.6981 |
The strongest reasoning result on the project belongs to a different, unpromoted run — reasoning_manual_v1_seed42 at 6.70% GSM8K pass@8 and 27.60% MMLU — whose companion seed failed the gate outright.
| Base | d24_asp48_track @ 820,230 (910.7 M params) |
| Method | partial fine-tune — freeze_layers=20, embeddings and scalars frozen |
| Optimizer | paged_adamw8bit |
| Geometry | seq=768, total_batch=7680, gradient checkpointing on |
| Steps | 300 |
| Data | nanochat's built-in reasoning_focus_v2 preset — SmolTalk + MMLU auxiliary train + 6× GSM8K + identity + SimpleSpelling + SpellingBee |
| Hardware | 1× NVIDIA RTX 4070 12 GB |
Note on data: this checkpoint was trained on the built-in reasoning_focus_v2 mixture, not on the JSONL files in the companion dataset. Those are the eight later mixes that tried to beat this recipe and failed. They are published so the comparison can be checked.
Full LoRA vs partial-fine-tune ablations, the OOM ladder that made partial FT fit in 12 GB, and every failed branch are in report_v3.md.
transformers model — see below.Intended for research on consumer-GPU training, not for deployment.
Not loadable with AutoModelForCausalLM. The architecture uses rotary embeddings, QK-norm, relu² MLP, untied embeddings, GQA, ResFormer value embeddings, and per-layer resid_lambdas / x0_lambdas scalars, so it needs the nanochat GPT class:
git clone https://github.com/Bl4ckd09/nanochat-on-rtx4070
cd nanochat-on-rtx4070
pip install torch safetensors huggingface_hub
python -c "from huggingface_hub import snapshot_download as d; d('Marcolini/nanochat-d24-chat-champion', local_dir='ckpt')"
cd ckpt && PYTHONPATH=.. python load_example.py
A matching 32,768-vocab tokenizer is not bundled; bring the one from the fork.
@misc{nanochat_rtx4070_chat_2026,
author = {Sun},
title = {nanochat-d24-chat-champion: a provisional chat checkpoint from one RTX 4070},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/Marcolini/nanochat-d24-chat-champion}
}
MIT, as upstream.