SmolLM2 Long Context

Extend SmolLM2-1.7B from 8k to 64k tokens of context on one H100, scored on exact-answer questions about private long documents.

8 h per attempt1× H100 · 8 vCPU · 128 GBExpert estimate 12 hPublic grader

Results

Every model's 8 attempts with web search over a copy of the web frozen at October 1, 2026, on the scale that runs from the task's baseline at 0% to its ceiling at 100%.

Each dot is one modelMean of 8Best of 8

Artifacts

What the top model on this task, by mean score, built.

The task

The agent gets the SmolLM2-1.7B base model, trained at 8,192 tokens, and must extend it to answer questions about documents up to 65,536 tokens long. It also gets the verifier's loader, a submission checker, the public question generator, a development question set with a local evaluation script, and about 2,500 public-domain books. Any method is allowed, including training on the public generator. The deliverable is a full checkpoint, config.json and a single model.safetensors, with the base architecture and tensor shapes; the weights are loaded in bf16. Only the RoPE settings are read from the config: rope_theta, max_position_embeddings, and rope_scaling of the linear, dynamic, YaRN or Llama 3 type. The verifier builds the model itself, so no submitted code runs. The private documents write their records in other wordings, and some question wordings are not in the public generator, so the model has to read what a record says.

Trajectories

Step through all 112 attempts from the pass@8 sweep with web search over an October 1, 2026 snapshot: every turn, tool call and submission. The best reward was 87.1%, by Claude Fable 5.2 on attempt 1. The results above come from these runs.

Failure analysis

Gemini 4 Argon averages 0.334 across its 8 attempts. Its models did best on the shortest documents, but questions that follow a chain of variables through the longest documents stayed weak. Most of Argon's failures come from losing training hours to restarts, narrow fixes and a late first test on long documents, and from not building enough test questions to judge its long-document skill.

Lost training hours to restarts, narrow fixes and a late first test on long documents: 31.7 points, found in 3 of 8 attemptsDidn't build enough test questions to judge its long-document skill: 26.8 points, found in 4 of 8 attemptsKept selecting on the public dev set while its own held-out set showed no gain: 8.1 points, found in 1 of 8 attemptsScored: 33.5 points, mean reward 0.335 66.6 points lost
  1. Lost training hours to restarts, narrow fixes and a late first test on long documentsFound in 3 of 8 attempts31.7
  2. Didn't build enough test questions to judge its long-document skillFound in 4 of 8 attempts26.8
  3. Kept selecting on the public dev set while its own held-out set showed no gainFound in 1 of 8 attempts8.1
  4. ScoredMean reward 0.33533.5
Gemini 4 Argon's 8 attempts, 100 points in all: each attempt is worth 12.5 points, and the points an attempt lost count toward its main failure.

Example failure analysis

Attempt 2 · reward 0.084 · Lost training hours to restarts, narrow fixes and a late first test on long documents

Launched its training 14 times with small tweaks and killed most runs early, so no run trained long enough to work past 16k.

What it did
It started a pilot at 0.7h, then relaunched the curriculum trainer 4 times by 1.6h (steps 65-105). From 2.1h to 4.9h it launched train_stage2_3.py 7 times (steps 128-198), usually killing each within 15-40 minutes after a weak interim score. Most relaunches warm-started from an earlier checkpoint, throwing away the killed run's work. Its full dev check stayed at 0.08-0.19 and its private-style set at 1-2 of 36. From 5.3h it swept the attention factor and blended layers, saving a blend at 8 of 36 dev but still 2 of 36 private.
What would have worked
Run one dry run, then let one training run continue for hours instead of killing it after a weak interim score. The best attempt of this model trained 5 phases, each warm-started from the last.
Evidence
  • Step 124My primary objective right now is to secure a reliable baseline on the leaderboard.
  • Step 198nohup python3 /app/train_stage2_3.py > /tmp/stage2_3_v7.log
  • Step 229This is a very sharp transition and warrants immediate investigation.
  • Step 235=== layers20_23_0.85: DEV=0.2222 (8/36) PRIV=0.0556 (2/36) MEAN=0.1389 ===

Why it is hard

The well-known recipe, adjusting RoPE and continuing training on long text, already pulls a single value out of a long document, so single-key lookup is not scored, and neither is the base model's native 8,192 tokens. The scored questions need the whole document: list every value filed under one key among many keys, some near-identical (multi-value lookup); name every variable that ends up holding a value after long assignment chains with reassignments (variable tracking); and name the item with the most delivery notes when decoy memos mention the same items (frequency). RULER reports that aggregation and tracking fall off long before single-needle retrieval. Published context extensions train on billions of tokens; one H100 session allows tens of millions. SmolLM2-1.7B also uses full multi-head attention, so a 64k-token training step strains the GPU's memory.

Records per question, by context length
Setting16k32k64k
Values under the asked key688
Distractor keys2480144
Variables per chain81212
Reassignments244
Items in frequency questions223848

How it is graded

The verifier runs offline in its own container and asks questions about private documents in the three families at 16,384, 32,768 and 65,536 tokens. Decoding is greedy with at most 128 new tokens, and only the first generated line is read. Its items are compared with the correct answer as a set: order, duplicates and other text do not matter, but any missing or extra item, a hedge included, makes the question wrong. The reward is the mean exact-set accuracy over the 9 family and length cells; the unmodified base model, which answers nothing past 8,192 tokens, scores 0. A missing submission, a config outside the allowed RoPE settings, wrong tensor names, shapes or dtypes, or a model that cannot run or gives non-finite logits also scores 0.

Anchors

AnchorRewardScoreMeaning
Floor0.0000%What a missing, invalid or rule-breaking submission scores
Baseline0.0000%The untouched starting point
Ceiling1.000100%The best result the metric allows
Regrade tolerance± 0.040Results closer than this tie

Environment

Domain
ML · Training
Shape
End to end
Agent time
8 h per attempt
Hardware
1× H100 · 8 vCPU · 128 GB
Expert estimate
12 h
Task ID
smollm2-long-context