Edge Impulse is planning to accelerate that knowledge base and enable the first generation of tinyML-enabled products.
A recent announcement from AI accelerator company Eta Compute detailed the company’s new AI sensor development board. The board uses Eta’s ultra-low power ECM3532 chip. But hold on, the announcement also mentions something else: Eta Compute is hosting an online workshop with Edge Impulse on July 14.
The more I report on the tinyML movement — the small but significant industry segment applying machine learning algorithms small enough to fit onto a microcontroller — the more the name Edge Impulse keeps coming up. That must mean it’s time to find out who is behind Edge Impulse, and what exactly the company does.
Edge Impulse co-founder and CEO Zach Shelby explained to me over the phone that Edge Impulse has developed an end-to-end developer platform for edge ML.
“In software development, the code is the [most important] thing, whereas the data set is the equivalent of the code in the ML world. You have to take really careful care of it,” he said. “In the software world, we have software architecture. When you apply the code to the architecture, you hopefully get something that works. In the ML world, the algorithms are kind of like the architecture. When you apply the data sets to the algorithms, you get something that does something.”
Edge Impulse aims to help engineers with this whole process. A lot of the company’s tooling is focused on manipulation of the datasets: visualization, analysis, moving datasets around, adding to them. There is also a library of many algorithms, all extensible and customizable, and the process of applying the data to the algorithms is automated. This includes infrastructure for training algorithms and visualizing what is happening. Training and deployment are also supported, with deployment focusing on microcontrollers and low-end CPUs.
Standard outputs from the Edge Impulse platform are in C++ or WebAssembly and can be built on “just about anything with enough math capability.” This should hit about 95% of the parts out there, Shelby said, including Eta Compute’s more specialized hardware.
“It can be really hard to start using [an Eta Compute] kind of part, as an embedded developer… and doing ML is even harder,” Shelby said. “We try to take that pain away. We have a nice drag and drop binary that goes on [Eta Compute] boards. It starts collecting sensor data right away, into our system. And then when it’s time to deploy the ML algorithm, we have a deployment option that builds a library for the Eta Compute target that will run right on the device.”
The company is starting to work with other providers of specialized AI accelerator chips, Shelby said, aiming to have a longer lineup by this autumn.
“Silicon vendors in general are really good at creating a sophisticated piece of silicon and having low-level drivers, software drivers for the hardware, but very few silicon vendors are good at high-level software, and the cloud services needed,” he said.
Edge Impulse is already working with Arm to ensure that future designs using the Arm Ethos accelerator family will work on Edge Impulse’s platform out of the box.
In fact, Edge Impulse co-founders Shelby and Jan Jongboom both came from Arm. Shelby’s previous startup, Sensinode, was acquired by Arm in 2013. Sensinode provided IoT systems from low power mesh networking to the Internet gateway systems, and like Edge Impulse, was an end-to-end provider which covered everything from embedded devices up to telco infrastructure.
Seeing Arm’s microcontrollers gain compute power so quickly inspired the creation of Edge Impulse, Shelby said.
“We noticed that we had 40 million math operations per second on hand a few years ago, and our users were sending temperature data once an hour – the microcontroller was a massively under-utilized asset,” he said. “We had all this amazingly capable hardware and it wasn’t being used for everything it could be.”
This inspired machine learning projects on the microcontroller that were eventually folded into Google’s TensorFlow Micro project, but marked the start of Shelby and Jongboom’s involvement with the tinyML movement. Later realizing that to use existing ML tooling, one had to be “a data science expert, a machine learning algorithm expert, an embedded expert and a compiler expert all in one,” the co-founders identified an opportunity to build a toolchain specifically for tinyML. This toolchain had to be able to scale as machine learning becomes commonplace for millions of embedded developers. The problem is compounded when we consider that most tinyML applications today are using specialized data, typically their own proprietary data sets, which need to be created and managed.
“We wanted to solve the problems that normal developers and engineers working on edge compute and applying machine learning are going to face. How can we overcome those? How can we make this a successful process to make use of ML? And then how can we make sure they can deploy it in their real jobs in the industry?” Shelby said.
Edge Impulse operates a typical software as a service (SaaS) business model, with a generous free tier for individual engineers which is free up to and including production. Larger enterprises will need a subscription, which includes features for collaboration between teams of engineers, working with bigger datasets, model versioning and security.
“Our goal is to have millions of free tier developers on the platform over the next few years,” Shelby said.
This will involve a certain amount of evangelising, to not just developers and engineers but also to their managers about what is possible with tinyML. Millions of people in the industry need to be educated about what tinyML can do using microcontrollers (image processing: yes, real time video processing: no).
“tinyML as a technology, we’ve come a huge way. Already last year, we finished the technology to the point where it’s commercially usable, but industry’s not there yet. There isn’t the common understanding,” Shelby said.
People need a better understanding of the real applications they can solve and what the development process looks like. They also need to appreciate that ML requires different data from IoT applications.
“IoT data is very different, it’s sampled, very long period data,” Shelby said. “That’s not what we need for machine learning. We need full, raw, high-resolution data, small samples with a very good ground truth.”
In other words, ML datasets need labelling with what happened when that data was collected. Was there a problem with the machine, or was that normal operation? Did that elderly person fall down? This is different from IoT data which is typically is long time sequences of unlabelled data.
Education about machine learning at this scale is coming from Google, Arm and others, but there is a long way to go before a good knowledge of ML on microcontrollers is common in the embedded industry. Edge Impulse is planning to accelerate that knowledge base and enable the first generation of tinyML-enabled products.