Date: Mon, 10 May 2021 22:00:00 -0400
<div class="wp-block-jetpack-markdown"><h2>Summary</h2> <p>Machine learning is a tool that has typically been performed on large volumes of data in one place. As more computing happens at the edge on mobile and low power devices, the learning is being federated which brings a new set of challenges. Daniel Beutel co-created the Flower framework to make federated learning more manageable. In this episode he shares his motivations for starting the project, how you can use it for your own work, and the unique challenges and benefits that this emerging model offers. This is a great exploration of the federated learning space and a framework that makes it more approachable.</p> <h2>Announcements</h2> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>When you’re ready to launch your next app or want to try a project you hear about on the show, you’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’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&utm_medium=rss">pythonpodcast.com/linode</a> and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!</li> <li>We’ve all been asked to help with an ad-hoc request for data by the sales and marketing team. Then it becomes a critical report that they need updated every week or every day. Then what do you do? Send a CSV via email? Write some Python scripts to automate it? But what about incremental sync, API quotas, error handling, and all of the other details that eat up your time? Today, there is a better way. With Census, just write SQL or plug in your dbt models and start syncing your cloud warehouse to SaaS applications like Salesforce, Marketo, Hubspot, and many more. Go to <a href="https://www.pythonpodcast.com/census?utm_source=rss&utm_medium=rss">pythonpodcast.com/census</a> today to get a free 14-day trial.</li> <li>Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at <a href="https://www.pythonpodcast.com/hightouch?utm_source=rss&utm_medium=rss">pythonpodcast.com/hightouch</a>.</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Daniel Beutel about Flower, a framework for building federated learning systems</li> </ul> <h2>Interview</h2> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you start by describing what federated learning is?</li> <li>What is Flower and what’s the story behind it?</li> <li>What are the trade-offs between federated and centralized models of machine learning?</li> <li>What are some of the types of use cases or workloads that federated learning is used for?</li> <li>Federated learning appears to be a growing area of interest. How would you characterize the current state of the ecosystem?</li> <li>What are the most complex or challenging aspects of federating model training? <ul> <li>How does Flower simplify the process of distributing the model training process?</li> </ul> </li> <li>Can you describe how Flower is implemented? <ul> <li>How have the goals and/or design of Flower changed or evolved since you first began working on it?</li> </ul> </li> <li>One of the design principles that you list is "understandability". What are some of the ways that that manifests in the project?</li> <li>It also mentions extensibility. What are the interfaces that Flower exposes for integration or extending its capabilities?</li> <li>For someone who has an existing project that runs in a centralized manner, what are some indicators that a federated approach would be beneficial? <ul> <li>What is involved in translating the existing project to run in a federated fashion using Flower?</li> </ul> </li> <li>What is involved in building a production ready system with Flower?</li> <li>How does your work at Adap inform the design and product direction for Flower?</li> <li>What are some of the most interesting, innovative, or unexpected ways that you have seen Flower used?</li> <li>What are the most interesting, unexpected, or challenging lessons that you have learned from your work on and with Flower?</li> <li>When is Flower the wrong choice?</li> <li>What do you have planned for the future of the project?</li> </ul> <h2>Keep In Touch</h2> <ul> <li><a href="https://www.linkedin.com/in/daniel-janes/?originalSubdomain=de&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> <li><a href="https://github.com/danieljanes?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">danieljanes</a> on GitHub</li> <li><a href="https://twitter.com/daniel_janes?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">@daniel_janes</a> on Twitter</li> </ul> <h2>Picks</h2> <ul> <li>Tobias <ul> <li><a href="https://bicyclecards.com/game_types/rummy/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Rummy Card Game</a></li> </ul> </li> <li>Daniel <ul> <li><a href="https://en.wikipedia.org/wiki/Standup_paddleboarding?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Stand Up Paddling</a></li> </ul> </li> </ul> <h2>Closing Announcements</h2> <ul> <li>Thank you for listening! Don’t forget to check out our other show, the <a href="https://feeds.fireside.fm/pythonpodcast/rss">Data Engineering Podcast</a> for the latest on modern data management.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&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’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&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> <li>Join the community in the new Zulip chat workspace at <a href="https://www.pythonpodcast.com/chat?utm_source=rss&utm_medium=rss">pythonpodcast.com/chat</a></li> </ul> <h2>Links</h2> <ul> <li><a href="https://flower.dev/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Flower</a></li> <li><a href="https://adap.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Adap</a></li> <li><a href="https://en.wikipedia.org/wiki/Hyperparameter_optimization?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Hyperparameter Optimization</a></li> <li><a href="https://en.wikipedia.org/wiki/Federated_learning?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Federated Learning</a></li> <li><a href="https://www.ox.ac.uk/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">University of Oxford</a></li> <li><a href="https://www.cam.ac.uk/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">University of Cambridge</a></li> <li><a href="https://developer.nvidia.com/buy-jetson?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Nvidia Jetson</a></li> <li><a href="https://pytorch.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyTorch</a> <ul> <li><a href="https://www.pythonpodcast.com/pytorch-deep-learning-epsiode-202/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://www.tensorflow.org/lite?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tensorflow Lite</a></li> <li><a href="https://www.tensorflow.org/federated?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tensorflow Federated</a></li> <li><a href="https://github.com/OpenMined/PySyft?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PySyft</a></li> <li><a href="https://flower.dev/conf/flower-summit-2021?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Flower Summit</a></li> <li><a href="https://github.com/google/jax?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Jax</a></li> <li><a href="https://en.wikipedia.org/wiki/Convolutional_neural_network?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CNN == Convolutional Neural Network</a></li> <li><a href="https://keras.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Keras</a></li> <li><a href="https://grpc.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">gRPC</a></li> <li><a href="https://mqtt.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">MQTT</a></li> <li><a href="https://numpy.org/doc/stable/reference/arrays.ndarray.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">NumPy NDArray</a></li> <li><a href="https://aws.amazon.com/device-farm/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">AWS Device Farm</a></li> <li><a href="https://ray.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Ray Framework</a> <ul> <li><a href="https://www.pythonpodcast.com/ray-distributed-computing-episode-258/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </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&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&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&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fflower-federated-learning-episode-314%2F&action_name=Federated+Learning+For+All+With+Flower+-+Episode+314&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />