Downloads · 30 days
36
1% of all-time downloads
NamrataThakur/Small_Language_Model_MHA_53M_Pretrained
Small_Language_Model_MHA_53M_Pretrained is a text generation model from NamrataThakur. Use it when you need the model to write or continue text. The card lists the license as mit.
This repository demonstrates a small Multi-Head-Attention language model trained from scratch for educational and research purposes.
Downloads · 30 days
36
1% of all-time downloads
All-time downloads
5.5K
Public
Repo size
847 MB
Likes
1
Public
Click a slice to open those files.
.pth635 MB · 75%
From the Hugging Face model README
This repository demonstrates a small Multi-Head-Attention language model trained from scratch for educational and research purposes.
This model is a part of a collection of Small Language Models pretrained from scratch on the Tiny Stories Dataset. The collection contains 3 pretrained models (at this moment), more on the way. The model variants in the collection ranges from standard GPT to Mixture-Of-Experts versions built with RoPE, Group Query Attention, and RMSNormalization.
| Model | Params | Architecture | Validation Loss |
|---|---|---|---|
| Stories-SLM | 53M | Dense - MHA | 1.78 |
| Stories-SLM 2 | 48M | Dense - GQA | 1.73 |
| Stories-SLM 2-MoE | 127M | Sparse - Mixture-of-Experts | 1.67 |
Model Name: Stories-SLM
Stories-SLM is a small language model pretrained from scratch on the Tiny Stories Dataset. It has 53 million parameters and is trained for 10,000 steps on a single Tesla T4 GPU. It is trained on the next token prediction task using Cross-Entropy Loss over 674M tokens.
To install Stories-SLM, follow these steps:
# Clone the repository
git clone https://github.com/NamrataThakur/Large_Language_Model_From_Scratch_Implementation.git
#Create an environment:
python -m venv env
# Install the required packages
pip install -r requirements.txt
Stories-SLM can be used to generate small, grammatically and semantically coherent simple short stories suitable for children.
The easiest way to interact with Stories-SLM is through its Chainlit interface:
chainlit run app_pretrain.py
This will launch a web application where you can input text and see the model's generated responses.
To interact with the model by downloading from huggingface:
from transformer_blocks.gpt2 import GPT2
from gpt_Pretraining.text_generation import Text_Generation
import torch
model = GPT2.from_pretrained("NamrataThakur/Small_Language_Model_MHA_53M_Pretrained")
model.eval()
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
#---------------------------- Checking the generation to make everything is okay ---------------------------
generation = Text_Generation(model=model, device=device, tokenizer_model='gpt2',
arch_type='original')
start_context = "One day, a "
response = generation.text_generation(input_text=start_context, max_new_tokens = 160, temp = 0.5, top_k=10, kv_cache=False)
print(response)
Stories-SLM uses a standard GPT decoder-only transformer architecture with:
Optimization Config:
The model was trained on the TinyStories dataset, a collection of short stories designed for training language models. This dataset provides simple narratives that help the model learn coherent story generation while maintaining a smaller size compared to larger language models.
Stories-SLM was trained using PyTorch on the TinyStories dataset. The training process involved:
Training Plots


During inference, Stories-SLM uses several techniques to produce high-quality text:


Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).
This project is licensed under the MIT License - see the LICENSE file for details.
If you find Stories-SLM useful, please consider starring the repository ⭐