Commit Graph

274 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
c024e190bf Streamline GitHub workflow to use tito commands
- Replace manual steps with tito book build
- Install tito CLI in workflow
- Add tito/** to trigger paths
- Simplify build process for consistency
2025-07-15 22:53:34 -04:00
Vijay Janapa Reddi
2766bcca7d Merge branch 'feature/interactive-access' into dev 2025-07-15 22:37:46 -04:00
Vijay Janapa Reddi
45cd8b8acf Finalize book intro and author attribution
- Updated title to match new tagline format
- Added humble educational foundation section referencing CS249r course
- Confirmed result-oriented 'What You'll Achieve' section works well
- All branding now consistent across book and documentation
- Clean author attribution without unnecessary copyright notices
2025-07-15 21:49:05 -04:00
Vijay Janapa Reddi
ff2d60f227 Update book footer and remove copyright
- Changed author from 'TinyTorch Team' to 'Vijay Janapa Reddi, Harvard University'
- Removed copyright notice (© Copyright 2025)
- Updated book title to match new tagline
- Footer now shows clean author attribution without copyright clutter
2025-07-15 21:23:42 -04:00
Vijay Janapa Reddi
25497661fc Update module numbering from 00-13 to 01-14 and refresh tagline
- Updated all module references to start from 01 instead of 00
- Changed tagline to 'Build your own ML framework. Start small. Go deep.'
- Added educational foundation section linking to ML Systems book
- Updated README, documentation, CLI examples, and prerequisites
- Regenerated book content with consistent numbering throughout
- Maintains 14 modules total but with natural numbering (01-14)
2025-07-15 21:11:07 -04:00
Vijay Janapa Reddi
3043b1afca Update README.md 2025-07-15 21:09:16 -04:00
Vijay Janapa Reddi
827aaabff6 🧪 Test publish command 2025-07-15 20:39:51 -04:00
Vijay Janapa Reddi
b34f3681dd Renumber modules from 00-13 to 01-14 for natural numbering
 Rename all module directories: 00_setup → 01_setup, etc.
 Update convert_modules.py mappings for new directory names
 Update _toc.yml file paths and titles (1-14 instead of 0-13)
 Regenerate all overview pages with new numbering
 Fix all broken references in usage-paths and intro
 Update chapter references to use natural numbering

Benefits:
- More intuitive course progression starting from 1
- Matches academic course numbering conventions
- Eliminates confusion about 'Module 0' concept
- Cleaner mental model for students and instructors
- All references and links properly updated

Complete transformation: 14 modules now numbered 01-14
2025-07-15 18:51:36 -04:00
Vijay Janapa Reddi
fee8b9696c Add consistent short title for Setup module
 Complete dual-title system: short TOC titles + full page headers
 All 14 modules now have consistent numbered menu titles
 Clean sidebar navigation with descriptive page content

Pattern:
- TOC: '0. Setup' → Page: 'Setup - TinyTorch System Configuration'
- TOC: '2. Activations' → Page: 'Activations - Nonlinearity in Neural Networks'
- Provides scannable menu + descriptive content headers
2025-07-15 18:48:17 -04:00
Vijay Janapa Reddi
4c7da9d589 Improve traditional vs TinyTorch comparison with concrete code examples
 Show actual implementation code instead of vague descriptions
 Contrast 'import torch' with 'class Tensor:' implementations
 Display real function definitions students will write
 Make clear students build every component from scratch

Changes:
- Replace vague 'Build your own tensors' with 'class Tensor:'
- Show actual method signatures: __add__, backward, forward
- Include concrete loss function: mse_loss implementation
- Display real optimizer logic: param.data -= lr * param.grad
- Change ending: 'I built this!' → 'I implemented every line!'
2025-07-15 18:24:28 -04:00
Vijay Janapa Reddi
e2475e498e Remove module numbers from headers for cleaner presentation
 Clean source file headers: 'Module X:' → clean descriptive titles
 Regenerate overview pages with clean headers
 More flexible content that works in any context
 Numbers still provided by book TOC structure

Changes:
- Remove 'Module X: ' prefix from all source file headers
- Headers now focus on descriptive content titles
- Book maintains proper chapter ordering via _toc.yml
- Content is more reusable across different presentations
2025-07-15 18:23:18 -04:00
Vijay Janapa Reddi
cb68c0e1bb Simplify book directory structure
 Remove unnecessary nesting: book/tinytorch-course/ → book/
 Update all path references in scripts and workflows
 Cleaner development experience with shorter paths
 Book builds successfully with simplified structure

Changes:
- Move all book files up one directory level
- Update convert_modules.py paths
- Update GitHub Actions workflow paths
- Update book configuration paths
- Test confirms everything works correctly
2025-07-15 18:21:59 -04:00
Vijay Janapa Reddi
edad089ad6 Implement interactive access with learning goals admonitions
 Add learning goals extraction with beautiful admonition blocks
 Create hybrid book approach (overview pages + interactive buttons)
 Generate both notebooks (Binder/Colab) and book pages
 Update GitHub Actions for main branch deployment
 All 14 modules now have consistent formatting

Features:
- Extract content from source files (no duplication)
- Interactive launch buttons (GitHub/Binder/Colab)
- Learning objectives as 🎯 tip admonitions
- Notebooks generated in-place for direct access
- Clean separation: dev → main → website deployment
2025-07-15 18:19:29 -04:00
Vijay Janapa Reddi
4c033af3ad Update README.md 2025-07-15 18:12:04 -04:00
Vijay Janapa Reddi
eda7a13c15 Update README.md 2025-07-15 18:02:26 -04:00
Vijay Janapa Reddi
5ec3355ad0 Update README.md 2025-07-15 15:23:02 -04:00
Vijay Janapa Reddi
fe8fb0a6bc Update README.md 2025-07-15 15:20:35 -04:00
Vijay Janapa Reddi
5c47e32fa8 Update README to reflect current TinyTorch state
- Fix repository URL and directory structure
- Add prominent Jupyter Book documentation link
- List all 14 complete modules with proper organization
- Update installation and workflow instructions
- Add dev/main branch git workflow documentation
- Include modern badges and three user onboarding paths
- Emphasize production ML and inline testing approach
- Reflect current tech stack and learning outcomes
2025-07-15 14:40:36 -04:00
Vijay Janapa Reddi
0896a9d373 Update README.md 2025-07-15 14:37:46 -04:00
Vijay Janapa Reddi
5ad2d0e64c fix: Update GitHub Actions workflow to trigger on dev branch
- Changed trigger from main to dev branch (repository default)
- Updated deploy condition to check for dev branch
- Ensures workflow runs on correct branch for this repository
2025-07-15 13:09:53 -04:00
Vijay Janapa Reddi
aec792b40a feat: Add .nojekyll for GitHub Pages compatibility 2025-07-15 12:51:48 -04:00
Vijay Janapa Reddi
639cfbc339 feat: Update GitHub Actions workflow for raw export builds
- Add module conversion step before book building
- Install jupytext dependency for conversion script
- Maintains existing GitHub Pages deployment pipeline
- Automatically converts modules/source/ to notebooks on deploy
2025-07-15 12:51:32 -04:00
Vijay Janapa Reddi
4e13369a4d feat: Add raw export Jupyter Book conversion system
- Created convert_modules.py for raw source-to-notebook conversion
- Configured Jupyter Book with execution disabled for performance
- Removed NBGrader solution stripping to preserve complete source code
- Cleaned up all built artifacts (_build/, chapters/*.ipynb) from version control
- Updated book configuration for pure source-based builds
- Single source of truth: all content generated from modules/source/ only
2025-07-15 12:50:17 -04:00
Vijay Janapa Reddi
cf2c5b449a Complete interactive Tiny🔥Torch course with all 14 modules
 Converted all TinyTorch modules to interactive student notebooks:
- Foundation: Setup, Tensors, Activations (3 modules)
- Building Blocks: Layers, Networks, CNNs (3 modules)
- Training Systems: DataLoader, Autograd, Optimizers, Training (4 modules)
- Production: Compression, Kernels, Benchmarking, MLOps (4 modules)

🚀 Complete student learning experience:
- Big picture landing page with clear usage paths
- 3 dedicated path guides (exploration, development, classroom)
- Tiny🔥Torch branding with logo integration
- Student notebooks with solutions stripped but educational content preserved
- Interactive Binder integration ready for deployment

📊 Course statistics:
- 14 progressive modules building from CLI to production MLOps
- ~800KB total content across all interactive notebooks
- Professional development workflow with automated testing
- Proven pedagogical outcomes with Build → Use → Understand pattern

Ready for GitHub Pages deployment and student use
2025-07-15 11:36:57 -04:00
Vijay Janapa Reddi
bbd1c988a0 Complete Jupyter Book automation pipeline
 Implemented automatic module-to-notebook conversion
- Created convert_modules.py script for NBGrader-style student assignments
- Strips solutions automatically using BEGIN/END SOLUTION markers
- Converts 4 core modules: setup, tensor, activations, layers
- Adds Binder integration and interactive learning frontmatter
- Updates table of contents to use .ipynb files
- Complete landing page with clear usage instructions

🚀 Result: Full interactive educational platform
- Students can explore via Binder immediately (no setup)
- Clear path from exploration → serious local development
- Automated content pipeline from dev files → student book
- Ready for GitHub Pages deployment
2025-07-15 10:35:13 -04:00
Vijay Janapa Reddi
431996ce18 🚀 Set up Jupyter Book infrastructure for TinyTorch course
- Created interactive Jupyter Book structure in book/tinytorch-course/
- Configured for GitHub Pages, Binder, and Colab integration
- Set up automated deployment with GitHub Actions
- Designed comprehensive course structure with 4 main parts:
  * Foundation (Setup, Tensors, Activations)
  * Building Blocks (Layers, Networks, CNNs)
  * Training Systems (DataLoader, Autograd, Optimizers, Training)
  * Production & Performance (Compression, Kernels, Benchmarking, MLOps)
- Added engaging introduction with interactive features
- Ready for module conversion from *_dev.py to executable notebooks

Next: Convert modules/source/*_dev.py files to interactive chapters
2025-07-15 10:14:40 -04:00
Vijay Janapa Reddi
4912f794d2 🛡️ Add protection for critical tests/ directory
- Add tests/README.md with clear warnings and recovery instructions
- Add tests/.gitkeep to ensure directory is always tracked
- Protect 15 integration test files (~100KB valuable code)
- Provide git recovery commands if accidentally deleted

Addresses risk mitigation while keeping standard Python conventions.
2025-07-15 10:03:05 -04:00
Vijay Janapa Reddi
ede52e612f 🧹 Clean up repository: remove generated reports, backup files, and outdated documentation
- Remove generated report files (*.html, *.json) that should be recreated
- Remove temporary Quarto cache files (.quarto/cites/)
- Remove backup files (settings.ini.backup) when originals exist
- Remove legacy configuration (.cursorrules moved to .cursor/rules/)
- Remove outdated documentation and status reports
- Remove unused Makefile (project uses pyproject.toml + nbdev)

All core project files preserved. This cleanup improves maintainability
by removing files that should be generated, not stored in version control.
2025-07-15 10:01:50 -04:00
Vijay Janapa Reddi
2a9e2a805d feat: Fix majority of integration tests - 125/150 passing
- Updated all integration tests to use tinytorch package imports only
- Fixed tensor-activations integration: 10/10 tests passing 
- Fixed compression integration: 8/8 tests passing 
- Fixed layers-networks integration: 12/12 tests passing 
- Fixed CNN networks integration: 12/12 tests passing 
- Fixed dataloader-tensor integration: 16/16 tests passing 
- Fixed training integration: 17/17 tests passing 
- Fixed tensor-autograd integration: 14/14 tests passing 
- Fixed tensor-CNN integration: 13/13 tests passing 
- Fixed CNN pipeline integration: 6/6 tests passing 
- Fixed ML pipeline integration: 13/13 tests passing 

Remaining: 25 failing tests in benchmarking, kernels, and MLOps modules
- API mismatches between test expectations and actual module interfaces
- Need to align test assertions with actual class attributes/methods

Total: 125/150 tests passing (83% success rate)
2025-07-14 23:45:43 -04:00
Vijay Janapa Reddi
05391eb550 feat: Restructure integration tests and optimize module timing
- Flattened tests/ directory structure (removed integration/ and system/ subdirectories)
- Renamed all integration tests with _integration.py suffix for clarity
- Created test_utils.py with setup_integration_test() function
- Updated integration tests to use ONLY tinytorch package imports
- Ensured all modules are exported before running tests via tito export --all
- Optimized module test timing for fast execution (under 5 seconds each)
- Fixed MLOps test reliability and reduced timing parameters across modules
- Exported all modules (compression, kernels, benchmarking, mlops) to tinytorch package
2025-07-14 23:37:50 -04:00
Vijay Janapa Reddi
604cb2ac36 Fix MLOps module summary to match concise TinyTorch style
- Shortened verbose 119-line summary to focused 32-line format
- Removed redundant sections and excessive congratulatory language
- Added standard Next Steps with actionable tito commands
- Now consistent with other module endings (tensor, layers, optimizers, etc.)
- Maintains essential accomplishments and real-world connections
2025-07-14 21:11:08 -04:00
Vijay Janapa Reddi
025869fb6d Verify tito CLI functionality - all commands working correctly
-  tito system info/doctor: Full system health check working
-  tito module status: Shows all 14 modules with proper status
-  tito export --all: Successfully exports all modules to tinytorch package
-  tito test --all: Runs all inline tests (65/66 tests passing)
-  tito nbgrader: All assignment management commands available
-  tito package nbdev: NBDev integration working
-  Global PATH: Added bin/ to PATH for global tito access

Only minor issue: 1 MLOps test failing due to script execution
All core functionality working perfectly for educational use
2025-07-14 19:45:36 -04:00
Vijay Janapa Reddi
5482bb2b38 Fix training integration tests - all 17 tests now passing
- Fixed SimpleDataset usage in classification, regression, and validation tests
- Replaced custom dataset classes with proper DataLoader usage
- Updated model architectures to match SimpleDataset defaults (4 features, 3 classes)
- All training integration tests now pass successfully
2025-07-14 19:39:18 -04:00
Vijay Janapa Reddi
546d7f0706 Fix pytest configuration timeout issue 2025-07-14 19:35:11 -04:00
Vijay Janapa Reddi
5b624f95d7 Add benchmarking test report generated by integration tests 2025-07-14 19:26:19 -04:00
Vijay Janapa Reddi
10729cdc9c Update test report with latest benchmarking results 2025-07-14 19:25:57 -04:00
Vijay Janapa Reddi
d25354782a Add comprehensive MLOps integration tests
- Complete integration tests for 13_mlops module
- Test MLOps pipeline with all TinyTorch components (00-12)
- Include ModelMonitor, DriftDetector, RetrainingTrigger, MLOpsPipeline
- Test integration with benchmarking framework
- Test with different network architectures and complexity
- Follow established integration test patterns
- Comprehensive summary test demonstrating complete system integration
2025-07-14 19:21:08 -04:00
Vijay Janapa Reddi
1c81bfbec1 Fix MLOps module ending and add benchmarking integration tests
- Update MLOps module ending to match standard TinyTorch module format
- Remove verbose ending text, use concise professional summary
- Add comprehensive benchmarking integration tests
- Test benchmarking framework with real TinyTorch components
- Include tests for kernels, networks, and statistical validation
- Follow established integration test patterns
2025-07-14 19:19:28 -04:00
Vijay Janapa Reddi
3531a44c5f Fix MLOps module ending to match consistent TinyTorch style
- Replace overly celebratory ending with standard progress indicator
- Use same format as other modules: 'Final Progress: [module] ready for [next step]!'
- Maintain professional, educational tone consistent with project
2025-07-14 19:14:09 -04:00
Vijay Janapa Reddi
1f58841e65 Clean up module configurations and add kernels integration tests
- Standardize module.yaml files (11-13) to match concise format of early modules
- Remove verbose sections, keep essential metadata only
- Update kernels README to match TinyTorch module style standards
- Add comprehensive integration tests for kernels module
- Test hardware-optimized operations with real TinyTorch components
- Prepare for systematic integration testing across all modules
2025-07-14 19:12:20 -04:00
Vijay Janapa Reddi
d60821892f Implement complete MLOps module (13_mlops) with production ML system lifecycle
- Complete MLOps pipeline with 4 core components:
  1. ModelMonitor: Tracks performance over time, detects degradation
  2. DriftDetector: Statistical tests for data distribution changes
  3. RetrainingTrigger: Automated retraining based on thresholds
  4. MLOpsPipeline: Orchestrates complete workflow integration

- Follows TinyTorch educational pattern exactly:
  - Concept explanations before implementation
  - Guided TODOs with step-by-step instructions
  - Immediate testing after each component
  - Progressive complexity building on previous modules
  - Comprehensive summary with career applications

- Integrates all previous TinyTorch components:
  - Uses training pipeline from Module 09
  - Uses benchmarking from Module 12
  - Uses compression from Module 10
  - Demonstrates complete ecosystem integration

- Production-ready MLOps concepts:
  - Performance monitoring and alerting
  - Drift detection with statistical validation
  - Automated retraining triggers
  - Model lifecycle management
  - Complete deployment workflows

- Educational value:
  - Real-world MLOps applications (Netflix, Uber, Google)
  - Industry connections (MLflow, Kubeflow, SageMaker)
  - Career preparation for ML Engineer roles
  - Complete capstone bringing together all 13 modules

- Technical implementation:
  - 1700+ lines of educational content and code
  - NBGrader integration for assessment
  - Comprehensive test suite with 100+ points
  - Auto-discovery testing framework
  - Professional documentation and examples

This completes the TinyTorch ecosystem with production-ready MLOps
2025-07-14 18:05:31 -04:00
Vijay Janapa Reddi
5bbb78f42a Add pending changes from module testing
- Update kernels_dev.py with any modifications made during testing
- Add test_report.md generated by benchmarking module
- Ensure all changes from comprehensive testing are committed
2025-07-14 17:23:16 -04:00
Vijay Janapa Reddi
84590532d5 Add comprehensive module test status report
- All 13 implemented modules (00-12) passing 100% of tests
- Total 63 tests passed across all modules
- Only 13_mlops module not implemented (empty directory)
- Comprehensive testing infrastructure working perfectly
- Educational inline tests providing excellent feedback
2025-07-14 17:08:39 -04:00
Vijay Janapa Reddi
833bf7eaa4 Fix Module 12 benchmarking to follow standardized patterns
- Simplify testing section to match kernels module convention
- Replace verbose summary with concise pattern matching other modules
- Fix type annotation for BenchmarkResult.metadata field
- Remove excessive detail from module summary (200+ lines → 30 lines)
- Maintain clean, professional educational structure
2025-07-14 16:45:03 -04:00
Vijay Janapa Reddi
b5678cb8c9 🔄 Remove Capstone-Specific Language from Benchmarking Module
 **Generalized Language:**
- Changed 'capstone project' → 'ML project' throughout
- Renamed generate_capstone_report() → generate_project_report()
- Updated README.md to remove capstone assumptions
- Made module universally applicable

 **Maintained Functionality:**
- All 5 test functions still passing (100% success rate)
- Complete benchmarking workflow unchanged
- Professional reporting still generates high-quality outputs
- Statistical validation working correctly

 **Improved Focus:**
- Module now teaches systematic ML evaluation skills
- Applicable to research projects, industry work, personal projects
- Removed assumption of specific capstone context
- Enhanced universal applicability

 **Test Results:**
- All benchmarking tests passing
- Performance reporter generating professional reports
- Statistical validation working with confidence intervals
- Framework ready for any ML project evaluation
2025-07-14 16:03:35 -04:00
Vijay Janapa Reddi
b6f4081338 🎯 Complete Module 12: Benchmarking - MLPerf-Inspired Performance Evaluation
 **Full Module Implementation:**
- module.yaml: Proper metadata and dependencies
- README.md: Comprehensive documentation with learning objectives
- benchmarking_dev.py: Complete implementation with educational pattern

 **MLPerf-Inspired Architecture:**
- BenchmarkScenarios: Single-stream, server, and offline scenarios
- StatisticalValidator: Proper statistical validation and significance testing
- TinyTorchPerf: Complete framework integrating all components
- PerformanceReporter: Professional report generation for capstone projects

 **Educational Excellence:**
- Same structure as layers_dev.py with Build → Use → Analyze framework
- Comprehensive TODO guidance with step-by-step implementation
- Unit tests for each component with immediate feedback
- Integration testing with realistic TinyTorch models
- Professional module summary with career connections

 **Test Results:**
- All 5 test functions passing (100% success rate)
- Complete benchmarking workflow validated
- Statistical validation working correctly
- Professional reporting generating capstone-ready outputs
- Framework ready for student use

 **Capstone Preparation:**
- Students can now systematically evaluate their final projects
- Professional reporting suitable for academic presentations
- Statistical validation ensures meaningful results
- Industry-standard methodology following MLPerf patterns

🎓 **Perfect Bridge to Module 13 (MLOps):**
- Benchmarking establishes performance baselines
- MLOps will monitor production systems against these baselines
- Statistical validation transfers to production monitoring
- Professional reporting becomes production dashboards
2025-07-14 16:00:18 -04:00
Vijay Janapa Reddi
2849677fd8 🔥 Simplify Kernels Module: Replace Complex Profiler with Simple Timing
 **Pedagogical Improvements:**
- Removed complex SimpleProfiler dependency
- Added simple time_kernel() function using time.perf_counter()
- Displays timing in microseconds (realistic for kernel operations)
- Focused learning on kernel optimization vs profiling complexity

 **Clean Learning Progression:**
- Module 11 (Kernels): Simple timing - 'Can I make this faster?'
- Module 12 (Benchmarking): Professional profiling - 'How do I measure systematically?'
- Module 13 (MLOps): Production monitoring - 'How do I track in production?'

 **Implementation Details:**
- Fixed imports to use matmul_naive from TinyTorch layers
- Simplified baseline implementation using NumPy dot product
- Reduced cognitive load by removing measurement complexity
- Maintained all kernel optimization concepts

⚠️ **Note:** Cache-friendly implementation needs debugging but core timing functionality works

🎯 **Impact:** Students can now focus on building optimized kernels with immediate microsecond-level performance feedback, setting up perfect progression to comprehensive benchmarking in Module 12.
2025-07-14 14:51:28 -04:00
Vijay Janapa Reddi
1d49b824b0 feat: Complete standardized testing implementation and VS Code improvements
- Added locked standardized testing sections to autograd and optimizers modules
- Fixed kernels module structure to match optimizers/training pattern
- Added comprehensive VS Code setup guide for Jupytext editing
- All 12 TinyTorch modules now have consistent testing framework
- Cleaned up temporary development files
2025-07-14 14:16:06 -04:00
Vijay Janapa Reddi
eb7a26d741 feat: Complete standardized testing implementation across all modules
- Added standardized testing sections to modules 07_autograd and 08_optimizers
- Updated module.yaml files to reference inline testing approach
- Reorganized kernels module structure with proper testing placement
- All 12 TinyTorch modules now have consistent testing framework
- Fixed kernels module structure to match optimizers/training pattern
2025-07-14 14:15:23 -04:00
Vijay Janapa Reddi
4ea5a4e024 Add TinyTorch Profiler Utility
- Add tinytorch.utils.profiler following PyTorch's utils pattern
- Includes SimpleProfiler class for educational performance measurement
- Provides timing, memory usage, and system metrics
- Follows PyTorch's torch.utils.* organizational pattern
- Module 11: Kernels uses profiler for performance demonstrations

Features:
- Wall time and CPU time measurement
- Memory usage tracking (peak, delta, percentages)
- Array information (shape, size, dtype)
- CPU and system metrics
- Clean educational interface for ML performance learning

Import pattern:
  from tinytorch.utils.profiler import SimpleProfiler
2025-07-14 13:04:44 -04:00