Spyglass MTG Blog

Where The Heck Do I Start?

Written by William Richard Collaborated with Ian Dicker | Jul 28, 2020 2:15:00 PM

How to Approach Building an ML or AI Solution 

 

Cloud and AI = Love and Marriage 

OK so... Al Bundy didn’t exactly portray that Love and Marriage went well together, although, he always seemed happy, and a lot of people thought it was hilarious. But the cloud and AI really do make the fairytale marriage.   

In this blog, I want to talk about defining your approach and what you should be considering as you start or continue your journey to Machine Learning (ML) and Artificial Intelligence (AI) in order to be successful.   

What can AI do for me? 

Before we get into the meat of the page, let’s start with what’s in it for you. Actually, just to take the easy way out, I already ventured down this path a bit, so if you have not read our last data blog, please have a quick go and come back to this one after reading that.  

My goal in that blog was to portray the point that AI is NOT out of reach for your organization and has a multitude of use cases that will add value. In follow up to that blog, I have decided to provide a more detailed perspective focusing on how you might, or how we can for you, approach building an ML or AI solution for your organization.  

Cloud and AI = Love and Marriage 

The promise of the cloud, or at least the underlying benefit of virtualization, has been hyped by the enormous storage and processing power available at almost endless economies of scale. Side right, in comes the potential value of Artificial Intelligence and the enormous storage and processing power required at a scale that can produce that value. The ability to make decisions based on probabilities and deliver intelligent solutions built on data has been and is transforming the ways businesses operate. As partners, we help integrate technologies from all types of AI disciplines and approaches; such as building solutions with Azure Cognitive Services via computer vision or human language technologies to custom machine learning model development in order create end-to-end systems that learn from data and improve with experience. 

The economies and technologies of cloud platforms have really been the innovation that has made AI widely accessible. If you are exploring or implementing more and more applications of AI and ML, we highly suggest investigating cloud solutions such as Azure ML, Cognitive Services, or even AWS SageMaker. Even if you have a preference for another legacy AI infrastructure platform, the cloud will provide benefits and enable your initiative to move forward more efficiently.  

AI vs ML? 

“AI IS NOT STATIC – IT LEARNS AND THINKS” 

Yes, I do believe the cloud is the only place where modern AI and ML solutions should live. So, let’s talk a little about why that is when historical approaches to building software machines or AI do exist on-premises.  

Modern AI is not explicitly programmed to respond a certain way. It learns to respond that way and it’s the learning to adapt that makes modern AI different from those traditional solutions. The learning component of AI along with other modern capabilities, including Internet connectivity, the ability to access huge volumes of publicly and privately accessible domain data, to process that data quickly and efficiently, and on-demand resources leads to machines that can complement and augment human capabilities for almost every business scenario that was traditionally left to human intervention only.   

To discuss ML vs AI, ML and other techniques like deep learning (DL) represent just some of the techniques and tools used in the construction of a full AI solution. It is not uncommon for an AI solution to leverage multiple ML algorithms, or to combine ML, DL and even newer PaaS AI to produce the holistic AI solution that fits the bill for the business use-case. 

Pre-built or custom AI? 

There are different approaches to building AI solutions and we’ve even thrown a name drop on a couple popular solutions on Azure and AWS that help.  

What is the right choice? What is what? Where do we start? Will these accomplish what we need? 

There are some underlying principles to the madness of which solution or approach you should choose and when. Beginning with current skills within your organization, performance and quality expectations and an understanding of the levels of effort within each approach.   

Pre-Trained Models - Cognitive Services, SQL ML, Watson 

Pre-trained models are often known as developer first ML and AI solutions. These are easily accessible to developers via and API so they can integrate ML and AI into software solutions. However, the ease of access and widespread availability typically doesn’t come without caveats. These are often taught on many domains and thus can have accuracy issues depending on your use case; they can lead to a more expensive solutions as your charged per API call; security is often a concern for publicly available services, and model explainability is essentially impossible as they’re a “black box”. The good news is that as they continue to mature, they are more often becoming configurable to your domain, performance and security is improving and they’re easy to get started with.  

 

 

 

 

 

AI Assisted Modeling – Azure Auto ML, DataRobot 

AI assisted modeling is really becoming an important evolution in organizations capability to develop intelligent solutions with ease. Like the pre-trained model avenue these are easily accessible to developers via a familiar SDK or even low-no code user interfaces. This gives data science savvy developers, or Citizen Data Scientists, the ability to train and leverage custom models with minimal effort that have the potential to do things that re-trained models don’t and that may perform better overall. Additionally, these models can be explained and are more of an “open box” than pre-trained solutions.  

The trick here is that the engineer should have a good understanding around the fundamentals of ML. i.e. When is it a classification vs regression problem, or what you’re looking at when you receive an AUC, ROC, TPR, etc.? Likewise, your organization must have the processing power, quantity, quality and relevant data in order to train the models effectively and make predications. The cloud provides the processing capabilities but if you don’t have the data to train a model this path won’t be of any use and you’ll want to fall back to pre-trained models.   

