TinyLM

A 3.4M parameter causal language model trained from scratch, for experimentation.

Architecture

Hyperparameter Value
Parameters 3.403.968
Layers 4
Hidden size 64
Attention heads 4
FFN dim 192
Embedding rank 32
Context length 256
Tokenizer GPT-2 (50257 vocab)

Uses a factored (low-rank) embedding to keep the vocab projection from eating the entire parameter budget, with weight tying on the output head.

Training

Datasets Skylion007/openwebtext (10k samples), roneneldan/TinyStories (10k samples)
Optimizer AdamW (lr=3e-3, weight_decay=0.01)
Scheduler Cosine annealing with warm restarts
Mixed precision fp16 (torch.cuda.amp)
Hardware Nvidia P100

Usage

from huggingface_hub import snapshot_download
import importlib.util
import torch

# Download files
snapshot_download(repo_id="Fu01978/TinyLM", local_dir="./tinylm")

# Load via script
spec   = importlib.util.spec_from_file_location("modeling_tinylm", "./tinylm/modeling_tinylm.py")
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)

model, tokenizer, config = module.load_tinylm("./tinylm")
model.eval()

# Generate
output = module.generate(model, tokenizer, "Once upon a time, ")
print(output)
Downloads last month
21
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train Fu01978/TinyLM