Why Use FullMetalUpdate for your deep learning model update?
FullMetalUpdate is a full open-source solution for delivering OTA updates to your connected, mobile, and smart devices all across your IoT platform. FMU offers users the freedom to manage their OTA updates in house with scalability, transparency, and costs savings, too.
FullMetalUpdate has six key features that separate it from alternative update options. To begin with, it is open-source, offering the reassuring transparency that OSS projects carry. It offers delta updates meaning that only changes to an OS or application are pushed to the device, and is container-based for assured security and versatility. Updates are made in the background meaning users can avoid downtime, and the solution is cloud-agnostic for maximum utility. Finally, Full Metal Update’s rollback functionality means that it will never leave a device unusable – it is unbrickable by design.
For IoT devices with Edge AI capacity, this final feature is particularly welcome, but there are other reasons why FullMetalUpdate makes particular sense for Edge AI, too.
Most deep learning models are very large, for example, and updating an entire deep learning model in order to make a very minor change is heavy on resources. With FullMetalUpdate, on the other hand, only the changes to the model are pushed, and this means a lighter, faster update process with potential cost savings for the operator, too.
Deep learning models are also constructed on a number of different frameworks which can then be containerized. By placing each model in a different container and coupling them in a loosely-formulated subsystem, you can reduce volatility and ease your update process, too. Thanks to a tool like FullMetalUpdate, you can update only differences between two versions of one of your AI models rather than trying to push a change to an entire deep learning model.
An Example of a Deep Learning Model for Edge AI on an STM32MP1
Every IoT device is a combination of hardware and software and, in this case, the hardware is the STM32MP1 microprocessor.
The STM32MP1 is a general-purpose microprocessor that is popular for a variety of IoT projects. Among its advantages are its flexible architecture, its power efficiency, and its support for a variety of operating systems and open-source software. It has a wide variety of connectivity options and the capacity to support data processing on the microprocessor. This capacity to support Edge AI projects and both machine and deep learning software – including increasingly popular Tiny ML projects – makes it an attractive choice for our team and this demonstration.
The deep learning model deployed on the microprocessor, in this case, is a simple image recognition learning model. In this case, the original deep learning model deployed was trained to identify cats. An update to this deep learning model was later introduced to train the algorithm to differentiate between cats and dogs. Now, in a new update to the learning model, the training will extend to another animal: a horse. It is this cat + dog + horse deep learning model update that the Witekio engineers set out to push to the STM32MP1 microprocessor.
Step-by-Step: Updating the Deep Learning Model on STM32MP1 using FullMetalUpdate
FullMetalUpdate is designed to be simple to use and offers an intuitive, user-friendly interface. As demonstrated in the video presentation, updating the STM32MP1 microprocessor is simple and accomplished OTA in just a few minutes, breathing even more life into the potential of Edge AI.
Step Zero: Before Beginning: Ensure that the Microprocessor is Properly Configured
Before launching an update, it is important to ensure that the IoT device is properly configured. A green checkmark next to the microprocessor on hawkbit indicates that all is well, and that the device is ready to receive the update.
Step One: Select the Distribution to Push as an Update
HawkBit’s Deployment Management dashboard lists the various distributions in their different containers that are available to push as an update to the microprocessor. In this case, each container includes a different distribution and version of the update, namely:
- container-qt-tflite version cats + dogs
- container-qt-tflite version cats + dogs + horse
It is this third distribution that needs to be pushed to the device that currently has the cats + dogs deep learning model installed.
By selecting the cats + dogs + horse container, dragging it to the STM32MP1 target, and clicking to confirm the update the Full Metal Update process is launched.
Step Two: Tracking the Update in the Terminal
The update begins and, by reviewing the update in a terminal window, a few things become clear:
- Small update size. In this case, the update is only 13KB. This keeps the update incredibly light and it means updating the deep learning model with very little data.
- Rapid updates and restart. The update, owing to its small size, is rapid and the new deep learning model is ready to go within seconds.
As the video presentation shows, the deep learning model can identify a horse with accuracy just moments after being unable to identify any animal other than a cat or a dog, proof positive that the update is working as required on our STM32MP1.
The update process is seamless, fast, and there is no chance that the microprocessor will brick – it’s another success for FullMetalUpdate.