From d7ec8ff01748bf79bf0e73ef2f9d20c66e9de2fc Mon Sep 17 00:00:00 2001 From: Vijay Janapa Reddi Date: Fri, 11 Jul 2025 21:44:09 -0400 Subject: [PATCH] Update README.md --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/README.md b/README.md index b76d3008..29878b81 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,67 @@ python bin/tito.py test --module [name] # Test implementation **Real-World Systems**: Drawing from production [PyTorch](https://pytorch.org/) and [JAX](https://jax.readthedocs.io/) architectures to understand industry-proven design patterns. +## πŸ€” Frequently Asked Questions + +
+Why should students build TinyTorch if AI agents can already generate similar code? + +Even though large language models can generate working ML code, building systems from scratch remains *pedagogically essential*: + +- **Understanding vs. Using**: AI-generated code shows what works, but not *why* it works. TinyTorch teaches students to reason through tensor operations, memory flows, and training logic. +- **Systems Literacy**: Debugging and designing real ML pipelines requires understanding abstractions like autograd, data loaders, and parameter updates, not just calling APIs. +- **AI-Augmented Engineers**: The best AI engineers will *collaborate with* AI tools, not rely on them blindly. TinyTorch trains students to read, verify, and modify generated code responsibly. +- **Intentional Design**: Systems thinking can’t be outsourced. TinyTorch helps learners internalize how decisions about data layout, execution, and precision affect performance. + +
+ +
+Why not just study the PyTorch or TensorFlow source code instead? + +Industrial frameworks are optimized for scale, not clarity. They contain thousands of lines of code, hardware-specific kernels, and complex abstractions. + +TinyTorch, by contrast, is intentionally **minimal** and **educational** β€” like building a kernel in an operating systems course. It helps learners understand the essential components and build an end-to-end pipeline from first principles. + +
+ +
+Isn't it more efficient to just teach ML theory and use existing frameworks? + +Teaching only the math without implementation leaves students unable to debug or extend real-world systems. TinyTorch bridges that gap by making ML systems tangible: + +- Students learn by doing, not just reading. +- Implementing backpropagation or a training loop exposes hidden assumptions and tradeoffs. +- Understanding how layers are built gives deeper insight into model behavior and performance. + +
+ +
+Why use TinyML in a Machine Learning Systems course? + +TinyML makes systems concepts concrete. By running ML models on constrained hardware, students encounter the real-world limits of memory, compute, latency, and energy β€” exactly the challenges modern ML engineers face at scale. + +- βš™οΈ **Hardware constraints** expose architectural tradeoffs that are hidden in cloud settings. +- 🧠 **Systems thinking** is deepened by understanding how models interact with sensors, microcontrollers, and execution runtimes. +- 🌍 **End-to-end ML** becomes tangible β€” from data ingestion to inference. + +TinyML isn’t about toy problems β€” it’s about simplifying to the point of *clarity*, not abstraction. Students see the full system pipeline, not just the cloud endpoint. + +
+ +
+What do the hardware kits add to the learning experience? + +The hardware kits are where learning becomes **hands-on and embodied**. They bring several pedagogical advantages: + +- πŸ”Œ **Physicality**: Students see real data flowing through sensors and watch ML models respond β€” not just print outputs. +- πŸ§ͺ **Experimentation**: Kits enable tinkering with latency, power, and model size in ways that are otherwise abstract. +- πŸš€ **Creativity**: Students can build real applications β€” from gesture detection to keyword spotting β€” using what they learned in TinyTorch. + +The kits act as *debuggable, inspectable deployment targets*. They reveal what’s easy vs. hard in ML deployment β€” and why hardware-aware design matters. + +
+ +--- ## 🀝 Contributing We welcome contributions! Whether you're a student who found a bug or an instructor wanting to add modules, see our [Contributing Guide](CONTRIBUTING.md).