# Student Workflow This guide explains the actual day-to-day workflow for building your ML framework with TinyTorch. ## The Core Workflow TinyTorch follows a simple three-step cycle: ```{mermaid} graph LR A[Work in Notebooks
modules/NN_name.ipynb] --> B[Export to Package
tito module complete N] B --> C[Validate with Milestones
Run milestone scripts] C --> A style A fill:#e3f2fd style B fill:#f0fdf4 style C fill:#fef3c7 ``` ### Step 1: Edit Modules Work on module notebooks in `modules/`: ```bash # Example: Working on Module 03 (Layers) cd modules/03_layers jupyter lab 03_layers.ipynb ``` Each module is a Jupyter notebook that you edit interactively. You'll: - Implement the required functionality - Add docstrings and comments - Run and test your code inline - See immediate feedback ### Step 2: Export to Package Once your module implementation is complete, export it to the main TinyTorch package: ```bash tito module complete MODULE_NUMBER ``` This command: - Converts your source files to the `tinytorch/` package - Validates [NBGrader](https://nbgrader.readthedocs.io/) metadata - Makes your implementation available for import **Example:** ```bash tito module complete 03 # Export Module 03 (Layers) ``` After export, your code is importable: ```python from tinytorch.layers import Linear # YOUR implementation! ``` ### Step 3: Validate with Milestones Run milestone scripts to prove your implementation works: ```bash cd milestones/01_1957_perceptron python 01_rosenblatt_forward.py # Uses YOUR Tensor (M01) python 02_rosenblatt_trained.py # Uses YOUR layers (M01-M07) ``` Each milestone has a README explaining: - Required modules - Historical context - Expected results - What you're learning See [Milestones Guide](chapters/milestones.md) for the full progression. ## Module Progression TinyTorch has 20 modules organized in three tiers: ### Foundation (Modules 01-07) Core ML infrastructure - tensors, autograd, training loops **Milestones unlocked:** - M01: Perceptron (after Module 07) - M02: XOR Crisis (after Module 07) ### Architecture (Modules 08-13) Neural network architectures - data loading, CNNs, transformers **Milestones unlocked:** - M03: MLPs (after Module 08) - M04: CNNs (after Module 09) - M05: Transformers (after Module 13) ### Optimization (Modules 14-19) Production optimization - profiling, quantization, benchmarking **Milestones unlocked:** - M06: Torch Olympics (after Module 18) ### Capstone Competition (Module 20) Apply all optimizations in the Torch Olympics Competition ## Typical Development Session Here's what a typical session looks like: ```bash # 1. Work on a module cd modules/05_autograd jupyter lab autograd_dev.ipynb # Edit your implementation interactively # 2. Export when ready tito module complete 05 # 3. Validate with existing milestones cd ../milestones/01_1957_perceptron python 01_rosenblatt_forward.py # Should still work! # 4. Continue to next module or milestone ``` ## TITO Commands Reference The most important commands you'll use: ```bash # Export module to package tito module complete MODULE_NUMBER # Check module status (optional capability tracking) tito checkpoint status # System information tito system info # Join community and benchmark tito community join tito benchmark baseline ``` For complete command documentation, see [TITO CLI Reference](tito/overview.md). ## Checkpoint System (Optional) TinyTorch includes an optional checkpoint system for tracking progress: ```bash tito checkpoint status # View completion tracking ``` This is helpful for self-assessment but **not required** for the core workflow. The essential cycle remains: edit → export → validate. ## Notebook Platform Options TinyTorch notebooks work with multiple platforms, but **important distinction**: ### Online Notebooks (Viewing & Exploration) - **Jupyter/MyBinder**: Click "Launch Binder" on any notebook page - great for viewing - **Google Colab**: Click "Launch Colab" for GPU access - good for exploration - **Marimo**: Click "🍃 Open in Marimo" for reactive notebooks - excellent for learning **⚠️ Important**: Online notebooks are for **viewing and learning**. They don't have the full TinyTorch package installed, so you can't: - Run milestone validation scripts - Import from `tinytorch.*` modules - Execute full experiments - Use the complete CLI tools ### Local Setup (Required for Full Package) **To actually build and experiment**, you need a **local installation**: ```bash # Clone and setup locally git clone https://github.com/mlsysbook/TinyTorch.git cd TinyTorch python -m venv .venv source .venv/bin/activate pip install -r requirements.txt pip install -e . # Install TinyTorch package ``` **Why local?** - ✅ Full `tinytorch.*` package available - ✅ Run milestone validation scripts - ✅ Use `tito` CLI commands - ✅ Execute complete experiments - ✅ Export modules to package - ✅ Full development workflow **Note for NBGrader assignments**: Submit `.ipynb` files (not Marimo's `.py` format) to preserve grading metadata. ## Community & Benchmarking ### Join the Community After completing setup, join the global TinyTorch community: ```bash # Join with optional information tito community join # View your profile and progress tito community profile # Update your information tito community update ``` **Privacy:** All information is optional. Data is stored locally in `.tinytorch/` directory. See [Community Guide](community.md) for details. ### Benchmark Your Progress Validate your setup and track performance: ```bash # Quick baseline benchmark (after setup) tito benchmark baseline # Full capstone benchmarks (after Module 20) tito benchmark capstone --track all ``` **Baseline Benchmark:** Quick validation that your setup works correctly - your "Hello World" moment! **Capstone Benchmark:** Full performance evaluation across speed, compression, accuracy, and efficiency tracks. See [Community Guide](community.md) for complete community and benchmarking features. ## Instructor Integration TinyTorch supports [NBGrader](https://nbgrader.readthedocs.io/) for classroom use. See the [Instructor Guide](usage-paths/classroom-use.md) for complete setup and grading workflows. For now, focus on the student workflow: building your implementations and validating them with milestones. ## What's Next? 1. **Start with Module 01**: See [Getting Started](intro.md) 2. **Follow the progression**: Each module builds on previous ones 3. **Run milestones**: Prove your implementations work 4. **Build intuition**: Understand ML systems from first principles The goal isn't just to write code - it's to **understand** how modern ML frameworks work by building one yourself.