From Machine Learning Research to Production with PyTorch 1.0
PyTorch has come a long way: from an experimental, pure Python interface to the revered Torch scientific computing library; to an up and coming machine learning framework used by a handful of hackers and researchers; to an established, respected and beloved tool for serious scientific research enabling hundreds of publications each year.
Today, PyTorch is the preferred platform for machine learning, deep learning, probabilistic programming and other scientific computing fields at many industrial as well as academic research labs around the world. One reason for this is that from its conception, PyTorch has had a strong focus on flexibility, openness and hackability, aiming to minimize the latency in going from a high level, abstract, theoretical formulation of some novel research idea, to a working PyTorch program implementing and proving or disproving this idea. This has allowed reseachers to explore wilder, bolder ideas and iterate on ideas more swiftly.
To further enable this, PyTorch is not only flexible, but also fast. Its high performance tensor library comes with strong GPU and CPU acceleration on all major operating systems including Linux, MacOS and Windows, and its distributed computing interface even allows parallelizing machine learning models across many CPUs and GPUs on a single machine, as well as on many machines in a cluster environment. However, the most important pillar that gives PyTorch strength and support is its commitment to open source software and development. PyTorch has been open source from the very beginning, and what it offers today is not the product of any one company or group, but the result of many individual contributions by machine learning researchers and enthusiasts around the world, chipping in to the goal of building a scientific computing platform that removes all constraints on research, and allows anyone to learn about, experiment with and build applications using machine learning. The first portion of this talk will dive into detail about how PyTorch came to be and its offering for research, showing how its gentle learning curve allows anyone to pick up machine learning and implement novel ideas, and what open source applications researchers at Facebook and other labs have built and released for everyone to see and use.
While PyTorch’s flexibility and hackability has lead to its great popularity among researchers, there are clearly environments in which a lack of constraints can sometimes be harmful. One such environment is production systems, where constraints equal stability, stability equals reliability, and reliability equals user satisfaction. This is an area in which PyTorch has traditionally been weaker than its alternatives. However, in recent months the PyTorch team has invested great efforts to address this concern, and now provides new tools to smoothen the path from flexible, unconstrained research to stable, maintainable production systems. For this, PyTorch now ships with an advanced just-in-time (JIT) compiler, a static graph abstraction as well as a python-less, pure C++ inference mode that can run on high performance production servers at large scale. The second part of this talk will dive deep into this component of the PyTorch ecosystem. We will also showcase how PyTorch is used in production at Facebook today, enabling large scale machine learning applications serving trillions of predictions across the family of Facebook platforms.
While the talk will touch upon exciting and cutting edge developments from the machine learning ecosystem, it will not expect any prior exposure to machine learning. Instead, it will showcase how anyone can develop machine learning applications for their personal side projects or the products they develop at work using PyTorch, and how the tools it provides enable a smooth transition from flexible research to reliable production environments.