Views
No views yet
Independent replication — not an official release. This model was fine-tuned by Huanyu Zhang as a from-scratch reconstruction of the training pipeline in He, Lv, Manela & Wu (2025). It is not produced or endorsed by the paper's authors (manelalab). The base weights and the SFT dataset are theirs; the instruction-tuning code and these fine-tuned weights are this replication's. Absolute numbers are not expected to match the paper to the decimal (see Limitations).
chrono-instruct-v1-19991231 is an instruction-tuned language model built by
supervised fine-tuning (SFT) of the base model
manelalab/chrono-gpt-v1-19991231 — a ~1.55B-parameter,
52-layer modded-nanoGPT U-net (26 encoder + 26 decoder layers with skip
connections and value embeddings; model_dim 1536, 12 heads, vocab 50304, context
1792; RMSNorm, rotary position embeddings, QK-norm, ReLU² MLP, and logit softcap).
The tokenizer is tiktoken GPT-2.pytorch_model.bin + config.pt/config.json written by this
replication's ChronoGPT.save_pretrained. Loading therefore uses the replication
package's own ChronoGPT class (a lightly adapted, numerically bit-identical vendor
of the authors' ChronoGPT_inference.py) — not transformers.AutoModel, and
trust_remote_code is not required.1# Install the replication package (provides the ChronoGPT class + infer helpers)
2pip install "git+https://github.com/zhanghuanyu0619/chrono-instruct-replication.git"
3# or: git clone ... && cd chrono-instruct-replication && pip install -e .1import torch
2from chrono_instruct import infer
3
4# Loads weights from the Hub, moves to CUDA if available, sets eval mode.
5model, device = infer.load("HZ0619/chrono-instruct-v1-19991231")
6
7# The models were fine-tuned on the Stanford Alpaca prompt template
8# (with a trailing newline after "### Response:"). Match it at inference time:
9def alpaca_prompt(instruction: str, inp: str = "") -> str:
10 if inp:
11 return (
12 "Below is an instruction that describes a task, paired with an input "
13 "that provides further context. Write a response that appropriately "
14 "completes the request.\n\n"
15 f"### Instruction:\n{instruction}\n\n### Input:\n{inp}\n\n### Response:\n"
16 )
17 return (
18 "Below is an instruction that describes a task. Write a response that "
19 "appropriately completes the request.\n\n"
20 f"### Instruction:\n{instruction}\n\n### Response:\n"
21 )
22
23prompt = alpaca_prompt("Name the President of the United States.")
24
25# Greedy decoding by default (temperature=0.0, top_k=None) — matches the authors'
26# ChronoGPT_instruct.py. A ~1.5B model can loop under pure greedy; for readable
27# text turn on the anti-repetition guards (they change decoding, so leave them OFF
28# to reproduce the paper's exact greedy output).
29completion = infer.generate(
30 model, device, prompt,
31 max_new_tokens=128,
32 temperature=0.0, # 0.0 == greedy (argmax); set >0 to sample
33 top_k=None, # e.g. 50 to restrict sampling
34 return_completion=True, # return only the newly generated tokens
35 # repetition_penalty=1.3, no_repeat_ngram_size=3, # optional readability guards
36)
37print(completion)1vec = infer.embed(model, device, "Some pre-cutoff document text.", layer=-1, pool="mean")
2print(vec.shape) # (1536,)manelalab/ChronoInstruct-SFT
— Alpaca-format instruction/response triples from three sources
(LLMs-from-scratch simple tasks → GPT-3 self-instruct → AllenAI Tulu-3 mixture),
647,944 rows as released.0 ("knowledge available pre-2000") with confidence == 10
are kept — a deliberately strict double filter. This replication reproduces the
paper's counts exactly: 647,944 → 425,119 retained pairs (1,097 / 67,136 /
356,886 across the three curriculum stages). A single pre-2000 screen is reused
across all vintages because pre-2000 ⊆ pre-τ for every τ ≥ 1999.-100 so the loss scores only the response tokens.stage1_scratch (LLMs-from-scratch simple tasks) — 3 epochsstage2_self_instruct (GPT-3 self-instruct) — 2 epochsstage3_tulu (Tulu-3 mixture) — 2 epochs0.1·lr); block size 1792; batch size 8 × grad-accum
4 (effective 32); gradient checkpointing on; global seed 123 (drives the
train/val split, shuffle, and sampling).results/replication-report/README.md in the repository:chrono eval --repo HZ0619/chrono-instruct-v1-19991231 --cutoff 1999.1@article{he2025instructchronogpt,
2 title = {Instruction Tuning Chronologically Consistent Language Models},
3 author = {He, Songrun and Lv, Linying and Manela, Asaf and Wu, Jimmy},
4 year = {2025},
5 note = {arXiv:2510.11677; SSRN 5348747}
6}1@article{he2025chronogpt,
2 title = {Chronologically Consistent Large Language Models},
3 author = {He, Songrun and Lv, Linying and Manela, Asaf and Wu, Jimmy},
4 journal = {Working Paper},
5 year = {2025}
6}manelalab/chrono-gpt-v1-19991231 (MIT license) — © manelalab.manelalab/ChronoInstruct-SFT — © manelalab.