Presentation: From Research to Production With PyTorch
This presentation is now available to view on InfoQ.com
Watch video with transcriptAbstract
PyTorch is a powerful, flexible deep learning platform that enables engineers and researchers to move quickly from research to production. Since the 1.0 release a few months ago, researchers and engineers are already seeing success in taking advantage of the new capabilities to take deep learning models from research into production. With the 1.1 release, yet more new features have been released and ecosystem projects launched.
This talk will cover some of the latest features from PyTorch including the TorchScript JIT compiler, distributed data parallel training, TensorBoard integration, new APIs, and more. We’ll also discuss some of the most exciting projects coming out of the PyTorch ecosystem like BoTorch, Ax, and PyTorch BigGraph. Finally, we’ll dig into some of the use cases and industries where people are successfully taking PyTorch models to production, from cars to cancer treatments.
What is the focus of your work today?
I work on PyTorch, which is an open source deep Learning framework developed here at Facebook. I specifically work with the team on a lot of the ways in which we enable the success of a broad open source community that spans both bleeding edge researchers as well as ML product engineers putting deep learning technology to use in products deployed today. I work a lot with trying to understand how we can improve that tool chain, serve unmet needs and unlock the ability to build things which have never been built before using this technology.
What is the motivation for this particular talk?
The focus of this talk is on the journey from research to production for deep learning models. This is a long running challenge within the field of machine learning. Many machine learning techniques originate in academia without the requirement to use those techniques in the real world. As we've been able to make major advances in the field of machine learning, particularly in deep learning, we as ML engineers have found ways to incorporate these techniques into useful real-world products.
But, historically, the tool chain for doing taking models from research to production lagged behind the ability to just train machine learning models. PyTorch as a project is invested in making this journey from research to production a lot easier.
Through this talk, I want to help people understand the philosophy that guides our approach. I’ll share some of the capabilities of PyTorch and the larger ecosystem around it. I’ll try to provide a view into where we're trying to go as a project. We do all this in a very collaborative and open manner with a bunch of different partners. From an individual contributor on GitHub to large technology partners like Google, Microsoft and Amazon who invest in building big powerful tools that supplement this whole journey from taking an idea of a deep learning model all the way out to a scaled-out deployment in production serving billions of people.
How would you describe the persona and the level of the target audience?
I think it probably ranges a little bit. I think table stakes for someone to get value out of this talk is that they're interested in how can we put machine learning technologies to use in production today. That doesn't necessarily mean that someone is a deep expert within the field of machine learning or in deep learning techniques.
I think that a lot of experienced software engineers have a good understanding that the production requirements of any system are challenging, that have real requirements and that impact how we build systems. This talk is specifically going to serve people who actually want to think about that problem. What is a given tool chain for performing machine learning all about? What does it give me, when I take it all the way out to production and own it for years and serve a wide range of use cases or have to deal with particularly demanding SLAs?
There are complicated technical questions when you want to take a model from research to production. I want to give people an introduction to what we in the PyTorch community have been building and what we're going to be building further in the future.
What do you want attendees at the talks kind of come away from it with?
I think the biggest thing that I would like someone to come away from this talk with is the ability to understand where and how to get started.
We have a lot of good resources for helping someone understand what PyTorch is. I want to make sure that in this talk we capture the whole picture of what PyTorch is. What it means if I truly want to take my idea all the way out to production and integrate it into a product.
That is a multifaceted story, depending on what the domain you work in is. Are you working in text, audio, or vision? Are you working on server side on mobile? There are a lot of different questions to think about, and I think that just because of the explosion of possible applications of deep learning, this becomes yet harder to navigate without a good guide.
That's why I want people to feel like they know where to dive into PyTorch and put it to use it in the projects they would like to give it a try.
Can you talk about some of the places where machine learning is used at Facebook or maybe more specifically where PyTorch is used at Facebook?
PyTorch is our A.I. platform and so it underpins pretty much all of our artificial intelligence work of any kind spanning from research to production. It originated in research mode and then later got married up with functionality we had built specifically to serve production and so now we use it for everything.
Some of my favorite examples off the top of my head, one that I use frequently is our translation technology. When you see a post on language that is other than that your primary language in your account, you have the ability to just hit the button and have that translated. That's pure PyTorch deep learning models. That's a great way to be able to have an immediate connection with people who you otherwise would not have the ability to effectively communicate with. I use this all the time with my in-laws who happen to live in China and post heavily in Chinese, which I do not read.
Also protecting users as it is a major area of investment for us. A whole bunch of use cases in which we try to make sure that the platform remains a place in which people engage in positive social ways with meaningful relationships they have and get value out of that.
A new and exciting application which I think you might have seen is Portal. Portal, a new video calling product, is a very interesting example of how we can use deep learning technology to ship new product experiences. It has an on-device computer vision model that detects and decides that human beings are within the frame and so it performs a zooming process so that it keeps the people who are talking always within the frame and does all of that zooming for you. So that when you as a person are just trying to have a video chat with one of your Facebook friends, your hands are freed up, your attention is freed up to just engage in a video chat. We use A.I. technology to free you from that burden of having to frame the shot. To be able to engage and have very natural conversations in a way that just wouldn't be possible without the use of deep learning technology.
Where are some of the places where you see the most advances?
All over, I think some of the things that people are most excited about within the field of deep learning right now are reinforcement learning is an emerging paradigm in which where we're able to interact in fairly different ways. They kind of get beyond like the simpler supervised learning approaches that we've done in the past where we get to have a lot of different interactions within the environment, not simply just a few pictures of like this is a cat, this is the dog.
There are some exciting challenges there as well as a lot of the work around privacy preserving ML techniques. I think that's another exciting area which we're very happy to support.
There's an exciting library coming from Andrew Trask called PySyft. It's built on a PyTorch and he's also developed a course which we're sponsoring which is around privacy preserving M.L. techniques. When you dive into the content of that course, it's amazing to see that there are so many hard problems within how to work in deep learning techniques. I think that some of the stuff I'm personally most excited about.
You mentioned it was the approach which is a very open community and it's used outside of Facebook as well as within Facebook. Is there any sort of things that may have surprised you in terms of where PyTorch is being used or how it's being used? Anything that's cropped up that maybe you didn't expect.
We're always kind of amazed whenever we find out that someone has picked up PyTorch and put it in some new place.
Some of the stories we recently talked about that I'll try to dig into a little bit deeper when I talk at QCon is that people are putting PyTorch to use in cancer research and in drug discovery, they're putting it in cars to make them safer to develop techniques for self-driving. They're putting to use in all sorts of exciting ways and in language applications as well. We do a bunch with language data inside Facebook but I'm just continually amazed at the ability of small external organizations like startups or small labs or things like that. That are able to build all sorts of powerful models that involve huge amounts of data and have very impressive results with PyTorch by just reading the docs and getting started.
Similar Talks
Scaling DB Access for Billions of Queries Per Day @PayPal
Software Engineer @PayPal
Petrica Voicu
Psychologically Safe Process Evolution in a Flat Structure
Director of Software Development @Hunter_Ind
Christopher Lucian
PID Loops and the Art of Keeping Systems Stable
Senior Principal Engineer @awscloud
Colm MacCárthaigh
Are We Really Cloud-Native?
Director of Technology @Luminis_eu
Bert Ertman
The Trouble With Learning in Complex Systems
Senior Cloud Advocate @Microsoft
Jason Hand
How Did Things Go Right? Learning More From Incidents
Site Reliability Engineering @Netflix
Ryan Kitchens
What Breaks Our Systems: A Taxonomy of Black Swans
Site Reliability Engineer @Slack, Contributor to Seeking SRE, & SRECon Steering Committee
Laura Nolan
Cultivating High-Performing Teams in Hypergrowth
Chief Scientist @n26
Patrick Kua
Inside Job: How to Build Great Teams Within a Legacy Organization?
Engineering Director @Meetup