--- language: - en tags: - gpt2 - scaling-study - benchmarking - banterhearts pipeline_tag: text-generation library_name: transformers license: mit --- # GPT-2 25M Custom-trained GPT-2 checkpoint with deliberate depth-width configuration for inference benchmarking research. Created as part of the [Banterhearts research program](https://github.com/Sahil170595/Banterhearts) investigating benchmarking integrity for local LLM inference. | | | |---|---| | **Architecture** | GPT2LMHeadModel (MHA) | | **Parameters** | 25M | | **Config** | n_embd=384, n_head=2, n_layer=3, n_inner=1536 | | **Context length** | 1,024 tokens | | **Precision** | FP32 | | **Model size** | 96 MB | | **Vocab size** | 50,257 | ## Purpose Small-scale MHA baseline for depth-width trade-off analysis. These checkpoints are not general-purpose language models. They are deliberately sized scaling-study artifacts designed to isolate the effect of model depth vs width on GPU inference latency. The key finding: in the small-model GPU regime, **layer depth** (not parameter count) dominates latency, producing inversions where a 5M-parameter model can be 3.6x slower than a 25M-parameter model. ## Source Technical Reports Used in: TR117, TR126, TR147 | TR | Role | |---|---| | TR117 | Original cross-backend benchmark matrix (7 backends, 4 model groups) | | TR126 | Linux/Triton compiler validation with phase-separated measurement | | TR147 | Second-regime portability validation on RTX 6000 Ada | ## Design Rationale The GPT-2 family (25M, 50M, 100M) uses a 2x3 factorial design: | Model | n_embd | n_layer | n_inner | Params | Design role | |---|---|---|---|---|---| | gpt2-25m | 384 | 3 | 1,536 | 25M | Shallow, narrow | | gpt2-50m | 512 | 8 | 2,048 | 50M | Deep, medium width | | gpt2-100m | 768 | 8 | 3,072 | 100M | Deep, wide | All models use **2 attention heads** (MHA, not GQA) to isolate architecture effects from attention-group structure. Dropout is set to 0.0 for deterministic inference measurement. ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("Crusadersk/gpt2-25m") tokenizer = AutoTokenizer.from_pretrained("Crusadersk/gpt2-25m") inputs = tokenizer("Hello", return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=32, do_sample=False) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ## Compatibility | Framework | Supported | |---|---| | Transformers | Yes | | torch.compile (Inductor) | Yes | | Ollama | No (not GGUF format) | | vLLM | Yes | ## Citation ```bibtex @misc{banterhearts2026gpt225m, title = {Custom GPT-2 Scaling Checkpoint (25M) for Inference Benchmarking Research}, author = {Kadadekar, Sahil}, year = {2026}, url = {https://huggingface.co/Crusadersk/gpt2-25m}, note = {Part of the Banterhearts research program. NeurIPS 2026 submission.} } ``` ## Acknowledgments This work is part of a 40-TR research program on consumer LLM deployment safety, conducted independently as pre-doctoral research. Full program details at [github.com/Sahil170595/Banterhearts](https://github.com/Sahil170595/Banterhearts).