Quels sont les défis et les opportunités de l’utilisation de l’IA et de l’apprentissage automatique dans les logiciels embarqués ?
L’intelligence artificielle
L’intelligence artificielle
L’un des principaux défis de l’utilisation de l’IA et du ML dans les logiciels embarqués réside dans les contraintes de ressources des appareils cibles. Les algorithmes d’IA et de ML nécessitent souvent une puissance de calcul, une mémoire et une consommation d’énergie élevées, qui sont rares dans les systèmes embarqués. Par conséquent, les développeurs de logiciels embarqués doivent optimiser leur code et utiliser des techniques telles que la compression de modèles, la quantification, l’élagage ou l’accélération matérielle pour réduire la taille et la complexité des modèles d’IA et de ML et améliorer leurs performances et leur efficacité.
It's essential to understand the constraints of embedded hardware while writing the firmware code for machine learning. RAM/Flash consumption and Computational Capability are key resource constraints while dealing with ML in Embedded Systems. Firstly, the microcontroller (MCU) boards have limited runtime and storage memory to execute ML pipelines, typically in KBs. It's critical to check the peak RAM consumption and how much flash memory is consumed for weights and biases. Secondly, the embedded firmware code is optimized based on the computational capabilities of the MCUs. For instance, computing an 8-bit quantized kissFFT rather than a float-point kissFFT can help reduce high latencies and make the system real-time.
The resource constraints in embedded systems span over the entire lifecycle of a model: - Model execution is challenging due to limited system resourcers - Monitoring / Redeployment requires additional computing resources + connectivity to the backend systems
Comprender los recursos a nivel de hardware es algo esencial, optimizar lo máximo posible leyendo las fichas técnicas o los artículos del sistema a utilizar tener suficiente RAM para ejecutar el modelo y además un extra suele ser mi prioridad además de puro optimización del código
El enfoque de Mixture of Experts (MoE) ofrece una oportunidad significativa para el despliegue de IA en sistemas embebidos. A través de este método, se pueden construir modelos más potentes que activan solo los componentes relevantes para una tarea específica, lo que ahorra recursos computacionales. Esto significa que, en lugar de utilizar todo el modelo para cada inferencia, solo se utilizan las partes necesarias, reduciendo así el uso de la GPU, la memoria y la energía. Esto permite que incluso los dispositivos integrados con recursos limitados aprovechen modelos de aprendizaje automático complejos y sofisticados de manera eficiente.
Quantization is a process that reduces the precision of the numbers used in models, transforming the data from a high-precision floating-point format (such as FP32) to one of lower precision (such as FP8 or FP4). This technique is particularly useful in the context of embedded software and devices with limited resources, as it significantly decreases the model size and computational requirements. What's surprising about applying quantizatio, is how it affects performance. While a decrease in the model's accuracy might be expected, in practice, the loss of precision is often minimal and acceptable for many applications. This enables the execution of advanced AI models, such as the latest generation LLM, on standard consumer PCs
L’une des principales opportunités de l’utilisation de l’IA et du ML dans les logiciels embarqués est la possibilité de mettre en œuvre l’edge computing. L’Edge computing est le paradigme du traitement local des données sur les appareils, au lieu de les envoyer au cloud ou à un serveur central. Cela peut améliorer la vitesse, la sécurité, la confidentialité et la fiabilité de l’analyse des données et de la prise de décision, ainsi que réduire la bande passante et la latence du réseau. Par exemple, les logiciels intégrés peuvent utiliser l’IA et le ML pour effectuer des tâches telles que la détection d’objets, la reconnaissance faciale, la reconnaissance gestuelle ou la reconnaissance vocale sur l’appareil, sans dépendre d’une connexion Internet ou d’un serveur distant.
Processing data on edge computing devices increases reliability by allowing autonomous operation without continuous internet connectivity. Additionally, edge computing can reduce costs, as devices can be built with processors tailored to specific needs, eliminating the need for expensive infrastructure. For example, a plant surveyor bot in agriculture can recognize plants and weeds directly in the field using onboard AI, enabling real-time decisions and efficient crop management in remote locations, independent of network infrastructure.
La IA y el ML con ejecución local puede aumentar la la confianza usuario final dado que los datos no son expuestos a solucione externas y el modelo se puede afinar a su necesidad especifica
Local AI and ML can also increase user acceptance if the user has confidence that data won't leave their edge computing device.
Running AI models locally or in secure zones provides enhanced security and trust for AI. Edge computing allows for data processing on local devices, boosting data analysis speed, security, privacy, and reliability while reducing network bandwidth and latency. For example, embedded software can perform tasks like object detection directly on the security camera devices, avoiding reliance on internet or external servers. Projects already exist where cameras and small IoT devices are equipped with AI algorithms for environmental recognition or decision-making, all without cloud communication, further enhancing security and reducing energy use.
Edge computing in embedded software leverages the power of AI and ML to perform complex tasks directly on the device, significantly enhancing real-time processing capabilities. This local data processing not only improves response times but also ensures data privacy and security by minimizing data transmission. For instance, in medical IoT applications, edge computing can enable real-time health monitoring and anomaly detection, ensuring timely interventions without the need for constant cloud connectivity.
Un autre défi de l’utilisation de l’IA et du ML dans les logiciels embarqués est la qualité et la disponibilité des données. Les algorithmes d’IA et de ML dépendent d’ensembles de données volumineux et diversifiés pour former et valider leurs modèles et améliorer leur précision et leur généralisation. Cependant, les logiciels embarqués peuvent rencontrer des difficultés pour collecter, stocker et accéder à suffisamment de données à partir des périphériques, en particulier s’ils fonctionnent dans des environnements dynamiques ou bruyants. Par conséquent, les développeurs de logiciels embarqués doivent s’assurer que leurs données sont pertinentes, représentatives, propres et étiquetées, et utiliser des techniques telles que l’augmentation des données, l’apprentissage par transfert ou l’apprentissage fédéré pour surmonter les limitations des données.
Edge Impulse platform is beneficial to ensure data quality and processing of sensor data, especially with data augmentation and preprocessing of the samples. The data forwarder can help transfer the sensor data to the cloud; the only firmware code we need to write is to send the sensor data through UART at a specific baud rate. Alternatively, we can use the same approach of using UART to curate the sensor data on PC and de-noise or develop Python-based preprocessing frameworks based on the system's requirements. We can always do data augmentation to increase the samples for training, and using multiple setups in diverse environments can help improve the data quality.
Une autre opportunité d’utiliser l’IA et le ML dans les logiciels embarqués est le potentiel de création de systèmes adaptatifs et autonomes. Les systèmes adaptatifs et autonomes sont des systèmes qui peuvent apprendre de leur environnement et ajuster leur comportement en conséquence, sans intervention humaine. Cela peut permettre aux logiciels embarqués de fournir des services et des applications plus personnalisés, intelligents et réactifs pour les utilisateurs et le contexte. Par exemple, les logiciels intégrés peuvent utiliser l’IA et le ML pour optimiser la gestion de l’alimentation, la sécurité ou l’interface utilisateur des appareils, ou pour activer des fonctionnalités telles que la domotique intelligente, les voitures autonomes ou la surveillance de la santé portable.
Un dernier défi de l’utilisation de l’IA et du ML dans les logiciels embarqués est la vérification et la validation du code et des modèles. La vérification et la validation sont les processus permettant de s’assurer que le logiciel et les modèles répondent aux exigences et aux spécifications, et fonctionnent correctement et en toute sécurité. Cependant, la vérification et la validation des modèles d’IA et de ML peuvent être difficiles, car ils peuvent présenter des comportements imprévisibles, non déterministes ou émergents, ou être affectés par des biais, des erreurs ou des attaques contradictoires. Par conséquent, les développeurs de logiciels embarqués doivent appliquer des techniques rigoureuses de test, de débogage et de surveillance, et utiliser des méthodes telles que l’IA explicable, l’IA éthique ou l’IA robuste pour garantir la qualité et la fiabilité de leurs modèles d’IA et de ML.
Verifying and validating AI in embedded software, like in autonomous vehicles, is a complex challenge: Traditional systems, such as standard GPS, follow predictable algorithms, easy to test. AI systems, however, especially those based on machine learning, introduce unpredictability. For instance, an AI-driven navigation system in an autonomous car learns from diverse data and real-time conditions. Challenges include: Unpredictability: AI decisions aren't always transparent. Data Bias: Performance relies on training data, which may have biases. Evolving Behavior: Continuous learning leads to changing system responses. Testing Limitations: Fully testing an AI system against all real-world scenarios is extremely difficult.
La IA sin supervisión humana, incluida en SW, tiene peligros según el negocio o las tareas en los que los quieras aplicar. Por eso en @qdq siempre utilizamos humanos para supervisar y mejorar el output de estos modelos, ya que cuando menos te lo esperas el resultado muchas veces no es el deseado y es dificilmente controlable. Las personas deben controlar estos modelos y no viceversa. La potencia de la IA supervisada por expertos es infinita, sin ellos es difícil de domar.
A connected cloud of multiple embedded ML systems will still outweigh a single most powerful Embedded ML system. Hence, distributed ML will continue to be the key !