Introduction to Machine Learning for Developers at F8 2019

PyTorch · Beginner ·📐 ML Fundamentals ·6y ago

Key Takeaways

Covers the basics of machine learning and popular developer tools and workflows from Facebook

Full Transcript

all right everyone thanks for joining my name is Bruce Lin and I support developer parka team here at Facebook in our main focus on the team is to make sure that you the developers have access to the tools the educational resources and the communities that you need to build with latest technologies and so one area that's come up a lot has been machine learning in machine learning development so as a result I think at f8 this year we've got 13 sessions covering AI everything from how Facebook builds and deploys machine learning systems to new open source tools that you can go check out today so for anyone that's new to machine learning development I wanted to spend the next 15 minutes really really quickly going through some of the common terminology and the common concepts you'll come across and also take a look at the developer workflow and some developer tools that you can start using now so the hope is to freighting some quick context for understanding the sessions happening later today and tomorrow so you can better understand how they can be relevant to your work so let start with some terminology so AI or artificial intelligence refers the ability for a machine to complete tasks that involve human level intelligence as well as or better than a human can so when you think about popular culture and how are they reference AI that's usually referencing a GI or artificial general intelligence so this refers to a machine that can perform any intellectual task as well as a human can so you think of your favorite droid from a galaxy far far away this is usually a GI in contrast to that most of what we'll talk about in this session as well as today and tomorrow and a lot of the work that's being done now is still in narrow AI which is the ability for machine to perform a specific task so that could be understanding what's in an image or it could be translating languages or it could be making business predictions for your company so machine learning and artificial intelligence are two terms are used pretty interchangeably I know I've been using them interchangeably for the last minute or so but it's actually not the same thing so machine learning is a subfield of AI that involves giving a machine the ability to perform tasks without being explicitly programmed to do so so you can imagine in situations it can be really tedious or difficult or sometimes even impossible to try and code every single rule that a machine would need in order to successfully perform a task we can use machine learning instead and there's also other subfields of AI but we'll focus on machine learning all right so deep learning so deep learning is a type of machine learning that uses artificial neural networks that can learn the associations between inputs and outputs and deep learning has actually gotten really popular and driven a lot of the advances in AI in the past few years and this is largely due to researchers and engineers applying existing and new techniques to larger and larger datasets which allows us to train models more accurately and also the use of more more higher performance hardware so especially the use of GPUs to perform all the computations that we need for machine learning so mention that deep learning uses artificial neural networks so artificial neural networks our computing system is made up of interconnected nodes and when we talk about deep learning we're referring to computing systems that use many many layers of these interconnected nodes so the node is the basic unit of a neural network where computations are performed taking a deeper look at that we can understand notes as a linear transformation enclosed in a non-linear transformation so in the linear transformation the input data comes in and you multiply it by a number or a weight and then the addition of a bias or a constant so you see the term weights and biases this is what it's referring to so after linear transformation we apply a nonlinear transformation or an activation function and and this is what allows us to go from inputs and outputs that don't always have a linear relationship and in a deep neural network the outputs of this linear nonlinear transformation then become the inputs to the next layer of these nodes so mathematically we can write that out as Y or the output equals function of the weighted sum of the inputs and the addition of a bias so the main idea here is that through these simple or relatively simple mathematical computations and a lot of these computations deep-learning allows us to model relationship and oftentimes complex relationships between inputs and outputs that otherwise would be very far apart so that could be between an image in a sense it's describing what's happening in that image so before we move on from some of the common terminology I wanna quickly touch on the learning process so how does a machine learn this happens through the model training process so in model training the first step is the forward pass so at this point the neural network is activated and data flows through the neural network in the four direction and we compute the output so at this point in time the weights and biases are still kind of randomly assigned we don't actually know the right parameters they're going to result in the correct output to be computed we then compared the computed output with the ground truth or our desired output and we look at the total error and then that error is propagated backwards through the neural network to adjust the parameters to more accurately calculate the correct output and so that's done through this concept of back propagation and lastly gradient descent is a commonly used optimization algorithm that helps us in adjusting parameters to minimize that total error between the computed output and the desired output it allows us to understand how the error changes in a response to a change in the parameter so it's a super super basic and quick explanation of supervised learning but there's also other learning techniques such as unsupervised learning and reinforcement learning all right so switching gears a bit I want to talk about how we apply AI at Facebook since it's not always something that's super obvious as you're interacting with the products and experiences on facebook so you probably use recommendations before so this is one experience that you probably familiar with that uses machine learning to power that experience we also have a immersive new video device video calling device that we launched last year called portal and portal has this really cool feature called smart camera and smart camera keeps the camera as it sounds focused on what's happening so whether you're talking or someone else is talking or just want to make sure that your whole family is fits the frame and you're not sort of cutting people out that's where smart camera comes in and that's powered by machine learning these are examples of how you can use machine learning to build experiences that bring people that much closer together even if they can't physically be near each other and lastly for completely new experiences like augmented reality or virtual reality we also use machine learning to power some of those experiences there so example here's oculus lip sync so the oculus lip sync your avatar in a virtual environment can sync the lip movements to what you're saying in real time to make it that much more natural when you're interacting alright so let's talk about some of the developer tools that you can use and the developer workflow involved to build some of these experiences so thanks to the proliferation of a lot of different developer tools and a lot more accessible developer tools it's not easier for developers with varying levels of experience or familiarity to get started with machine learning so we had a bucket the steps into kind of four rough steps the first one would be determining your approach so this is a point in time where you should really spend the right amount of time figuring out how machine learning is going to solve the problem that you have and how you're gonna get that data what you're gonna do with it and ultimate where you can do it the output of that machine learning model to solve whatever you're looking to do so once you've figured out your plan of attack you don't need to prepare that data this is another step that could also take a bit of time depending on and what sea state your data is in at this point you want to prepare it and it's a pre-processing generally get your data ready to be used by your machine learning model and then you can move into the fun part of building and training your model which we talked about a little bit earlier and once you've evaluate your model and you feel like you have a good proven model that's ready to go you'll transition it to a production environment where you can deploy that model and use it in your end application and then you also need to scale that up depending on your needs so obviously these steps require some sort of hardware and software stack so we're look at this again at a at a high level we can roughly bucket it on the left side you have your data science libraries so these are the steps or the tools that you're going to use to clean and pre process and take your data again get it ready for your machine learning and then the middle column you have your various components for building training and valuing your net your neural network so at the bottom you have hardware so this is your actual CPUs and GPUs that you're going to use to perform those calculations in your in your model and then a little bit above that you have your frameworks so if you've heard of frameworks like pi torch pack torch and other frameworks reduce a lot of the cognitive overhead involved in building and training your models so you can focus more on the problem that you're trying to solve and you'll hear more about pipe torch tomorrow in a couple different talks and then above the frameworks there are many libraries that can help support and accelerate your development so this could be in computer vision for example where you can use that computer you can use the computer vision library which gives you a lot of the components needed so that you can more quickly get started and then on the right side you have your deployment platforms we mentioned once you have that model ready to go don't need a transition to some sort of production environment so you can serve that model and use in your end application so know this looks like a lot potentially but luckily there's actually a lot of different open-source tools that you can cobble together and create your own stack but there's also many managed platforms and services and api's out there that you can use so that you can get started more easily so if we were to look at it in terms of level of abstraction for how you might interact with these different tools starting from low to high at the lower level of distraction we have framework so mention PI torch earlier and so this gives you kind of both ease of use as well as the fine level of granularity and the ability to customize and work with a lot of different concepts and techniques and architectures that you can kind of go and explore so this is where a lot of our researchers at Facebook will use this type of tool on the other side of things though if you're really just looking to incorporate kind of proven standard machine learning capabilities into your an application there are domain API so you can use there are more or less plug-and-play right so you can if it's a vision API send images and outcomes the pacification along with confidence levels and kind of in between these two levels of abstraction you have managed platforms as well as fine tunable api's so fine tunable API is much like the domain API as we just talked about basically allow you to get that kind of plug-and-play sort of ease of use but allow you to customize it on specific images for if it's a vision API for example so if you're doing certain medical imaging you might want to fine-tune that model to be more accurate for your type of needs and then the manage platforms you can think of this as sort of a fabric that goes across a number of different components that these assemble all the various tools that you might need it makes it a little bit easier for you to work across them so these are just some of the ways you can get started I encourage you to kind of explore and check out what makes sense for you based on what your what your machine learning needs are there's also a couple other tools that are resources that I wanted to point out really quickly before we wrap up so as you know Facebook does a lot of our AI work in the open so our researchers regularly publish papers that you can go check out they'll publish associated codes you can go explore there and we also open-source a lot of various tools that you'll also hear about today and tomorrow that you can use to get started in machine learning and also with data science and so if you check out Facebook AI there's a number of open source tools there that you can go and use immediately if you're interested in starting to play with frameworks and exploring what that looks like I encourage you to check out pipe torch org for the PI torch framework there's actually tutorials on there that you can open up right on your browser in an interactive notebook environment and start to see how things work without any setup and if you're looking for educational resources obviously this was a super short talk so as you want to kind of dig in more we work with a lot of companies like Udacity to provide both free courses that you can go check out just to kind of get a taste for what it what machine learning develops all about but there's also full on the Android agrees too and allow these are actually taught on pipe tours we kind of continue education in a way that is using the same sort of toolset and there's also really great educators in the community as well so we work with folks like fast I I so fast AI has both a software library that makes it easier to work with frameworks like pi torch as well as open courses that you can go and check out so that's it so hopefully this gives you some context for a better understanding some of the other AI sessions they're going to have at f/8 as I mentioned there's a number of them both today and tomorrow and so encourage you to check them out and see how they can be relevant to your work all right thanks again everyone and have a great [Applause]

