| --- |
| license: mit |
| library_name: pytorch |
| tags: |
| - char-lm |
| - transformer |
| - kv-cache |
| - educational |
| datasets: |
| - tiny_shakespeare |
| pipeline_tag: text-generation |
| --- |
| |
| # tinygpt-shakespeare (kv-cache-throughput-bench) |
|
|
| A 3.307M-parameter char-level decoder-only transformer trained from scratch on |
| Tiny Shakespeare. It exists to drive the benchmarks in the |
| [kv-cache-throughput-bench](https://github.com/narinzar/kv-cache-throughput-bench) |
| repo: a from-scratch KV cache, a cached-vs-uncached throughput sweep, and an |
| eviction-policy study. |
|
|
| ## Architecture |
|
|
| - 4 layers, 4 heads, 256 embedding dim, block size 512, vocab 65 (characters) |
| - weight-tied token embeddings, pre-norm blocks, learned absolute positions |
|
|
| ## Training |
|
|
| - 2000 steps, batch 48, block 512, AdamW lr 3e-4 |
| - 134 s on a single RTX 5090 Laptop GPU (CUDA 12.8) |
| - final validation loss 1.543, perplexity 4.68 |
|
|
| ## Files |
|
|
| - `tinygpt.pt`: state dict plus the config and char->id map |
|
|
| ## Usage |
|
|
| Clone the repo and load with the provided code: |
|
|
| ```python |
| from src.train import load_model |
| model, stoi, itos = load_model("tinygpt.pt") |
| ``` |
|
|
| ## Intended use and limits |
|
|
| Educational. A char model this small produces locally-coherent but repetitive |
| text under greedy decoding. It is not meant for downstream language tasks. |
|
|