Instructions to use sfanm/nl_tower_ckpts with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use sfanm/nl_tower_ckpts with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("sfanm/nl_tower_ckpts", device_map="auto") - Notebooks
- Google Colab
- Kaggle
nl_tower checkpoints (levels 2 and 3)
Final checkpoints of the nl_tower level-2 and level-3 sweeps: a ~124M-parameter Llama-style model (12 layers, hidden 768, GPT-2 tokenizer, fp32 weights, 494 MB per checkpoint) trained with RL on nl_tower puzzles, with or without demonstration traces in the loss.
Every run is its own folder with a standard Hugging Face model layout
(config.json, model.safetensors, tokenizer files, chat_template.jinja):
level2/<run>/ final step 6,000
level3/<run>/ final step 15,000
manifest.csv one row per run: recipe, seed, step, where it was trained, our scores
Loading
from transformers import AutoModelForCausalLM, AutoTokenizer
repo, run = "sfanm/nl_tower_ckpts", "level3/x5_uni_a64_m0_L3"
tok = AutoTokenizer.from_pretrained(repo, subfolder=run)
model = AutoModelForCausalLM.from_pretrained(repo, subfolder=run)
Download everything, or one level:
hf download sfanm/nl_tower_ckpts --local-dir nl_tower_ckpts
hf download sfanm/nl_tower_ckpts --include "level3/*" --local-dir nl_tower_ckpts
The chat template concatenates message contents with no role markers; prompts are the raw puzzle text.
Runs
manifest.csv describes each run in plain columns. The run name encodes the same information:
| Part of name | Meaning |
|---|---|
aN (first) |
Starting model CPT-N: the 100M base continued-pretrained with N demo rows added to every 256 web rows (N = 8, 16, 32, 64, 128) |
hsep |
RL plus a separate SFT loss on demos: alpha * NLL(demo) + RL loss |
a01 / a05 (last) |
alpha = 0.1 / 0.5 for hsep runs |
uni_..._mM |
RL with M demo rows mixed into the same loss as the RL rows |
m0 |
RL only, no demos |
mM |
M demo rows per 512-row batch (4, 8, 16, 32, 64) |
staged_eE |
Staged baseline: SFT on the demos for E epochs, then RL only (lr05 = a learning-rate variant of that SFT) |
s2 / s3 / s4 |
Seed 2 / 3 / 4 (data-split seed differs); no suffix = seed 1 |
_L2 / _L3 |
Level 2 (trained on mid-difficulty prompts, 6,000 steps) / level 3 (mixed prompts including the hard rung, 15,000 steps) |
Score columns in manifest.csv are our own evaluations of these exact checkpoints (pass@1 and pass@16 from
64 samples per question): nltw_m0 and nltw_m (mid-difficulty test sets; m0 is the easier one), nltw_h (hard test set,
the level-3 target), nltw_hb and nltw_hb12 (10–11-person and 12-person puzzles, harder still).
Empty means not evaluated on that set.
What is here and what is still coming
status in manifest.csv says, for each run:
uploaded— the folder is in this repo.pending DeltaAI upload— trained on a second cluster; its folder is added from there.training ...— the run has not reached its final step yet; added when it does.