Transformer from scratch. CUDA GPU acceleration. Built using the Burn framework.
Prerequisites: Rust and Cargo installed (Edition 2024 or latest). A CUDA-capable GPU is recommended, or use --device cpu.
git clone https://github.com/muhammad-fiaz/gpt-2-rust.git
cd gpt-2-rust
cargo run --release -- --download --size small --weights-dir weights
Options: small (117M), medium (345M), large (762M), xl (1.5B), or all.
cargo run --release -- --generate \
--model weights/small/model.safetensors \
--prompt "The future of artificial intelligence is" \
--size small \
--max-new-tokens 100 \
--temperature 0.8
| Variant | Params | Layers | Heads | Embed dim |
|---|---|---|---|---|
small | 117 M | 12 | 12 | 768 |
medium | 345 M | 24 | 16 | 1024 |
large | 762 M | 36 | 20 | 1280 |
xl | 1.5 B | 48 | 25 | 1600 |
Single binary, four modes:
--download — Fetch weightscargo run --release -- --download --size small --weights-dir weights
--generate — Text generationcargo run --release -- --generate \
--model weights/small/model.safetensors \
--prompt "Your prompt" \
--size small \
--max-new-tokens 100 \
--temperature 0.8 \
--top-k 50 \
--top-p 0.9 \
--device cuda
--evaluate — Perplexitycargo run --release -- --evaluate \
--model weights/small/model.safetensors \
--format safetensors \
--data data/input.txt \
--seq-len 128 \
--batch-size 4
--train — Pre-train / fine-tunecargo run --release -- --train \
--data data/input.txt \
--artifact-dir artifacts/ \
--size small \
--epochs 3 \
--batch-size 4 \
--seq-len 128 \
--lr 3e-4