From the course: Full-Stack Deep Learning with Python
Introducing full-stack deep learning - Python Tutorial
From the course: Full-Stack Deep Learning with Python
Introducing full-stack deep learning
- [Instructor] In the earlier movie, we've already discussed a little bit about what Full Stack Deep Learning is all about. In this movie, I'll just go a little bit deeper. Full Stack Deep Learning covers the entire lifecycle of a deep learning model, right from its conceptualization, its prototyping, its development, all the way through to deployment and maintenance. The steps involved here are iterative in nature, which means you might come to a step such as model training and debugging, realize that your project planning and setup maybe wasn't correct, you need to change the technologies that you're using. You'd go back to a previous step and iterate and improve upon the model. The very first step is, of course, figuring out what you're going to build, that is in the project planning and setup phase. This is, of course, an entire complex process of its own, and I've tried to break this down into several substeps. You'll first define the goals of the project. What is it that you are trying to achieve? You'll then use metrics that you can use to evaluate whether the project was a success or failure. Let's say you're building a recommendation systems in order to upsell some of the products on your e-commerce site. Well, what is the uptick that you expect from customers because of the system? You need to choose your metrics wisely so that you know whether the model that you're building is actually worth it. You'll need to evaluate your baselines. What is the current uptake in customer sales because of the existing recommendation system, or do you not have one at all? You'll need to figure out the code base, and figure out what technologies you're going to use across the entire model development lifecycle. What deep learning framework you're going to be using, what programming language, what cloud platform or environment will you use to train your model? Where are you going to deploy and serve the model? All of that thought process, comes here. Now, a very important part of project planning and setup is to determine the impact of your project. A deep learning project may not be worth taking on unless it's impactful. Is the investment in this project going to be worth it? Is the predictions made by our model significantly going to improve business performance? Can you automate the entire complicated software pipeline in order to improve the product for users? These are some of the details you should consider for impact. The next thing you need to assess is the feasibility of your project. Deep learning projects require a lot of investment in terms of infrastructure, resources, data, and so much more. You need to ensure that all of the effort that you're putting in will result in a feasible maintainable model. Machine learning costs are often non-linear in nature, which means if you need a very high level of accuracy in your predictions, you might find that the investment is very, very high. The project costs scales non-linearly for greater accuracy requirements in predictions. These are the trade offs you need to think of in the project planning and setup phase. Also, machine learning models are probabilistic and not deterministic, and you should think to see whether probabilistic predictions are okay for whatever product it is that you're trying to build. Once you've figured out the basics of your deep learning project, that is project planning and setup is complete, you'll move on to data collection and labeling. This is where you get access to the data that you need to train your model. This is where you'll figure out the strategy for collecting the various data, where are your data located? Is the data already available in the organization, or do you need to look to external sources? You need to clearly state the data requirements of your project, identify data sources, ensure data quality in terms of accuracy and relevance. Make sure that your data is private and protected, and then set up the ingestion pipeline for your data. Depending on the kind of model that you choose to build, you may need to label your data. Data labeling is where you specify categories or classes for your prediction tasks. Now, data labeling is often an onerous and manual process. If you're doing manual labeling, you need to think about what the annotation guidelines are and you need to have processes in place for quality control of the labels, or there are several data labeling tools available that you can use to automate the labeling process. Once you have label data, you're ready to move on to model training and debugging. Model training and debugging is an iterative process, and this is where you'd follow the steps of the machine learning workflow. You'll start off with a simple model that you implement and debug. You then evaluate the model to see how it performs in a real world scenario. You may tune the models hyper parameters to improve its performance on your data. You may rearchitect the model, use different kinds of data, and you may tweak the model in multiple ways before you get a model that you're satisfied with. It's in the model training and debugging phase where you'll set up your ML Ops workflows. And finally, when you're happy with the model that you'll have, you'll deploy it to production. You'll test it and maintain it in production, and this maintenance might require constant retraining of your model on new data as it becomes available. Again, there are several substeps in this particular step of the Full Stack Deep Learning pipeline. You may first set up a small pilot in production to see how your model performs. Maybe you'll roll out your recommendations engine to only a subset of users of your e-commerce site. You'll then ask to see whether the new recommendation systems is an improvement over the old one. Are more customers buying products that they see recommended? If yes, you might go for full deployment where you'll launch the system for your entire user base, and then you'll constantly be monitoring and tracking the system to see, that it performs the way that you expect over the course of its lifetime.
Practice while you learn with exercise files
Download the files the instructor uses to teach the course. Follow along and learn by watching, listening and practicing.