Commit Graph

287 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
eb4e04b174 Implement README-to-chapter conversion for cleaner website workflow 2025-07-16 00:56:36 -04:00
Vijay Janapa Reddi
775da8e445 Merge branch 'main' into dev 2025-07-16 00:45:19 -04:00
Vijay Janapa Reddi
232087a0cf Update book/_toc.yml and tito/commands/book.py with latest fixes and notebook generation logic 2025-07-16 00:44:22 -04:00
Vijay Janapa Reddi
2c6d348227 Auto-generate notebooks during book build process 2025-07-15 23:53:26 -04:00
Vijay Janapa Reddi
074f695fb3 Generate notebook files from Python modules for direct access 2025-07-15 23:51:56 -04:00
Vijay Janapa Reddi
1296722175 Fix GitHub Actions: install requirements.txt before tito CLI to include rich dependency 2025-07-15 23:36:14 -04:00
Vijay Janapa Reddi
a81321b373 Fix GitHub Actions: create and activate virtual environment for tito CLI 2025-07-15 23:33:43 -04:00
Vijay Janapa Reddi
99f4a1234f Revert "Fix tito CLI: skip virtual environment validation in CI environments"
This reverts commit de505f5fd0747273be343e878da6cd57a2a6b5a7.
2025-07-15 23:33:04 -04:00
Vijay Janapa Reddi
1a8e184015 Fix tito CLI: skip virtual environment validation in CI environments 2025-07-15 23:32:33 -04:00
Vijay Janapa Reddi
308f57ff2f Fix GitHub Actions workflow: remove virtual environment complexity in CI 2025-07-15 23:29:09 -04:00
Vijay Janapa Reddi
4f052f5914 Fix GitHub workflow to properly activate virtual environment
- Combine venv setup and tito execution in same step
- Add pytest installation for tito environment validation
- Add explanatory comments about GitHub Actions shell behavior
- Remove environment skipping hack in favor of proper setup
- Workflow now uses tito CLI consistently for book generation
2025-07-15 23:26:34 -04:00
Vijay Janapa Reddi
3fecb39065 Merge branch 'dev' 2025-07-15 22:54:03 -04:00
Vijay Janapa Reddi
c3644c7620 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
9317fb2d94 Merge branch 'feature/interactive-access' into dev 2025-07-15 22:37:46 -04:00
Vijay Janapa Reddi
3ef215f78f 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
90ddf530c5 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
01e4aec62b 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
bb03b4b2f1 Update README.md 2025-07-15 21:09:16 -04:00
Vijay Janapa Reddi
1b9e838644 🧪 Test publish command 2025-07-15 20:39:51 -04:00
Vijay Janapa Reddi
d82c75f9dc 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
3b26bc21f5 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
ad65dfcd7c 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
76225baa42 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
de5b7ec838 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
891ab98acd 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
6bdf09ff0e Update README.md 2025-07-15 18:12:04 -04:00
Vijay Janapa Reddi
c048422167 Update README.md 2025-07-15 18:02:26 -04:00
Vijay Janapa Reddi
eaa5437406 Update README.md 2025-07-15 15:23:02 -04:00
Vijay Janapa Reddi
be19c85108 Update README.md 2025-07-15 15:20:35 -04:00
Vijay Janapa Reddi
02af34d202 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
2f3c9c7451 Update README.md 2025-07-15 14:37:46 -04:00
Vijay Janapa Reddi
b9e8766ba3 Configure GitHub Actions to deploy from main branch
- Updated workflow trigger from dev to main branch
- Ensures Jupyter Book deploys only on production releases
- Completes production workflow setup
2025-07-15 13:13:31 -04:00
Vijay Janapa Reddi
d2dcb60b98 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
9ee4ed8b53 feat: Add .nojekyll for GitHub Pages compatibility 2025-07-15 12:51:48 -04:00
Vijay Janapa Reddi
9860258643 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
58f2afbbf6 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
c158f8b6d5 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
842d81c181 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
036bfbd6fc 🚀 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