← Open Source
angelos-p

llm-from-scratch

angelos-p/llm-from-scratch on GitHub: Tutorials, LLM fundamentals, Data processing, Education, Model architecture, Tokenizer.

TutorialsLLM fundamentals
Open on GitHub
Momentum
+0stars in 24 hours0.0%
3.43k
Stars
377
Forks
+5
This week
1
Contributors
Created 2026-04-04 · Updated 2026-10-15 · #7956 today
Top developers
angelos-p

angelos-p/llm-from-scratch is ranked 7,956 with 3,427 stars.

Same-category comparison

angelos-p/llm-from-scratch is ranked 7,956 among these 8 peers; girls-in-ai/Girls-In-AI is ranked 7,959.

Same-category comparison
NameRankMetrics
coleam00/ai-agents-masterclass7,926
Language:
Python
Stars:
3,474
Forks:
1,330
Description:
Follow along with my AI Agents Masterclass videos. All of the code I create and use in this series on YouTube will be here for you to use and even build on top of.
rbhatia46/Data-Science-Interview-Resources7,929
Stars:
3,469
Forks:
766
Description:
A repository listing out the potential sources which will help you in preparing for a Data Science/Machine Learning interview. New resources added frequently.
dair-ai/ML-Notebooks7,950
Language:
Jupyter Notebook
Stars:
3,441
Forks:
537
Description:
:fire: Machine Learning Notebooks.
data-science-on-aws/data-science-on-aws7,951
Language:
Jupyter Notebook
Stars:
3,440
Forks:
1,077
Description:
AI and Machine Learning with Kubeflow, Amazon EKS, and SageMaker.
girls-in-ai/Girls-In-AI7,959
Language:
Jupyter Notebook
Stars:
3,415
Forks:
495
priya-dwivedi/Deep-Learning7,983
Language:
Jupyter Notebook
Stars:
3,353
Forks:
2,428
NVIDIA-AI-IOT/jetbot7,990
Language:
Jupyter Notebook
Stars:
3,341
Forks:
1,073
Description:
An educational AI robot based on NVIDIA Jetson Nano.
tirthajyoti/Machine-Learning-with-Python7,991
Language:
Jupyter Notebook
Stars:
3,338
Forks:
1,828
Description:
Practice and tutorial-style notebooks covering wide variety of machine learning techniques.
Key parameters and specifications
Key parameters and specifications
ParameterValue
CategoryTutorials
SubcategoryLLM fundamentals
KeywordsData processing, Education, Model architecture, Tokenizer
Stars3,427
Forks377
Contributors1
Created date2026-04-04
Updated date2026-10-15
Stars in 1 day0
Stars in 7 days5
Rank7,956
Previous rank8,058
Rank change102
7-day stars rank5,426
Previous 7-day stars rank5,980
7-day stars rank change554
Total stars rank3,999
Previous total stars rank3,993
Total stars rank change-6
README summary

Train Your Own LLM From Scratch A hands-on workshop where you write every piece of a GPT training pipeline yourself, understanding what each component does and why. Andrej Karpathy's nanoGPT was my first real exposure to LLMs and transformers. Seeing how a working language model could be built in a few hundred lines of PyTorch completely changed how I thought about AI and inspired me to go deeper into the space. This workshop is my attempt to give others

that same experience. nanoGPT targets reproducing GPT-2 (124M params) and covers a lot of ground. What You'll Build A working GPT model trained from scratch on your MacBook, capable of generating Shakespeare-like text. 12+ Comfort reading Python code (you don't need ML experience) Training uses Apple Silicon GPU (MPS), NVIDIA GPU (CUDA), or CPU automatically. Getting Started Local (recommended) Install uv if you don't have it: Then set up the project: Google Colab If you don't have a

local setup, upload the repo to Colab and install dependencies: Upload to your Colab files, then write your code in notebook cells or upload files and run them with . Each part walks you through writing a piece of the pipeline, explaining what each component does and why. By the end, you'll have a working , , and that you wrote yourself. 5M | 2 | 2 | 128 | ~5 min | | Small | ~4M | 4 | 4 | 256 | ~20 min | | **Medium (default)** | **~10M** | **6** | **6** | **384** | **~45 min

** | All configs use character-level tokenization (vocab_size=65) and block_size=256. Tokenization: Characters vs BPE This workshop uses **character-level** tokenization on Shakespeare.

Frequently asked questions

How many stars and forks are recorded?

angelos-p/llm-from-scratch has 3,427 stars and 377 forks.

What is the repository rank?

angelos-p/llm-from-scratch is ranked 7,956.

