Hi! My name is Zachary Mueller, and I’m a Machine Learning Software Engineer at 🤗. I majored in Software Design and Development and I have minors in both Computer Science and Environmental Science.
I have a heavy passion for Deep Learning and Open Source libraries. As a result, below you will find some notable articles I’ve written, a few courses I’ve made, some of software libraries I’ve written, interesting projects, and the open source libraries I have tried to contribute the most to.
My blogs
Explore this website to learn more! Generally most of my larger articles are in /blog
.
Outside Articles and Posts
From PyTorch DDP to Accelerate to Trainer, mastery of distributed training with ease (October 2022) |
An overview of training deep learning models in PyTorch, particularly focusing on Distributed Data Parallelism (DDP) for distributed training across multiple GPUs or machines. It discusses the setup and usage of DDP, as well as introduces 🤗 Accelerate, a library that simplifies distributed training with minimal code changes. Additionally, the article briefly covers the use of the 🤗 Trainer API, which abstracts training details for even easier distributed training. |
Methods for Automating Learning Rate Finders (March 2021) |
Addressing the challenges of manually selecting learning rates for deep learning models and presents automated methods for finding optimal learning rates. The methods, including Leslie Smith’s approach and those developed by Novetta and ESRI, are compared across various datasets and domains, such as computer vision classification, semantic segmentation, tabular classification, and natural language processing. |
lib2nbdev (June 2021) |
Nbdev, originating from fast.ai, simplifies the software engineering process by centralizing code, documentation, and tests in Jupyter Notebooks, enhancing project readability and testing while streamlining development-to-production pipelines. It offers auto-generated documentation, release generators, multiprocessing for testing, and GitHub Actions integration, and Novetta’s open-source tool, lib2nbdev, facilitates the conversion of existing Python projects into nbdev libraries, saving substantial time and effort. |
Courses
Walk with fastai: Revisited |
A full revamp of the original Walk with fastai course made for the modern version of the library and focusing on different aspects than the prior iterations. |
Walk with fastai |
Walk with fastai was the second iteration of my exploration with courses. In it I taught over 10 lessons on the new fastai API, exploring new avenues that the API could preform and displaying unique situations often not covered within the orignal course. So far it has been wildly successful, with many of the lectures garnishing over a thousand views on YouTube |
Practical Deep Learning for Coders 2.0 |
This was a rehash of the fastai course of the same name that I taught at the University of West Florida through the Artificial Intellegence Research Group in 2019 |
Open Source Software Libraries
Accelerate |
While at Hugging Face, I have been a major developer on the Accelerate library; it is a framework designed to ensure PyTorch code can be ran on any system without code changes. |
AdaptNLP |
While at Novetta, I was the lead developer for the AdaptNLP library. This library wraps the HuggingFace Transformers and fastai libraries into an easy-to-use interface for both fine-tuning and performing inference with transformer-based models. It was featured in the Weights and Biases HuggingFace Study Group |
lib2nbdev |
Seeing a need to ease integration of the nbdev framework into more projects, I built lib2nbdev as a single-use library that will convert existing python projects into a compatible nbdev library. |
wwf |
Along with being a course, the Walk with fastai library (wwf) is also a conglomerate of useful documentation and code for fastai applications centralized in a single location |
nbverbose |
nbverbose aims at combining both the one-line documentation style that fastai incentivizes without losing best practices nor documentation accessability. By combining the fastcore library with nbdev, this library provides an efficient way to document your code while minimizing the vertical space needed to get there |
fastinference |
The fastinference library was designed around making inference with the fastai library simpler, faster, and more approachable. This entailed providing ONNX exportability as well as in-house interpretability modules |
fastdebug |
Aimed at easing the annoyance of common bugs, this library helps users of both the PyTorch and fastai ecosystems provide clear debugging logs when it comes to extremely common exceptions that get thrown that could use a little touch-up |
fastshap |
The fastshap library brought in SHAP into the fastai framework. It has since been merged with the fastinference module, though one compatible with fastai version 1 is available on pypi |
Open Source Contributions