mirror of
https://github.com/MLSysBook/TinyTorch.git
synced 2026-06-02 00:40:53 -05:00
docs: add December 2024 release documentation
- DECEMBER_2024_RELEASE.md: Release announcement template - RELEASE_CHECKLIST.md: Pre-release checklist and validation steps - STUDENT_VERSION_TOOLING.md: Documentation for untested student generation tooling
This commit is contained in:
213
DECEMBER_2024_RELEASE.md
Normal file
213
DECEMBER_2024_RELEASE.md
Normal file
@@ -0,0 +1,213 @@
|
||||
# TinyTorch December 2024 Release
|
||||
|
||||
## 🎉 Announcement: TinyTorch is Ready for Community Review
|
||||
|
||||
**TL;DR**: Complete ML systems course (20 modules: Tensors → Transformers → Optimization) now available for pedagogical review. Seeking feedback on implementation quality, learning progression, and systems thinking approach.
|
||||
|
||||
---
|
||||
|
||||
## What is TinyTorch?
|
||||
|
||||
A Harvard University course teaching ML systems engineering by building a complete framework from scratch—no PyTorch or TensorFlow dependencies. Students implement every component: tensors, autograd, optimizers, CNNs, transformers, and optimization systems.
|
||||
|
||||
**North Star Goal**: Train CNNs on CIFAR-10 to 75%+ accuracy using only your own code + NumPy.
|
||||
|
||||
---
|
||||
|
||||
## What's Released (December 2024)
|
||||
|
||||
### ✅ Complete Implementation (All 20 Modules)
|
||||
|
||||
**Part I: Neural Network Foundations (01-07)**
|
||||
- Tensors, Activations, Layers, Losses, Autograd, Optimizers, Training
|
||||
- Milestone: Train XOR solver and MNIST classifier
|
||||
|
||||
**Part II: Computer Vision (08-09)**
|
||||
- DataLoader, Spatial Convolutions (Conv2d, MaxPool2d)
|
||||
- Milestone: CIFAR-10 @ 75%+ accuracy
|
||||
|
||||
**Part III: Language Models (10-14)**
|
||||
- Tokenization, Embeddings, Attention, Transformers, KV-Caching
|
||||
- Milestone: TinyGPT text generation
|
||||
|
||||
**Part IV: System Optimization (15-20)**
|
||||
- Profiling, Acceleration, Quantization, Compression, Benchmarking, Capstone
|
||||
- Milestone: TinyMLPerf optimization competition
|
||||
|
||||
### 📚 Complete Documentation
|
||||
|
||||
- **Jupyter Book**: Full course website with learning guides
|
||||
- **Inline Tests**: Immediate validation in every module
|
||||
- **Historical Milestones**: 6 demos (1957 Perceptron → 2024 Systems)
|
||||
- **CLI System**: `tito` command-line tool for student workflow
|
||||
|
||||
### 🔧 Infrastructure
|
||||
|
||||
- NBGrader integration for classroom deployment
|
||||
- Comprehensive testing suite (200+ tests)
|
||||
- Student version generation tooling (untested)
|
||||
- GitHub Actions for book deployment
|
||||
|
||||
---
|
||||
|
||||
## What We're Seeking Feedback On
|
||||
|
||||
### 1. **Pedagogical Progression**
|
||||
- Do modules build logically? (Tensor → Autograd → CNNs → Transformers)
|
||||
- Are learning objectives clear?
|
||||
- Does "Build → Use → Understand" framework work?
|
||||
|
||||
### 2. **Implementation Quality**
|
||||
- Code clarity and readability
|
||||
- Educational value of inline tests
|
||||
- Balance of guidance vs. challenge
|
||||
|
||||
### 3. **Systems Thinking**
|
||||
- Memory management lessons
|
||||
- Performance analysis integration
|
||||
- Real-world ML engineering patterns
|
||||
|
||||
### 4. **Documentation**
|
||||
- Jupyter Book clarity
|
||||
- Module README completeness
|
||||
- Getting started experience
|
||||
|
||||
---
|
||||
|
||||
## How to Review
|
||||
|
||||
### Quick Look (15 minutes)
|
||||
```bash
|
||||
# Browse the Jupyter Book
|
||||
open https://mlsysbook.github.io/TinyTorch/
|
||||
```
|
||||
|
||||
### Deep Dive (2-4 hours)
|
||||
```bash
|
||||
# Clone and run implementations
|
||||
git clone https://github.com/mlsysbook/TinyTorch.git
|
||||
cd TinyTorch
|
||||
./setup-environment.sh
|
||||
source activate.sh
|
||||
|
||||
# Try building a module
|
||||
cd modules/source/01_tensor
|
||||
python tensor_dev.py
|
||||
|
||||
# Check a milestone
|
||||
cd ../../../milestones/03_1986_mlp_revival
|
||||
python mlp_mnist.py
|
||||
```
|
||||
|
||||
### Provide Feedback
|
||||
- **GitHub Issues**: Specific bugs or improvements
|
||||
- **GitHub Discussions**: General feedback, pedagogical suggestions
|
||||
- **Email**: vijay@seas.harvard.edu for detailed reviews
|
||||
|
||||
---
|
||||
|
||||
## What's NOT Ready (Yet)
|
||||
|
||||
### 🚧 Student Version Tooling
|
||||
- Scripts exist to generate student versions (remove solutions)
|
||||
- **Not yet validated with real students**
|
||||
- Planned for testing: January-March 2025
|
||||
|
||||
### 🚧 Classroom Deployment
|
||||
- NBGrader workflows need instructor testing
|
||||
- Grading rubrics need validation
|
||||
- First classroom use: Fall 2025 (tentative)
|
||||
|
||||
### 🚧 Known Issues
|
||||
- Modules 15-20 (optimization tier) are functional but need polish
|
||||
- Some inline tests could use better explanations
|
||||
- Book could use more cross-referencing
|
||||
|
||||
**We're being honest**: This release prioritizes complete implementations for review over polished student experience.
|
||||
|
||||
---
|
||||
|
||||
## Why Solutions Are Public
|
||||
|
||||
**Philosophy**: Modern ML education values pedagogy over secrecy.
|
||||
|
||||
**For Reviewers**: You need to see complete implementations to evaluate educational quality.
|
||||
|
||||
**For Students**: TinyTorch's progressive complexity makes copying ineffective. Module 05 (Autograd) exposes shallow understanding from earlier modules. Learning comes from struggle, not copying.
|
||||
|
||||
**For Instructors**: See [STUDENT_VERSION_TOOLING.md](STUDENT_VERSION_TOOLING.md) for classroom strategies.
|
||||
|
||||
---
|
||||
|
||||
## Timeline
|
||||
|
||||
- **December 2024**: Community review of complete implementations
|
||||
- **January-March 2025**: Incorporate feedback, test student version tooling
|
||||
- **April-May 2025**: Finalize classroom workflows
|
||||
- **Fall 2025**: Potential first classroom deployment
|
||||
|
||||
---
|
||||
|
||||
## Who Should Review This?
|
||||
|
||||
### ✅ Perfect For:
|
||||
- **ML educators** considering systems-focused courses
|
||||
- **ML engineers** evaluating educational materials
|
||||
- **Students** interested in deep understanding (not just API usage)
|
||||
- **Open-source contributors** wanting to improve ML education
|
||||
|
||||
### ⚠️ Not Yet For:
|
||||
- Instructors needing classroom-ready materials immediately
|
||||
- Students expecting polished MOOC experience
|
||||
- Organizations requiring production-ready framework
|
||||
|
||||
---
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
**Created by**: [Prof. Vijay Janapa Reddi](https://vijay.seas.harvard.edu), Harvard University
|
||||
|
||||
**Inspired by**: FastAI (pedagogy), MiniTorch (Cornell), micrograd (Karpathy), tinygrad (Hotz)
|
||||
|
||||
**Community**: Thanks to early testers and feedback providers
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- **Jupyter Book**: https://mlsysbook.github.io/TinyTorch/
|
||||
- **GitHub**: https://github.com/mlsysbook/TinyTorch
|
||||
- **Issues**: https://github.com/mlsysbook/TinyTorch/issues
|
||||
- **Discussions**: https://github.com/mlsysbook/TinyTorch/discussions
|
||||
|
||||
---
|
||||
|
||||
## Quick Facts
|
||||
|
||||
- **20 modules** (Tensor → Capstone)
|
||||
- **6 historical milestones** (1957 Perceptron → 2024 Systems)
|
||||
- **200+ tests** (integration + unit)
|
||||
- **Zero external ML dependencies** (only NumPy)
|
||||
- **MIT License** (open source)
|
||||
- **Harvard course** (academic-quality materials)
|
||||
|
||||
---
|
||||
|
||||
## Call to Action
|
||||
|
||||
**We need your feedback to make TinyTorch exceptional.**
|
||||
|
||||
- 📖 Read the book: https://mlsysbook.github.io/TinyTorch/
|
||||
- 💻 Try the code: `git clone https://github.com/mlsysbook/TinyTorch.git`
|
||||
- 💬 Share feedback: GitHub Issues or Discussions
|
||||
- 🌟 Star the repo: Help others discover it
|
||||
- 📢 Spread the word: Share with ML educators and engineers
|
||||
|
||||
**Goal**: Build the best ML systems education materials through community collaboration.
|
||||
|
||||
---
|
||||
|
||||
**Thank you for helping us improve ML systems education!**
|
||||
|
||||
— Prof. Vijay Janapa Reddi, Harvard University
|
||||
|
||||
263
RELEASE_CHECKLIST.md
Normal file
263
RELEASE_CHECKLIST.md
Normal file
@@ -0,0 +1,263 @@
|
||||
# December 2024 Release Checklist
|
||||
|
||||
## Pre-Release (Complete Before Pushing)
|
||||
|
||||
### Code & Documentation
|
||||
- [ ] All 20 modules have complete implementations
|
||||
- [ ] All inline tests pass when running modules
|
||||
- [ ] README.md updated with December release notice
|
||||
- [ ] STUDENT_VERSION_TOOLING.md created (explains untested tooling)
|
||||
- [ ] DECEMBER_2024_RELEASE.md created (announcement template)
|
||||
- [ ] Academic Integrity section added to README
|
||||
|
||||
### Repository Cleanup
|
||||
- [ ] Remove any temporary/debug files
|
||||
- [ ] Update .gitignore if needed
|
||||
- [ ] Verify no sensitive data in commits
|
||||
- [ ] Clean up any TODOs or FIXMEs in visible code
|
||||
|
||||
### Testing
|
||||
- [ ] Run key module tests: `pytest tests/01_tensor tests/05_autograd tests/09_spatial`
|
||||
- [ ] Verify book builds locally: `cd book && jupyter-book build .`
|
||||
- [ ] Check that setup script works: `./setup-environment.sh`
|
||||
- [ ] Test at least one milestone: `python milestones/03_1986_mlp_revival/mlp_mnist.py`
|
||||
|
||||
---
|
||||
|
||||
## Release Day (Execution)
|
||||
|
||||
### 1. Merge to Main (30 minutes)
|
||||
```bash
|
||||
cd /Users/VJ/GitHub/TinyTorch
|
||||
|
||||
# 1. Ensure you're on your working branch
|
||||
git status
|
||||
|
||||
# 2. Commit all changes
|
||||
git add README.md STUDENT_VERSION_TOOLING.md DECEMBER_2024_RELEASE.md RELEASE_CHECKLIST.md
|
||||
git commit -m "Prepare December 2024 release with complete implementations"
|
||||
|
||||
# 3. Switch to main and merge
|
||||
git checkout main
|
||||
git merge optimization-tier-restructure --no-ff -m "Release December 2024: Complete 20-module implementation"
|
||||
|
||||
# 4. Push to GitHub
|
||||
git push origin main
|
||||
|
||||
# 5. Verify GitHub Actions triggered
|
||||
# Go to: https://github.com/mlsysbook/TinyTorch/actions
|
||||
# Confirm "Deploy TinyTorch Jupyter Book" workflow started
|
||||
```
|
||||
|
||||
### 2. Verify Deployment (10 minutes)
|
||||
```bash
|
||||
# Wait 5-10 minutes for GitHub Actions to complete
|
||||
|
||||
# Check deployment status
|
||||
open https://github.com/mlsysbook/TinyTorch/actions
|
||||
|
||||
# Verify book is live
|
||||
open https://mlsysbook.github.io/TinyTorch/
|
||||
|
||||
# Test these critical pages:
|
||||
# - Home page loads
|
||||
# - Chapter navigation works
|
||||
# - At least 3 module chapters render correctly
|
||||
```
|
||||
|
||||
### 3. Create GitHub Release (15 minutes)
|
||||
```bash
|
||||
# Go to: https://github.com/mlsysbook/TinyTorch/releases/new
|
||||
|
||||
Tag: v0.1.0-alpha
|
||||
Release title: TinyTorch December 2024 Release - Community Review
|
||||
Description: Copy from DECEMBER_2024_RELEASE.md
|
||||
|
||||
Key sections:
|
||||
- What's released
|
||||
- What we're seeking feedback on
|
||||
- How to review
|
||||
- What's not ready yet
|
||||
- Links to book and discussions
|
||||
|
||||
Mark as: "Pre-release" (this is alpha quality)
|
||||
```
|
||||
|
||||
### 4. Enable GitHub Discussions (5 minutes)
|
||||
```bash
|
||||
# Go to: https://github.com/mlsysbook/TinyTorch/settings
|
||||
|
||||
# Enable:
|
||||
- Discussions tab
|
||||
- Issues (should already be enabled)
|
||||
- Wiki (optional)
|
||||
|
||||
# Create initial discussion categories:
|
||||
- 💬 General Feedback
|
||||
- 📚 Pedagogy & Learning Design
|
||||
- 💻 Implementation Quality
|
||||
- 🐛 Bugs & Issues
|
||||
- 💡 Feature Suggestions
|
||||
- 🎓 Classroom Use (Future)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Announcement (1-2 hours)
|
||||
|
||||
### Prepare Announcement Text
|
||||
|
||||
**Short Version (Twitter/LinkedIn - 280 chars)**:
|
||||
```
|
||||
🚀 TinyTorch December Release: Build ML systems from scratch!
|
||||
|
||||
20 modules: Tensors → Transformers → Optimization
|
||||
Goal: CIFAR-10 CNNs @ 75%+ with YOUR code (no PyTorch!)
|
||||
|
||||
Seeking feedback on pedagogy & implementation.
|
||||
|
||||
📚 Book: https://mlsysbook.github.io/TinyTorch/
|
||||
💻 Repo: https://github.com/mlsysbook/TinyTorch
|
||||
|
||||
#MachineLearning #MLSystems #Education
|
||||
```
|
||||
|
||||
**Medium Version (Blog post - 500 words)**:
|
||||
Use DECEMBER_2024_RELEASE.md sections:
|
||||
- What is TinyTorch
|
||||
- What's released
|
||||
- What we're seeking feedback on
|
||||
- How to review
|
||||
- Links
|
||||
|
||||
**Long Version (Academic announcement - 1000 words)**:
|
||||
Full DECEMBER_2024_RELEASE.md content
|
||||
|
||||
### Distribution Channels
|
||||
|
||||
#### Academic
|
||||
- [ ] Harvard SEAS mailing list
|
||||
- [ ] ML education forums (e.g., MLSys community)
|
||||
- [ ] Academic Twitter/X
|
||||
|
||||
#### Technical Community
|
||||
- [ ] Hacker News (Show HN: TinyTorch - Build ML systems from scratch)
|
||||
- [ ] Reddit r/MachineLearning (appropriate day/time)
|
||||
- [ ] LinkedIn post (tag relevant educators/engineers)
|
||||
- [ ] Twitter/X thread (break down into tweet storm)
|
||||
|
||||
#### Direct Outreach
|
||||
- [ ] Email to ML educator colleagues (personal note)
|
||||
- [ ] Reach out to PyTorch/FastAI communities
|
||||
- [ ] Contact MiniTorch maintainers (Cornell) - as peer project
|
||||
- [ ] Share with Karpathy, George Hotz communities (related projects)
|
||||
|
||||
---
|
||||
|
||||
## Post-Release Monitoring (First Week)
|
||||
|
||||
### Daily Tasks
|
||||
- [ ] Check GitHub Issues (respond within 24 hours)
|
||||
- [ ] Monitor Discussions (participate actively)
|
||||
- [ ] Track analytics (GitHub stars, book views if available)
|
||||
- [ ] Respond to Twitter/LinkedIn comments
|
||||
- [ ] Collect feedback in organized notes
|
||||
|
||||
### Weekly Tasks
|
||||
- [ ] Summarize feedback themes
|
||||
- [ ] Identify critical bugs vs. enhancements
|
||||
- [ ] Prioritize based on community input
|
||||
- [ ] Update project roadmap based on feedback
|
||||
|
||||
### What to Look For
|
||||
1. **Critical bugs** - breaks setup or core modules → fix immediately
|
||||
2. **Pedagogical gaps** - unclear instructions, missing context
|
||||
3. **Technical issues** - implementation problems, incorrect code
|
||||
4. **Feature requests** - nice-to-have but not blocking
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics (First Month)
|
||||
|
||||
### Quantitative
|
||||
- [ ] GitHub Stars: Target 100+ in first month
|
||||
- [ ] Issues/Discussions: Active engagement (20+ threads)
|
||||
- [ ] Book views: Analytics showing page visits
|
||||
- [ ] Forks: Community interest in contributing
|
||||
|
||||
### Qualitative
|
||||
- [ ] Positive feedback on pedagogical approach
|
||||
- [ ] Constructive technical feedback incorporated
|
||||
- [ ] Interest from other instructors
|
||||
- [ ] Community contributions (PRs, issues)
|
||||
|
||||
---
|
||||
|
||||
## Contingency Plans
|
||||
|
||||
### If Book Doesn't Deploy
|
||||
```bash
|
||||
# Manual deployment
|
||||
cd book
|
||||
jupyter-book clean . && jupyter-book build .
|
||||
# Upload _build/html/ to GitHub Pages manually
|
||||
```
|
||||
|
||||
### If Critical Bug Found
|
||||
```bash
|
||||
# Hot fix workflow
|
||||
git checkout main
|
||||
git checkout -b hotfix-issue-123
|
||||
# Make fix
|
||||
git commit -m "Fix critical bug in tensor operations"
|
||||
git push origin hotfix-issue-123
|
||||
# Merge immediately to main
|
||||
```
|
||||
|
||||
### If Negative Reception
|
||||
- Don't panic
|
||||
- Listen to feedback
|
||||
- Acknowledge legitimate concerns
|
||||
- Focus on improvement, not defense
|
||||
- Remember: this is alpha, feedback is the goal
|
||||
|
||||
---
|
||||
|
||||
## After First Month
|
||||
|
||||
### Review & Plan
|
||||
- [ ] Compile all feedback into summary doc
|
||||
- [ ] Identify patterns in feedback
|
||||
- [ ] Create prioritized improvement roadmap
|
||||
- [ ] Decide on timeline for next release
|
||||
|
||||
### Next Steps Decision
|
||||
1. **If feedback is mostly positive**:
|
||||
- Focus on polishing existing modules
|
||||
- Begin student version testing
|
||||
|
||||
2. **If significant issues found**:
|
||||
- Address critical problems first
|
||||
- Delay student version work
|
||||
|
||||
3. **If little engagement**:
|
||||
- Re-evaluate announcement strategy
|
||||
- Reach out to specific communities
|
||||
- Consider why adoption is slow
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
**Philosophy**: Ship early, get feedback, iterate based on real use.
|
||||
|
||||
**Goal**: Not perfection, but improvement through community input.
|
||||
|
||||
**Timeline**: December release → January-March refinement → Spring validation → Fall classroom (maybe)
|
||||
|
||||
**Mindset**: Academic software development is iterative. First release exposes blind spots.
|
||||
|
||||
---
|
||||
|
||||
**Ready to ship?** Check off items above and execute! 🚀
|
||||
|
||||
110
STUDENT_VERSION_TOOLING.md
Normal file
110
STUDENT_VERSION_TOOLING.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# Student Version Generation Tooling
|
||||
|
||||
## Status: 🚧 Available but Untested
|
||||
|
||||
TinyTorch includes tooling to generate student versions from complete implementations, but these are **not yet validated for classroom use**.
|
||||
|
||||
## Current State
|
||||
|
||||
### ✅ What Exists
|
||||
- **NBGrader integration**: `tito nbgrader generate [module]`
|
||||
- **Student notebook generator**: `bin/generate_student_notebooks.py`
|
||||
- **Solution markers**: Modules use `### BEGIN SOLUTION` / `### END SOLUTION`
|
||||
- **Release workflow**: `tito nbgrader release [module]`
|
||||
|
||||
### 🚧 What's Not Ready
|
||||
- Student versions have not been tested with actual students
|
||||
- NBGrader autograding rubrics need validation
|
||||
- Generated notebooks may need manual review
|
||||
|
||||
## Planned Workflow (Untested)
|
||||
|
||||
### For Instructors (Future)
|
||||
|
||||
```bash
|
||||
# 1. Generate student version of a module
|
||||
tito nbgrader generate 01_tensor
|
||||
|
||||
# 2. Release to students (removes solutions)
|
||||
tito nbgrader release 01_tensor
|
||||
|
||||
# 3. Collect student submissions
|
||||
tito nbgrader collect 01_tensor
|
||||
|
||||
# 4. Auto-grade submissions
|
||||
tito nbgrader autograde 01_tensor
|
||||
|
||||
# 5. Generate feedback
|
||||
tito nbgrader feedback 01_tensor
|
||||
```
|
||||
|
||||
### Current Best Practice
|
||||
|
||||
**December 2024 Release**: Focus on complete implementations for pedagogical review
|
||||
|
||||
**Spring 2025**: Validate student version generation with pilot users
|
||||
|
||||
**Fall 2025**: Full classroom deployment with tested workflows
|
||||
|
||||
## Student Version Features (Planned)
|
||||
|
||||
When mature, student versions will:
|
||||
- Remove solutions between `### BEGIN SOLUTION` / `### END SOLUTION` markers
|
||||
- Replace with `raise NotImplementedError()` stubs
|
||||
- Preserve tests and validation cells
|
||||
- Include hints and learning guidance
|
||||
- Support NBGrader auto-grading
|
||||
|
||||
## Contributing
|
||||
|
||||
If you're interested in helping validate student version workflows:
|
||||
1. Try generating student versions for modules 01-07
|
||||
2. Report issues with missing hints, unclear instructions, or broken tests
|
||||
3. Suggest improvements to the pedagogical flow
|
||||
|
||||
## Architecture
|
||||
|
||||
### Markers System
|
||||
```python
|
||||
### BEGIN SOLUTION
|
||||
# Complete implementation here
|
||||
# This will be removed in student version
|
||||
### END SOLUTION
|
||||
|
||||
### BEGIN HIDDEN TESTS
|
||||
# Tests hidden from students
|
||||
# Used for auto-grading
|
||||
### END HIDDEN TESTS
|
||||
```
|
||||
|
||||
### Generation Process
|
||||
1. Parse `_dev.py` files in `modules/source/`
|
||||
2. Convert to notebooks using Jupytext
|
||||
3. Remove solution blocks
|
||||
4. Add NBGrader metadata
|
||||
5. Output to `assignments/release/`
|
||||
|
||||
## Why Not Ship Student Versions Now?
|
||||
|
||||
1. **Focus on pedagogy first**: Get feedback on complete implementations
|
||||
2. **Avoid half-baked releases**: Student versions need proper testing
|
||||
3. **Community validation**: Let others help identify gaps before classroom use
|
||||
4. **Honest communication**: Better to say "untested" than to ship broken workflows
|
||||
|
||||
## Timeline
|
||||
|
||||
- **December 2024**: Release complete implementations + this documentation
|
||||
- **January-March 2025**: Community testing of student version generation
|
||||
- **April 2025**: Validated student version workflows
|
||||
- **Fall 2025**: Full classroom deployment
|
||||
|
||||
---
|
||||
|
||||
**For December reviewers**: Please focus feedback on:
|
||||
- Pedagogical progression (modules 01-20)
|
||||
- Implementation quality and correctness
|
||||
- Documentation clarity
|
||||
- Learning objectives and systems thinking
|
||||
|
||||
Student version feedback is welcome but secondary for now.
|
||||
|
||||
Reference in New Issue
Block a user