Custom Modeling – Azure ML Services, SciKit Learn, SparkML 

Custom modeling is really moving into another level of maturity and potential value. This is not where we want or see most organizations starting their journey. More often there are plenty of pre-trained solutions to get your feet wet, realize some quick wins and really start to generate interest and buy-in. Following that you can build a ton of value using AI assisted modeling techniques typically before considering custom modeling.  

When do you move on? Maybe you already have a substantial investment in a supporting skillset such as a data scientist team working with Spark, R or Python or there are scenarios that don’t fit well into AI assisted modeling such as clustering or recommenders. Other potential reasons could be scale. For example, Spark platforms are meant for big data processing and SparkML could perform significantly better than the AI assisted approaches. Spark can handle the variety and velocity of your data and integrate with modeling services such as MLFlow and Azure ML Services.  

In this case, you just need a supporting team that has even more skill than those leveraging AI assisted modeling. Beyond what is expected with AI assisted skills and resources, your team will need to understand the many algorithms, when and how to use which, they need to have in depth understanding of the many programming packages available to build those models, how to package and deploy those models, and they should still be using a solution like MLFlow to track and log their experiments.     

Custom Algorithms – Where’s your dedicated PhD. Data Scientist team at? 

Personally, I have never built a custom algorithm. Not to say I don’t love math but the farthest I have taken this was to build an equation that provided “ratings” for products based on some inferred properties in order to train a custom product recommendation model. This was a custom math equation, but I can’t say it was machine learning.  

If you’re thinking you need to build custom algorithms, I would urge you to think twice if you haven’t explored all the options with customer modeling, pre trained models and AI assisted modeling. If you have or you have a very specific need (patented medical device? NASA? NSA?) then building custom algorithms is no small task and will likely cost a fortune for a very skilled team of PhD. Statisticians. Additionally, this comes with the burden of maintaining that team in order to iterate and improve those algorithms over time. If you have the need and budget this can really be a value add but we caution that most organizations don’t ‘need’ to go down this road and often fail to realize any ROI.      

 

 

 

 

 

 

 

Understand the effort 

We discussed the effort in a general context through each of the approaches to integrated ML and AI models into solutions. However, there is something that is equally as important to consider. 

It is often said that 80% of the time allocated to model creation is spent just in the Prepare Data phase (This is your Data Engineering Team) alone. This is likely the most overlooked aspect of adopting and strategy towards intelligent solutions. Many Data Scientists and few Data Engineers shapes an Olympic Ping Pong team of Data Scientists. Data Scientists are more efficient at building value if they have strong support from quality Data Engineers. In our experience, 3:1 Engineers to Scientists is not a bad ratio but you could go further than this is depending on how complex the engineering requirements are.  

And Finally, the Architects. In my definition of an Architect, they are the person that can put it all together and guide each role (engineer and scientist) towards building solutions that are worth the time, efficient and can be deployed into a PRODUCTION environment. Architects should understand each skill base through the process as well as the technical architecture knowledge to manage that process. You can’t pass a multi TB hard drive around via snail mail and build models locally in RStudio forever. You need architects that help the team move into new technologies, more efficient toolsets and deployment methodologies. 

In short, it does take a team, not just a scientist or engineer or architect. Beyond that it takes a well-balanced team with more engineers than scientists and a skillfully rounded architect or two.   

Still lost?  

Partnering with an experienced firm is often lost along the way in the search for skilled data scientists. Many organizations do successfully find smart and skilled scientists, but that team often fails to provide the return expected. Why is that? 

That’s not their fault! End-to-end AI solutions can be complicated, and you may not have the full team needed in supporting them. Partnering with an experienced firm that can provide support in all things AI and let them help build your AI practice internally can be extremely beneficial in your journey….and the earlier the better. If our services stopped at helping you build the solution, what would your internal teams do when something goes wrong? Teach you how to fish as they say!  

Or, if you don’t want any part of that noise, Yes, partners can do it all for you. They’ll work with you through the journey as a trusted partner in aspects like the following: 

  1. Envision AI:  We’ll help your organization see a road map where AI becomes more and more a part of their daily operations and the benefits this brings.  
  1. Implement AI: We’ll help our customers implement the AI solution by integrating existing, pre-built AI APIs or developing custom AI solutions.  
  1. Deploy AI: We’ll help you implement your AI solution into production.  
  1. Manage AI: We’ll help you monitor and iterate on your AI applications. Acting on data drift and version control.  

Hopefully you found this strategic blog post useful. Please don’t feel overwhelmed, as I started with, I have another post that tries to portray how NOT out of reach AI is for your organization. This post is just to outline some of our thoughts behind being successful. Contact us today to discuss further!