Commit Graph
893 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 4f9c352e9d Complete transformer module fixes and milestone 05
Module 13 (Transformers) fixes:
- Remove all try/except fallback implementations (clean imports only)
- Fix MultiHeadAttention signature (2 args: x, mask)
- Add GELU() class instance to MLP (not standalone function)
- Clean imports: Tensor, Linear, MultiHeadAttention, Embedding, PositionalEncoding, GELU

Milestone 05 status:
 Architecture test passes
 Model builds successfully (67M parameters)
 Forward pass works
 Shakespeare dataset loads and tokenizes
 DataLoader creates batches properly

Ready for training and text generation
cd /Users/VJ/GitHub/TinyTorch && PYTHONPATH=/Users/VJ/GitHub/TinyTorch: python3 milestones/05_2017_transformer/vaswani_shakespeare.py --test-only --quick-test 2>&1 | tail -15
2025-10-27 16:46:06 -04:00
Vijay Janapa Reddi 757e3bf7e1 🤖 Fix transformer module exports and milestone 05 imports
Module export fixes:
- Add #|default_exp models.transformer directive to transformers module
- Add imports (MultiHeadAttention, GELU, etc.) to export block
- Export dataloader module (08_dataloader)
- All modules now properly exported to tinytorch package

Milestone 05 fixes:
- Correct import paths (text.embeddings, data.loader, models.transformer)
- Fix Linear.weight vs Linear.weights typo
- Fix indentation in training loop
- Call .forward() explicitly on transformer components

Status: Architecture test mode works, model builds successfully
TODO: Fix TransformerBlock/MultiHeadAttention signature mismatch in module 13
2025-10-27 16:17:55 -04:00
Vijay Janapa Reddi 170dde319a Add Shakespeare dataset to DatasetManager
- Add get_shakespeare() method to download tiny-shakespeare.txt
- Downloads from Karpathy's char-rnn repository (1MB corpus)
- Returns raw text for character-level language modeling
- Follows same pattern as MNIST/CIFAR-10 downloads
- Includes test in main() function
2025-10-27 13:03:36 -04:00
Vijay Janapa Reddi 42aa521562 🔄 Rename milestone 06: mlperf → scaling (2020 GPT-3 era)
- 06_2020_scaling represents the scale crisis that made systems optimization essential
- Covers modules 14-19 (KV-cache through benchmarking)
- Complete decade progression: 1957 → 1969 → 1986 → 1998 → 2017 → 2020
2025-10-27 13:00:30 -04:00
Vijay Janapa Reddi 107c8ecf2a 🏗️ Restructure milestones with decade-based naming
- Rename to clean, focused convention: 01_1957_perceptron, 02_1969_xor, etc.
- Drop dramatic language (crisis, revival, revolution, era)
- 06_2018_mlperf → 06_2020_scaling (matches GPT-3 scale era)
- Tells clear story: 1950s → 2020s ML evolution
- Each milestone represents major architectural/systems shift
- Remove redundant step1/2/3 files from transformer milestone
2025-10-27 13:00:06 -04:00
Vijay Janapa Reddi f853f9b929 Clean root directory: remove debug scripts, status files, and redundant docs 2025-10-26 19:03:15 -04:00
Vijay Janapa Reddi 234698d4a5 🧹 Remove book/_build/ artifacts from git tracking
- Added book/_build/ to .gitignore
- Removed 540 auto-generated Jupyter Book build files from tracking
- Files remain locally for viewing but won't be committed anymore
- Reduces repo size and prevents merge conflicts on generated files
2025-10-25 17:37:43 -04:00
Vijay Janapa Reddi b78c8288cc 🧹 Remove git-rewrite temporary files 2025-10-25 17:36:10 -04:00
Vijay Janapa Reddi 79b5d6337e Merge remote dev branch with local website updates 2025-10-25 17:35:34 -04:00
Vijay Janapa Reddi e56184eb24 🧹 Clean up book files
- Remove command-reference.md (consolidated into tito-essentials)
- Update resources.md and testing-framework.md
2025-10-25 17:31:08 -04:00
Vijay Janapa Reddi 7f331b6c83 🧹 Clean up git-rewrite temporary files 2025-10-25 17:27:20 -04:00
Vijay Janapa Reddi 46509bb0ea 📚 Update website navigation and content
- Add Module 20 (AI Olympics) to Competition section
- Remove Historical Milestones from navigation (simplify)
- Remove separate Leaderboard page (consolidate into capstone)
- Simplify AI Olympics capstone content (~60 lines)
  - Clear 'Coming Soon' box for competition platform
  - Brief category descriptions
  - Focus on what students can do now