Which repository is closest in rank?

angelos-p/llm-from-scratch is compared with girls-in-ai/Girls-In-AI, ranked 7,959 with 3,415 stars.

README

Train Your Own LLM From Scratch

A hands-on workshop where you write every piece of a GPT training pipeline yourself, understanding what each component does and why.

Andrej Karpathy's nanoGPT was my first real exposure to LLMs and transformers. Seeing how a working language model could be built in a few hundred lines of PyTorch completely changed how I thought about AI and inspired me to go deeper into the space.

This workshop is my attempt to give others that same experience. nanoGPT targets reproducing GPT-2 (124M params) and covers a lot of ground. This project strips it down to the essentials and scales it to a ~10M param model that trains on a laptop in under an hour — designed to be completed in a single workshop session.

What You'll Build

A working GPT model trained from scratch on your MacBook, capable of generating Shakespeare-like text. You'll write:

  • Tokenizer — turning text into numbers the model can process
  • Model architecture — the transformer: embeddings, attention, feed-forward layers
  • Training loop — forward pass, loss, backprop, optimizer, learning rate scheduling
  • Text generation — sampling from your trained model

Prerequisites

  • Any laptop or desktop (Mac, Linux, or Windows)
  • Python 3.12+
  • Comfort reading Python code (you don't need ML experience)

Training uses Apple Silicon GPU (MPS), NVIDIA GPU (CUDA), or CPU automatically. Also works on Google Colab — upload the files and run with !python train.py.

Getting Started

Local (recommended)

Install uv if you don't have it:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Then set up the project:

uv sync
mkdir scratchpad && cd scratchpad

Google Colab

If you don't have a local setup, upload the repo to Colab and install dependencies:

!pip install torch numpy tqdm tiktoken

Upload data/shakespeare.txt to your Colab files, then write your code in notebook cells or upload .py files and run them with !python train.py.


Work through the docs in order. Each part walks you through writing a piece of the pipeline, explaining what each component does and why. By the end, you'll have a working model.py, train.py, and generate.py that you wrote yourself.

Part What You'll Write Concepts
Part 1: Tokenization Character-level tokenizer Character encoding, vocabulary size, why BPE fails on small data
Part 2: The Transformer Full GPT model architecture Embeddings, self-attention, layer norm, MLP blocks
Part 3: The Training Loop Complete training pipeline Loss functions, AdamW, gradient clipping, LR scheduling
Part 4: Text Generation Inference and sampling Temperature, top-k, autoregressive decoding
Part 5: Putting It All Together Train on real data, experiment Loss curves, scaling experiments, next steps
Part 6: Competition Train the best AI poet Find datasets, scale up, submit your best poem

Architecture: GPT at a Glance

Input Text
    │
    ▼
┌─────────────────┐
│   Tokenizer     │  "hello" → [20, 43, 50, 50, 53]  (character-level)
└────────┬────────┘
         ▼
┌─────────────────┐
│  Token Embed +  │  token IDs → vectors (n_embd dimensions)
│  Position Embed │  + positional information
└────────┬────────┘
         ▼
┌─────────────────┐
│  Transformer    │  × n_layer
│  Block:         │
│  ┌────────────┐ │
│  │ LayerNorm  │ │
│  │ Self-Attn  │ │  n_head parallel attention heads
│  │ + Residual │ │
│  ├────────────┤ │
│  │ LayerNorm  │ │
│  │ MLP (FFN)  │ │  expand 4x, GELU, project back
│  │ + Residual │ │
│  └────────────┘ │
└────────┬────────┘
         ▼
┌─────────────────┐
│   LayerNorm     │
│   Linear → logits│  vocab_size outputs (probability over next token)
└─────────────────┘

Model Configs for This Workshop

Config Params n_layer n_head n_embd Train Time (M3 Pro)
Tiny ~0.5M 2 2 128 ~5 min
Small ~4M 4 4 256 ~20 min
Medium (default) ~10M 6 6 384 ~45 min

All configs use character-level tokenization (vocab_size=65) and block_size=256.

Tokenization: Characters vs BPE

This workshop uses character-level tokenization on Shakespeare. BPE tokenization (GPT-2's 50k vocab) doesn't work on small datasets — most token bigrams are too rare for the model to learn patterns from.

Tokenizer Vocab Size Dataset Size Needed
Character-level ~65 Small (Shakespeare, ~1MB)
BPE (tiktoken) 50,257 Large (TinyStories+, 100MB+)

Part 5 covers switching to BPE for larger datasets.

Key References

Nearby in the ranking
Similar items