Accelerate Your Machine Learning Experimentation With Automatic Checkpoints Using FLOR

The Python Podcast.__init__

Episode | Podcast

Date: Mon, 02 May 2022 06:00:00 -0400

<div class="wp-block-jetpack-markdown"><h2>Summary</h2> <p>The experimentation phase of building a machine learning model requires a lot of trial and error. One of the limiting factors of how many experiments you can try is the length of time required to train the model which can be on the order of days or weeks. To reduce the time required to test different iterations Rolando Garcia Sanchez created FLOR which is a library that automatically checkpoints training epochs and instruments your code so that you can bypass early training cycles when you want to explore a different path in your algorithm. In this episode he explains how the tool works to speed up your experimentation phase and how to get started with it.</p> <h2>Announcements</h2> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python&#8217;s role in data and science.</li> <li>When you&#8217;re ready to launch your next app or want to try a project you hear about on the show, you&#8217;ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it&#8217;s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&amp;utm_medium=rss">pythonpodcast.com/linode</a> and get a $100 credit to try out a Kubernetes cluster of your own. And don&#8217;t forget to thank them for their continued support of this show!</li> <li>Your host as usual is Tobias Macey and today I&#8217;m interviewing Rolando Garcia about FLOR, a suite of machine learning tools for hindsight logging that lets you speed up model experimentation by checkpointing training data</li> </ul> <h2>Interview</h2> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you describe what FLOR is and the story behind it?</li> <li>What is the core problem that you are trying to solve for with FLOR? <ul> <li>What are the fundamental challenges in model training and experimentation that make it necessary?</li> <li>How do machine learning reasearchers and engineers address this problem in the absence of something like FLOR?</li> </ul> </li> <li>Can you describe how FLOR is implemented? <ul> <li>What were the core engineering problems that you had to solve for while building it?</li> </ul> </li> <li>What is the workflow for integrating FLOR into your model development process?</li> <li>What information are you capturing in the log structures and epoch checkpoints? <ul> <li>How does FLOR use that data to prime the model training to a given state when backtracking and trying a different approach?</li> </ul> </li> <li>How does the presence of FLOR change the costs of ML experimentation and what is the long-range impact of that shift? <ul> <li>Once a model has been trained and optimized, what is the long-term utility of FLOR?</li> </ul> </li> <li>What are the opportunities for supporting e.g. Horovod for distributed training of large models or with large datasets?</li> <li>What does the maintenance process for research-oriented OSS projects look like?</li> <li>What are the most interesting, innovative, or unexpected ways that you have seen FLOR used?</li> <li>What are the most interesting, unexpected, or challenging lessons that you have learned while working on FLOR?</li> <li>When is FLOR the wrong choice?</li> <li>What do you have planned for the future of FLOR?</li> </ul> <h2>Keep In Touch</h2> <ul> <li><a href="https://github.com/rlnsanz?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">rlnsanz</a> on GitHub</li> <li><a href="https://twitter.com/rogarcia_sanz?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">@rogarcia_sanz</a> on Twitter</li> </ul> <h2>Picks</h2> <ul> <li>Tobias <ul> <li><a href="https://www.thebatman.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">The Batman</a></li> </ul> </li> <li>Rolando <ul> <li><a href="https://tv.apple.com/us/show/severance/umc.cmc.1srk2goyh2q2zdxcx605w8vtx?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Severance</a></li> <li><a href="https://github.com/features/codespaces?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">GitHub Codespaces</a></li> </ul> </li> </ul> <h2>Closing Announcements</h2> <ul> <li>Thank you for listening! Don&#8217;t forget to check out our other show, the <a href="https://www.dataengineeringpodcast.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Data Engineering Podcast</a> for the latest on modern data management.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&amp;utm_medium=rss">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li> <li>If you&#8217;ve learned something or tried out a project from the show then tell us about it! Email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>) with your story.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&amp;uo=6&amp;at=&amp;ct=&amp;utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> </ul> <h2>Links</h2> <ul> <li><a href="https://github.com/ucbrise/flor/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">FLOR</a></li> <li><a href="https://www.berkeley.edu/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">UC Berkeley</a></li> <li><a href="https://dsf.berkeley.edu/jmh/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Joe Hellerstein</a></li> <li><a href="https://ml-ops.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">MLOps</a> <ul> <li><a href="https://www.dataengineeringpodcast.com/mlops-for-data-engineers-episode-281/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Data Engineering Podcast Episode</a></li> </ul> </li> <li><a href="https://rise.cs.berkeley.edu/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">RISE Lab</a></li> <li><a href="https://amplab.cs.berkeley.edu/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">AMP Lab</a></li> <li><a href="https://github.com/ucbrise/clipper?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Clipper Model Serving</a></li> <li><a href="http://www.ground-context.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Ground Data Context Service</a></li> <li><a href="https://rlnsanz.github.io/dat/Flor_CMI_18_CameraReady.pdf?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Context: The Missing Piece Of The Machine Learning Lifecycle</a></li> <li><a href="https://airflow.apache.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Airflow</a></li> <li><a href="https://en.wikipedia.org/wiki/Copy-on-write?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Copy on write</a></li> <li><a href="https://github.com/berkerpeksag/astor?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">ASTor</a></li> <li><a href="https://greentreesnakes.readthedocs.io/en/latest/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Green Tree Snakes: Python AST Documentation</a></li> <li><a href="https://mlflow.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">MLFlow</a></li> <li><a href="https://aws.amazon.com/sagemaker/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Amazon Sagemaker</a></li> <li><a href="https://github.com/cloudpipe/cloudpickle?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Cloudpickle</a></li> <li><a href="https://horovod.ai/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Horovod</a> <ul> <li><a href="https://www.pythonpodcast.com/ludwig-horovod-distributed-declarative-deep-learning-episode-341/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://www.anyscale.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Ray Anyscale</a></li> <li><a href="https://pytorch.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PyTorch</a></li> <li><a href="https://www.tensorflow.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Tensorflow</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fwww.pythonpodcast.com%2Fflor-machine-learning-experiment-episode-362%2F&amp;action_name=Accelerate+Your+Machine+Learning+Experimentation+With+Automatic+Checkpoints+Using+FLOR+-+Episode+362&amp;urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&amp;utm_source=rss&amp;utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />