GPT-1905 D34 Base (fully trained)
3.29B parameter GPT-style language model trained on pre-1905 English text. Training complete (19,103 steps, 40B tokens).
Model Details
- Architecture: Custom GPT with RoPE, QK-norm, ReLU², value embeddings (ResFormer), per-layer residual/skip scalars
- Parameters: 3.29B
- Layers: 34
- Hidden dim: 2176
- Attention heads: 17 (query) / 17 (kv)
- Head dim: 128
- Context length: 2048 tokens
- Vocab size: 32,768 (BPE, GPT-4 style split pattern)
- Training: Base pretraining on pre-1905 corpus, 19,103 steps, 40B tokens
Checkpoint Contents
model_019103.pt # Model weights
meta_019103.json # Training config and metadata
optim_019103_rank*.pt # Optimizer state shards (if present, for resuming training)
tokenizer/ # BPE tokenizer (tiktoken format) + token byte counts
nanochat/ # Source code to load and run the model
Quick Start
import torch, json
from nanochat.gpt import GPT, GPTConfig
from nanochat.tokenizer import RustBPETokenizer
tokenizer = RustBPETokenizer.from_directory("tokenizer")
with open("meta_019103.json") as f:
meta = json.load(f)
config = GPTConfig(**meta["model_config"])
with torch.device("meta"):
model = GPT(config)
model.to_empty(device="cuda")
model.init_weights()
state_dict = torch.load("model_019103.pt", map_location="cuda")
state_dict = {k.removeprefix("_orig_mod."): v for k, v in state_dict.items()}
model.load_state_dict(state_dict, strict=True, assign=True)
model.eval()
bos = tokenizer.get_bos_token_id()
tokens = tokenizer.encode("It was a dark and stormy night", prepend=bos)
with torch.amp.autocast(device_type="cuda", dtype=torch.bfloat16):
for token in model.generate(tokens, max_tokens=100, temperature=0.8):
print(tokenizer.decode([token]), end="", flush=True)
Dependencies
torch>=2.9
tiktoken
rustbpe
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support