Original Description

Advances in machine learning, along with more user-friendly tools and services, have helped global developers build AI capabilities that enhance existing products, power new experiences, and deliver real business value. We'll cover the basics of machine learning and walk through popular developer tools and workflows from Facebook and the larger community.
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from PyTorch · PyTorch · 9 of 60

1 What is PyTorch?
What is PyTorch?
PyTorch
2 PyTorch Tutorial: A Quick Preview
PyTorch Tutorial: A Quick Preview
PyTorch
3 PyTorch Summer Hackathon 2019
PyTorch Summer Hackathon 2019
PyTorch
4 Tips and Tricks on Hacking with PyTorch: A Quick Tutorial by Brad Heintz
Tips and Tricks on Hacking with PyTorch: A Quick Tutorial by Brad Heintz
PyTorch
5 PyTorch 1.2 and PyTorch Hub: A Quick Introduction by Soumith Chintala and Ailing Zhang
PyTorch 1.2 and PyTorch Hub: A Quick Introduction by Soumith Chintala and Ailing Zhang
PyTorch
6 Torchtext 0.4 with Supervised Learning Datasets: A Quick Introduction by George Zhang
Torchtext 0.4 with Supervised Learning Datasets: A Quick Introduction by George Zhang
PyTorch
7 Torchaudio 0.3 with Kaldi Compatibility, New Transforms: A Quick Introduction by Jason Lian
Torchaudio 0.3 with Kaldi Compatibility, New Transforms: A Quick Introduction by Jason Lian
PyTorch
8 Torchvision 0.4 with Support for Video: A Quick Introduction by Francisco Massa
Torchvision 0.4 with Support for Video: A Quick Introduction by Francisco Massa
PyTorch
Introduction to Machine Learning for Developers at F8 2019
Introduction to Machine Learning for Developers at F8 2019
PyTorch
10 Powered by PyTorch at F8 2019
Powered by PyTorch at F8 2019
PyTorch
11 Developing and Scaling AI Experiences at Facebook with PyTorch at F8 2019
Developing and Scaling AI Experiences at Facebook with PyTorch at F8 2019
PyTorch
12 New Approaches to Image and Video Reconstruction Using Deep Learning at Facebook at F8 2019
New Approaches to Image and Video Reconstruction Using Deep Learning at Facebook at F8 2019
PyTorch
13 PyTorch Developer Conference 2018: Recap
PyTorch Developer Conference 2018: Recap
PyTorch
14 PyTorch Developer Conference 2018: Keynote & Deep Dive
PyTorch Developer Conference 2018: Keynote & Deep Dive
PyTorch
15 PyTorch Developer Conference 2018: Production & Research Sessions
PyTorch Developer Conference 2018: Production & Research Sessions
PyTorch
16 PyTorch Developer Conference 2018: Cloud & Academia Sessions
PyTorch Developer Conference 2018: Cloud & Academia Sessions
PyTorch
17 PyTorch Developer Conference 2018: Enterprise, Education, & Future of AI Panel
PyTorch Developer Conference 2018: Enterprise, Education, & Future of AI Panel
PyTorch
18 PyTorch Developer Conference 2019 | Full Livestream
PyTorch Developer Conference 2019 | Full Livestream
PyTorch
19 PyTorch Developer Conference 2019: Recap
PyTorch Developer Conference 2019: Recap
PyTorch
20 PyTorch Developer Conference Keynote - Mike Schroepfer
PyTorch Developer Conference Keynote - Mike Schroepfer
PyTorch
21 What’s new in PyTorch 1.3 - Lin Qiao
What’s new in PyTorch 1.3 - Lin Qiao
PyTorch
22 PyTorch Front-End Features: Named Tensors and Type Promotion - Gregory Chanan
PyTorch Front-End Features: Named Tensors and Type Promotion - Gregory Chanan
PyTorch
23 Research to Production: PyTorch JIT/TorchScript Updates - Michael Suo
Research to Production: PyTorch JIT/TorchScript Updates - Michael Suo
PyTorch
24 Quantization - Dmytro Dzhulgakov
Quantization - Dmytro Dzhulgakov
PyTorch
25 PyTorch ONNX Export Support - Lara Haidar, Microsoft
PyTorch ONNX Export Support - Lara Haidar, Microsoft
PyTorch
26 Apex -  Michael Carilli, NVIDIA
Apex - Michael Carilli, NVIDIA
PyTorch
27 Dataloader Design for PyTorch - Tongzhou Wang, MIT
Dataloader Design for PyTorch - Tongzhou Wang, MIT
PyTorch
28 Linear Algebra in PyTorch - Vishwak Srinivasan, CMU
Linear Algebra in PyTorch - Vishwak Srinivasan, CMU
PyTorch
29 PyTorch Mobile - David Reiss
PyTorch Mobile - David Reiss
PyTorch
30 Model Interpretability with Captum - Narine Kokhilkyan
Model Interpretability with Captum - Narine Kokhilkyan
PyTorch
31 Detectron2 - Next Gen Object Detection Library - Yuxin Wu
Detectron2 - Next Gen Object Detection Library - Yuxin Wu
PyTorch
32 Speech Extensions to Fairseq - Dmytro Okhonko
Speech Extensions to Fairseq - Dmytro Okhonko
PyTorch
33 PyTorch on Google Cloud TPUs - Google, Salesforce, Facebook
PyTorch on Google Cloud TPUs - Google, Salesforce, Facebook
PyTorch
34 PyTorch Summer Hackathon Winners - Joe Spisak, Sebastien Arnold, Tristan Deleu
PyTorch Summer Hackathon Winners - Joe Spisak, Sebastien Arnold, Tristan Deleu
PyTorch
35 PyTorch in Robotics - Yisong Yue, Caltech
PyTorch in Robotics - Yisong Yue, Caltech
PyTorch
36 StanfordNLP - Yuhao Zhang, Stanford
StanfordNLP - Yuhao Zhang, Stanford
PyTorch
37 Sotabench for Reproducible Research - Robert Stojnic, Papers with Code
Sotabench for Reproducible Research - Robert Stojnic, Papers with Code
PyTorch
38 Collaborative Natural Language Inference - Sasha Rush, Cornell
Collaborative Natural Language Inference - Sasha Rush, Cornell
PyTorch
39 Privacy Preserving AI - Andrew Trask, OpenMined
Privacy Preserving AI - Andrew Trask, OpenMined
PyTorch
40 CrypTen - Laurens van der Maaten
CrypTen - Laurens van der Maaten
PyTorch
41 PyTorch at Uber - Sidney Zhang, Uber
PyTorch at Uber - Sidney Zhang, Uber
PyTorch
42 PyTorch at Tesla - Andrej Karpathy, Tesla
PyTorch at Tesla - Andrej Karpathy, Tesla
PyTorch
43 PyTorch at Microsoft - Saurabh Tiwary, Microsoft
PyTorch at Microsoft - Saurabh Tiwary, Microsoft
PyTorch
44 PyTorch at Dolby Labs - Vivek Kumar, Dolby Labs
PyTorch at Dolby Labs - Vivek Kumar, Dolby Labs
PyTorch
45 PyTorch Developer Conference 2019 - Panel Discussion
PyTorch Developer Conference 2019 - Panel Discussion
PyTorch
46 Using deep learning and PyTorch to power next gen aircraft at Caltech
Using deep learning and PyTorch to power next gen aircraft at Caltech
PyTorch
47 Named Tensors, Model Quantization, and the Latest PyTorch Features - Part 1
Named Tensors, Model Quantization, and the Latest PyTorch Features - Part 1
PyTorch
48 TorchScript and PyTorch JIT | Deep Dive
TorchScript and PyTorch JIT | Deep Dive
PyTorch
49 Announcing the PyTorch Global Summer Hackathon 2020
Announcing the PyTorch Global Summer Hackathon 2020
PyTorch
50 Opening Up the Black Box: Model Understanding with Captum and PyTorch
Opening Up the Black Box: Model Understanding with Captum and PyTorch
PyTorch
51 PyTorch Mobile Runtime for Android
PyTorch Mobile Runtime for Android
PyTorch
52 Torchvision in 5 minutes
Torchvision in 5 minutes
PyTorch
53 3D Deep Learning with PyTorch3D
3D Deep Learning with PyTorch3D
PyTorch
54 What is Torchtext?
What is Torchtext?
PyTorch
55 TorchAudio: A Quick Intro
TorchAudio: A Quick Intro
PyTorch
56 PyTorch Mobile Runtime for iOS
PyTorch Mobile Runtime for iOS
PyTorch
57 PySlowFast: Deep learning with Video
PySlowFast: Deep learning with Video
PyTorch
58 PyTorch Pruning | How it's Made by Michela Paganini
PyTorch Pruning | How it's Made by Michela Paganini
PyTorch
59 Measuring Fairness in Machine Learning Systems
Measuring Fairness in Machine Learning Systems
PyTorch
60 PyTorch for Hackathons
PyTorch for Hackathons
PyTorch

Related AI Lessons

Up next
Learn Deep Learning by Hand (Beginner's Guide - Part 1)
Thu Vu
Watch →