- Simplify Community page (~50 lines)
  - Clear 'Coming Soon' box for dashboard features
  - Brief feature descriptions
  - Ways to participate now
- Split Competition and Community into separate nav sections
- Fix jupyter-book dependency compatibility for Python 3.8
  - myst-parser 0.18.1 (compatible with myst-nb 0.17.2)
  - sphinx 5.3.0
- Update requirements.txt with compatible versions

Result: Clean, honest, scannable website that shows all 20 modules
2025-10-25 17:26:54 -04:00
Vijay Janapa Reddi 457b42eabc Add activity badges to README
- Add last commit badge to show project is actively maintained
- Add commit activity badge to show consistent development
- Add GitHub stars badge for social proof
- Add contributors badge to highlight collaboration
2025-10-25 17:07:43 -04:00
Vijay Janapa Reddi a52474321c Add activity badges to README
- Add last commit badge to show project is actively maintained
- Add commit activity badge to show consistent development
- Add GitHub stars badge for social proof
- Add contributors badge to highlight collaboration
2025-10-25 17:07:43 -04:00
Vijay Janapa Reddi 88db238645 Fix modules 10-13 tests and add CLAUDE.md
- Add CLAUDE.md entry point for Claude AI system
- Fix tito test command to set PYTHONPATH for module imports
- Fix embeddings export directive placement for nbdev
- Fix attention module to export imports properly
- Fix transformers embedding index casting to int
2025-10-25 17:04:00 -04:00
Vijay Janapa Reddi f15a4fabd8 Fix modules 10-13 tests and add CLAUDE.md
- Add CLAUDE.md entry point for Claude AI system
- Fix tito test command to set PYTHONPATH for module imports
- Fix embeddings export directive placement for nbdev
- Fix attention module to export imports properly
- Fix transformers embedding index casting to int
2025-10-25 17:04:00 -04:00
Vijay Janapa Reddi 3527432e26 refactor: Update transformers module and milestone compatibility
- Update transformers module to match tokenization style with improved ASCII diagrams
- Fix attention module to use proper multi-head interface
- Update transformer era milestone for refined module integration
- Fix import paths and ensure forward() method consistency
- All transformer components now work seamlessly together
2025-10-25 16:42:02 -04:00
Vijay Janapa Reddi 964f425eb4 refactor: Update transformers module and milestone compatibility
- Update transformers module to match tokenization style with improved ASCII diagrams
- Fix attention module to use proper multi-head interface
- Update transformer era milestone for refined module integration
- Fix import paths and ensure forward() method consistency
- All transformer components now work seamlessly together
2025-10-25 16:42:02 -04:00
Vijay Janapa Reddi 1c158e554f refactor: Update attention module to match tokenization style
- Clean import structure following TinyTorch dependency chain
- Add proper export declarations for key functions and classes
- Standardize NBGrader cell structure and testing patterns
- Enhance ASCII diagrams with improved formatting
- Align documentation style with tokenization module standards
- Maintain all core functionality and educational value(https://claude.ai/code)
2025-10-25 15:26:33 -04:00
Vijay Janapa Reddi 7c8b94b59a refactor: Update attention module to match tokenization style
- Clean import structure following TinyTorch dependency chain
- Add proper export declarations for key functions and classes
- Standardize NBGrader cell structure and testing patterns
- Enhance ASCII diagrams with improved formatting
- Align documentation style with tokenization module standards
- Maintain all core functionality and educational value
2025-10-25 15:26:33 -04:00
Vijay Janapa Reddi d4b1d7c279 Merge remote-tracking branch 'origin/dev' into dev 2025-10-25 15:01:45 -04:00
Vijay Janapa Reddi 548e66f0db refactor: Update embeddings module to match tokenization style
- Standardize import structure following TinyTorch dependency chain
- Enhance section organization with 6 clear educational sections
- Add comprehensive ASCII diagrams matching tokenization patterns
- Improve code organization and function naming consistency
- Strengthen systems analysis and performance documentation
- Align package integration documentation with module standards(https://claude.ai/code)
2025-10-25 14:58:30 -04:00
Vijay Janapa ReddiandGitHub 9d3fb50d6f Update work in progress status in README 2025-10-25 14:00:22 -04:00
Vijay Janapa Reddi 850fd1d973 Add .cursor/ and .claude/ to .gitignore and remove from tracking 2025-10-25 13:59:11 -04:00
Vijay Janapa Reddi bde003d908 fix: Adjust ASCII diagram spacing for consistent alignment 2025-10-24 17:51:11 -04:00
Vijay Janapa Reddi c6853d7550 docs: Improve tokenization module with enhanced ASCII diagrams
Following module developer guidelines, added comprehensive visual diagrams:

1. Text-to-Numbers Pipeline (Introduction):
   - Added full boxed diagram showing 4-step tokenization process
   - Clear visual flow from human text to numerical IDs
   - Each step explained inline with the diagram

2. Character Tokenization Process:
   - Step-by-step vocabulary building visualization
   - Shows corpus → unique chars → vocab with IDs
   - Encoding process with ID lookup visualization
   - Decoding process with reverse lookup
   - All in clear nested boxes

3. BPE Training Algorithm:
   - Comprehensive 4-step process with nested boxes
   - Pair frequency analysis with bar charts (████)
   - Before/After merge visualizations
   - Iteration examples showing vocabulary growth
   - Final results with key insights

4. Memory Layout for Embedding Tables:
   - Visual bars showing relative memory sizes
   - Character (204KB) vs BPE-50K (102MB) vs Word-100K (204MB)
   - Shows fp32/fp16/int8 precision trade-offs
   - Real production model examples (GPT-2/3, BERT, T5, LLaMA)
   - Clear table format for comparison

Educational improvements:
- More visual, less text-heavy
- Clearer step-by-step flows
- Better intuition building
- Production context throughout
- Following module developer ASCII diagram patterns

Students now see:
- HOW tokenization works (not just WHAT)
- WHY different strategies exist
- WHAT the memory implications are
- HOW production models make these choices
2025-10-24 17:51:11 -04:00
Vijay Janapa Reddi 0e997e4a10 refactor: Standardize imports across modules 10-17 to match 01-09
Enforce consistent import pattern across all modules:
- Direct imports from tinytorch.core.* (no fallbacks)
- Remove all sys.path.append manipulations
- Remove try/except import fallbacks
- Remove mock/dummy class fallbacks

Fixed modules:
- Module 10 (tokenization): Removed try/except fallback
- Module 12 (attention): Removed sys.path.append for tensor/layers
- Module 15 (profiling): Removed sys.path + mock Tensor/Linear/Conv2d
- Module 16 (acceleration): Removed hardcoded path + importlib + mock Tensor
- Module 17 (quantization): Removed sys.path + disabled fallback block

All modules now follow the same pattern as modules 01-09:
  from tinytorch.core.tensor import Tensor
  from tinytorch.core.layers import Linear
  # etc.

No development fallbacks - assume tinytorch package is installed.
2025-10-24 17:51:10 -04:00
Vijay Janapa ReddiandGitHub 191f6db7c7 Merge pull request #7 from Zappandy/feature/dynamic-venv-config
Feature/dynamic venv config
2025-10-22 09:07:00 -04:00
Vijay Janapa Reddi e6c92e85a0 Add construction-themed work-in-progress banner to website
- Bright yellow/orange gradient banner with construction icons (🚧 ⚠️ 🔨)
- Interactive controls for collapsing and dismissing the banner
- Responsive design that adapts to different screen sizes
- Clear messaging about active development and community feedback
- Proper spacing and professional appearance
- JavaScript functionality for persistent user preferences(https://claude.ai/code)
2025-10-19 16:19:10 -04:00
Vijay Janapa Reddi 65dbcf1f44 fix: Add sphinxcontrib-mermaid to book requirements
- Book _config.yml uses mermaid extension
- Extension was missing from requirements.txt
- Fixes Jupyter Book build error
2025-10-19 13:20:30 -04:00
Vijay Janapa Reddi c9bde1d2a5 fix: Use python -m tito.main instead of tito command
- tito entry point not configured in pyproject.toml
- Use module invocation for deploy-book workflow
2025-10-19 13:17:00 -04:00
Vijay Janapa Reddi e161b018c1 ci: Disable test-notebooks workflow
- This workflow was testing notebook conversion features
- Not required for website deployment
- Website deploys via deploy-book.yml on main branch
- Can re-enable later if needed for CI testing
2025-10-19 13:00:16 -04:00
Vijay Janapa Reddi da10115f91 fix: Look for module dev files in modules/source subdirectory
- NotebooksCommand now checks modules/source/ for dev files
- Fixes 'No *_dev.py files found' error in CI
- Maintains backwards compatibility with flat structure
2025-10-19 12:59:20 -04:00
Vijay Janapa Reddi 4ac2b736c5 fix: Register notebooks command in CLI
- Add NotebooksCommand to commands dictionary in main.py
- Command was imported but not registered
- Fixes 'invalid choice: notebooks' error in workflow
2025-10-19 12:55:15 -04:00
Vijay Janapa Reddi ef820791b9 fix: Correct tito command syntax in workflow
- Change 'tito module notebooks' to 'tito notebooks'
- The notebooks command is a top-level command, not a module subcommand
- Fixes workflow test failures
2025-10-19 12:53:02 -04:00
Vijay Janapa Reddi d33c59fd91 fix: Remove mutually exclusive group from export command
- Positional arguments cannot be in mutually exclusive groups in argparse
- Keep modules as positional argument, --all as optional flag
- Fixes CLI initialization error in GitHub Actions
2025-10-19 12:50:59 -04:00
Vijay Janapa Reddi 9a4c329b61 fix: Update GitHub Actions to use v4 of upload-artifact and cache
- Upgrade actions/upload-artifact from v3 to v4
- Upgrade actions/cache from v3 to v4
- Resolves deprecation warnings causing workflow failures
2025-10-19 12:49:23 -04:00
Vijay Janapa Reddi c0f99164a5 Merge transformers-integration into dev
- Resolve conflicts in README.md and milestones-overview.md
- Add transformer modules and milestones
- Fix GitHub Actions workflow issues
2025-10-19 12:48:18 -04:00
Vijay Janapa Reddi 0755b9e113 docs: update README and website with milestones structure
- Updated main README to prominently feature historical milestones (1957-2024)
- Added new 'Journey Through ML History' section to book navigation
- Created comprehensive milestones-overview.md chapter explaining the progression
- Updated intro.md with milestone achievements section
- Enhanced quickstart-guide.md with milestone unlock information
- Reflects working milestones/ directory structure with 6 historical demonstrations
- Clear progression: Perceptron (1957) → XOR (1969) → MLP (1986) → CNN (1998) → Transformers (2017) → Systems (2024)
- Emphasizes proof-of-mastery approach with real achievements
2025-10-19 12:47:17 -04:00
Vijay Janapa Reddi 0e84216700 feat: Complete transformer integration with milestones
- Add tokenization module (tinytorch/text/tokenization.py)
- Update Milestone 05 transformer demos (validation, TinyCoder, Shakespeare)
- Update book chapters with milestones overview
- Update README and integration plan
- Sync module notebooks and metadata
2025-10-19 12:46:58 -04:00
Vijay Janapa Reddi 8160776485 fix: Resolve GitHub Actions workflow failures
- Fix YAML syntax error in test-notebooks.yml (multi-line Python code)
- Add missing setup-dev.sh script referenced by workflow
- Both workflow files now pass YAML validation
2025-10-19 12:46:34 -04:00
Vijay Janapa ReddiandGitHub f08865f255 Update README.md 2025-10-12 22:21:24 -04:00
Zappandy bf94650cf4 fixed default venv value in config for validation 2025-10-11 13:12:40 +02:00
Zappandy fbea50d9da Feat(env) dynamic virtual env support for advanced users 2025-10-11 12:31:11 +02:00
Vijay Janapa Reddi bc4f6f4c78 Add Milestone 05: TinyGPT transformer demos (validation, TinyCoder, Shakespeare) 2025-09-30 18:42:37 -04:00
Vijay Janapa Reddi 174e3dea62 docs: update README and website with milestones structure
- Updated main README to prominently feature historical milestones (1957-2024)
- Added new 'Journey Through ML History' section to book navigation
- Created comprehensive milestones-overview.md chapter explaining the progression
- Updated intro.md with milestone achievements section
- Enhanced quickstart-guide.md with milestone unlock information
- Reflects working milestones/ directory structure with 6 historical demonstrations
- Clear progression: Perceptron (1957) → XOR (1969) → MLP (1986) → CNN (1998) → Transformers (2017) → Systems (2024)
- Emphasizes proof-of-mastery approach with real achievements
2025-09-30 17:42:12 -04:00
Vijay Janapa Reddi 94227ccf16 feat: Add overfitting detection to Milestones 03 and 04
Track train vs test accuracy to detect overfitting:

Training Progress:
- Print both train and test accuracy every 5 epochs
- Show gap between train/test with indicator:
  ✓ Gap < 10%: Healthy generalization
  ⚠️ Gap > 10%: Overfitting warning

Results Table (ACT 4):
- Train Accuracy + improvement
- Test Accuracy + improvement
- Overfitting Gap + status
- Training Time

Final Panel (ACT 5):
- Show test accuracy with gap
- Celebrate good generalization

Educational Value:
Students now see:
1. How to detect overfitting (growing train/test gap)
2. When model memorizes vs generalizes
3. Real ML systems track BOTH metrics

Example output:
  Epoch  5/20  Loss: 1.234  Train: 85.0%  Test: 82.0%  ✓ Gap: 3.0%
  Epoch 10/20  Loss: 0.891  Train: 90.0%  Test: 87.0%  ✓ Gap: 3.0%

This prepares them for regularization techniques (Dropout, etc.)
in later modules!
2025-09-30 17:33:54 -04:00
Vijay Janapa Reddi a8f672028d style: Make Milestone 04 architecture consistent with others
Changed from Panel to plain console.print with ASCII diagram.

All 4 milestones now follow identical format:
- console.print('[bold]🏗️ The Architecture:[/bold]')
- ASCII box diagram with arrows
- console.print('[bold]🔧 Components:[/bold]')
- Bullet list of components

This ensures visual consistency across all milestone demonstrations!
2025-09-30 17:17:46 -04:00
Vijay Janapa Reddi 9a8d5de49e refactor: Keep explicit module imports + optimize CNN milestone
Import Strategy:
- Keep explicit 'from tinytorch.core.spatial import Conv2d'
- Maps directly to module structure (Module 09 → core.spatial)
- Better for education: students see exactly where each concept lives
- Removed redundant tinytorch/nn.py (nn/ directory already exists)

Milestone 04 Optimizations:
- Reduced epochs: 50 → 20 (explicit loops are slow!)
- Print progress every 5 epochs (instead of 10)
- Load from local npz file (no sklearn dependency)
- Still achieves ~80%+ accuracy

Educational Rationale:
TinyTorch uses explicit imports to show module structure:
  tinytorch.core.tensor      # Module 01
  tinytorch.core.layers      # Module 03
  tinytorch.core.spatial     # Module 09
  tinytorch.core.losses      # Module 04

PyTorch's torch.nn is convenient but pedagogically unclear.
Our approach: clarity over convenience!
2025-09-30 17:15:40 -04:00
Vijay Janapa Reddi 688e5826ec feat: Add Milestone 04 (CNN Revolution 1998) + Clean spatial imports
Milestone 04 - CNN Revolution:
 Complete 5-Act narrative structure (Challenge → Reflection)
 SimpleCNN architecture: Conv2d → ReLU → MaxPool → Linear
 Trains on 8x8 digits dataset (1,437 train, 360 test)
 Achieves 84.2% accuracy with only 810 parameters
 Demonstrates spatial operations preserve structure
 Beautiful visual output with progress tracking

Key Features:
- Conv2d (1→8 channels, 3×3 kernel) detects local patterns
- MaxPool2d (2×2) provides translation invariance
- 100× fewer parameters than equivalent MLP
- Training completes in ~105 seconds (50 epochs)
- Sample predictions table shows 9/10 correct

Module 09 Spatial Improvements:
- Removed ugly try/except import pattern
- Clean imports: 'from tinytorch.core.tensor import Tensor'
- Matches PyTorch style (simple and professional)
- No fallback logic needed

All 4 milestones now follow consistent 5-Act structure!
2025-09-30 17:04:41 -04:00