CoolFace
Modelpublic

nishantup/nanogpt-slm-tinystories-instruct

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes53downloads
Model Card

nanoGPT SLM TinyStories Instruct -- 124.0M Parameters

An instruction-tuned Small Language Model trained entirely from scratch:

  1. 1.Pretrained on TinyStories (2.1M children's stories, 70K iterations)
  2. 2.Instruction fine-tuned (SFT) on a 300K multi-source instruction dataset

What This Model Does

This model follows instructions across diverse tasks: answering questions, summarizing text, creative writing, classification, translation, and more. Give it a task and it responds:

Task: Explain what photosynthesis is in simple terms.

Answer:
Photosynthesis is the process by which plants convert sunlight, water, and
carbon dioxide into glucose and oxygen. It occurs in the chloroplasts of
plant cells and is essential for life on Earth...

Capabilities:

  • Answers factual questions
  • Summarizes text
  • Writes creative content (poems, stories, descriptions)
  • Classifies text (sentiment, category)
  • Generates lists and structured content
  • Explains concepts in simple terms

Limitations:

  • 512-token context window limits response length
  • Trained on children's stories base -- may default to simple language
  • Not as capable as larger instruction-tuned models
  • English only

Training Pipeline

StageDatasetSizeDetails
PretrainingTinyStories2.1M stories70K iters, batch 32x512, lr=6e-4, cosine to 1e-5
Instruction SFT300K Instructions300K examples3 epochs, batch 32, lr=1e-4, AdamW

Instruction Dataset Sources

SourceCountType
Alpaca52KStanford instruction-following
Dolly15KDatabricks human-authored
UltraChat80KMulti-turn conversations
OpenAssistant33KHuman-generated QA
FLAN120KGoogle's diverse NLP tasks

Quick Start

Option 1: Run directly

bash
pip install torch tiktoken huggingface_hub
python nanogpt_slm_tinystories_instruct_inference.py

Option 2: Import and use ask() in your own code

python
from nanogpt_slm_tinystories_instruct_inference import ask

# Simple question
print(ask("What is the capital of France?"))

# With input context
print(ask(
    instruction="Summarize the following text.",
    input_text="Machine learning enables systems to learn from data..."
))

# Control generation
print(ask("Write a poem about the ocean.", temperature=1.0, top_k=100))

Option 3: Load weights manually

python
from huggingface_hub import hf_hub_download
import torch

model_path = hf_hub_download(
    repo_id="nishantup/nanogpt-slm-tinystories-instruct",
    filename="nanogpt_slm_tinystories_instruct.pth"
)

from nanogpt_slm_tinystories_instruct_inference import GPT, GPTConfig
config = GPTConfig()
model = GPT(config)
model.load_state_dict(torch.load(model_path, map_location="cpu"))
model.eval()

Prompt Format

The model uses the unified Task/Question/Answer format:

Task: {instruction}

Question:
{input}          <- only if input is non-empty

Answer:
{response}

Model Architecture

AttributeValue
ArchitecturenanoGPT (GPT-2 small: 12 layers, 12 heads, 768 dim)
Parameters124.0M (unique, with weight tying)
Context length512 tokens
Tokenizertiktoken GPT-2 BPE (50,257 tokens)
EOS token`<\endoftext\>` (50256) -- clean response stopping

ask() API Reference

python
ask(instruction, input_text="", max_tokens=256, temperature=0.7, top_k=40)
ParameterDefaultDescription
instruction(required)The task instruction
input_text""Optional additional context
max_tokens256Maximum tokens to generate
temperature0.70.0 = greedy, 0.7 = balanced, 1.5 = creative
top_k40Top-k filtering (None = no filtering)

Files

FileDescription
nanogpt_slm_tinystories_instruct.pthInstruction fine-tuned weights
nanogpt_slm_tinystories_instruct_inference.pyStandalone inference script
config.jsonModel + training configuration

Related Models (Vizuara SLM Family)

VariantTypeRepo
Pretrained (TinyStories)Basenishantup/nanogpt-pretrained-slm-tinystories-124m
This modelInstruction SFTnishantup/nanogpt-slm-tinystories-instruct
Spam classifierClassificationnishantup/nanogpt-slm-tinystories-classifier

Citation

Eldan, R., & Li, Y. (2023). TinyStories: How Small Can Language Models Be
and Still Speak Coherent English? arXiv preprint arXiv:2305.07759.

Author

Dr. Nishant Upadhyay