There’s a trend toward low-code AI. Let’s discuss what this means and how you can use this trend to your advantage.
What is Low-Code AI?
Low Code allows those with less programing skills to still work on complex, AI problems. This means not being tied to a particular coding language, but instead dedicating time to the problem AI is trying to solve.
Here are two examples.
|PathPartner: used a low-code approach to determine the best machine learning algorithm for radar-based automotive applications
Read more about PathPartner’s application here
||DRASS, designing Smart Maritime Surveillance, used automation to help reduce the number of hours labelling input data by using labeler apps.
See more on DRASS using MATLAB here
These are two distinct examples of customers using a low-code approach in AI. Of course, there are many more. The rest of this post will be dedicated to the nuances around low-code and where it could help (or not) with your AI projects.
|Is it Low-Code? Is it No-Code? Depending on the conversation, low-code and no-code could mean the same thing: one sounding slightly more extreme (no-code) and perhaps boxing you in to a stricter definition. If no-code translates to "absolutely no coding" it could be limiting when a few lines of code wouldn’t hurt. Low-code is a bit more flexible: use code when it makes sense, and use less code when it makes sense to do so. I'll continue to use the term low-code, but feel free to replace low-code with no-code if that suits your project better.
The term low-code could still mean different things to different people. Here are 4 ways to think about what the definition of low-code could be to you:
1. Low-Code means Automation
Let’s take the task of video labeling: Honestly, any labeling really warrants itself to less code, and more point and click. Automating further than point and click, how about using an object detector to determine the bounding box around an object, and use that for a preliminary labeling device?
2. Low-Code means Less Code
This is personally my favorite definition. The popularity of low-code may be due (in part) to people wanting to focus on the project at hand and not get caught up in the nuances of programming.
An example of this is Experiment Manager: Keeping track of deep learning experiments is tedious. It's keeping records of parameters, saving results and being able to revisit certain ideas. This is definitely a situation in which code is less important than results.
3. Low-Code means Drag & Drop
It makes sense to manipulate layers in a low-code fashion. Removing, adding, and reconnecting layers all can - and should
- be done with a little code as possible.
Using drag and drop in this case means not having to write code in order to modify, save and train new networks.
4. Low-Code = Automatic code generation
How about doing something once and then automatically generating the code needed to do it again? You'll still get code from this method, but it's a low-typing
amount of code. One of the key components of AI is reproducibility. Being able to store and manage AI experiments means having a written down method to reproduce results. With this in mind, no
-code doesn't necessarily work here. Instead, you'd want a representation of the data/model/training in a way that others could reproduce it. Generating code in this fashion makes sense.
How does low-code differ from a traditional approach?
… and why is this a trend now? It's all about AI*: low-code delivers AI to the masses. Not everyone can or wants to program, but many more people want to be part of the AI trend. Plus, when you're learning something new, who wants to be focused on the code when your primary goal is to focus on accomplishing the new task?
*And yes, the trend of low-code extends beyond AI. But beware: if you are interested in low-code for AI, don't assume that all low-code options will be good for deep learning and machine learning. General purpose low-code tools may not have everything you need to be successful with AI. I will elaborate this at the end.
Let's say there are a handful of people who are working on cutting edge research in AI… ok more than a handful. These people are deep in the trenches of AI models. They are manipulating layers, experimenting with different learning parameters, and their job is to deliver a new approach to AI with new research. They are not concerned with delivering this approach to the masses for ease of use and exploration on day 1. These people will most likely not be interested in a lower-code approach because their job is to be as close to the details and inner workings of the model as possible.
Then there are the people who want to adopt the research and apply to their industry and application. This is the next phase for people who may not be as deep into the coding, but still want to apply the knowledge. Finally, you have people who want to interact with AI, but not touch code at all. And there are people across this entire spectrum.
There will always be a lag between the cutting-edge research and the mainstream user. Someone needs to put together a low- or no-code option for the mainstream users to feel most comfortable. In a way, the idea is to speed up the accessibility of the research by introducing low-code concepts that can quickly turn cutting edge research into reality for a larger population.
My 30 second drawing attempting to explain the correlation between cutting edge research and expert level coding. High coding ability gives you access to the most cutting edge models. If you are waiting for low-code, the latest model may not be available yet.
The more cutting edge, the more you will need to be closely tied into the code. Low-code isn’t an option for the latest research, so there will be a lag between the latest AI model and the ability to implement it in a low-code way.
How to win over the nay-sayers?
Low-code may be another fad. It’s possible. What about the engineers that actually like to code?
To those people, I say: code away... BUT wouldn't it be nice to automate some of the more tedious parts of your job? Let's revisit the automation discussion from the previous section. I don't meet a lot of people who are very excited to hand-write code for labeling. Consider this alternative: how about using an app to help with labeling objects from video? Then focus your time on the unique code that needs to be created: the new and exciting challenges.
Key concepts to keep in mind
- Understand the requirements of the project up front. If you spend a lot of time prototyping, it could be a perfect opportunity for low-code. Focus on the parts of the project that are interesting (code), repetitive (don't code) and reproducible (don't code). Keep in mind the term "efficiency" : You may love to code, but few engineers enjoy being inefficient.
- Make sure that you are using a low-code solution that incorporates the technology you need. For example: some options are traditional machine learning algorithms only, and the most up to date deep learning models won't be included. You won't find value in using an "app" that doesn’t contain the newest technology or the technology you need.
- Think about the end user. We've already discussed experiment manager above. This will help anyone who is interested in the results of the AI experiment understand and evaluate the performance without looking at lines of code. You may also have people that want to interact further with the code but not be required to manually type anything. For example: what about an option to change the AI model from a variety of options, to see the different results and interact with the models directly? With, Live tasks, you can have this option: we've written on this blog about this option in the past, using the example of object detection. Live tasks allow non-programmers the ability to manipulate code without introducing errors. This is a low-code option available in MATLAB.
Finally, MATLAB and Simulink have been in the low-code business for decades.
MATLAB has invented and reinvented ways of making your life easier with less code. MATLAB had apps before apps were a thing and will continue to have apps long after they are a thing too.
In addition, with MATLAB you don't have to worry about a general purpose, low-code solution unable to help solve your specific problems. The toolboxes cover all the specifics about each application you need. So if you are interested in low-code for AI, don't assume that all low-code options will be good for deep learning and machine learning. The developers who are working on Deep Learning Toolbox and Machine Learning Toolbox are working on specific low-code options for AI, because they understand that while many people want to incorporate AI, not everyone wants to code.
What’s your experience with low-code AI tools? What’s your definition of low-code? Leave a comment below…