Merci encore d'avoir participé à notre session sur l'IA à la périphérie : l'apprentissage automatique dans les systèmes embarqués. Voici les questions qui ont suivi la présentation et leurs réponses. Si vous avez d'autres questions, n'hésitez pas à nous contacter.
Quelles ressources supplémentaires (processeur, mémoire, etc.) sont nécessaires pour mettre en œuvre l'apprentissage automatique dans un système embarqué ?
Cela dépend vraiment. Les applications d'apprentissage automatique couvrent tout un spectre. Comme nous l'avons vu, il existe des applications plus simples, telles que l'exemple de la surveillance de quelques capteurs pour détecter des changements dans les modèles de vibration dans le cadre de services de maintenance prédictive pour cette machine de construction. Pour ce cas d'utilisation, un petit microcontrôleur avec très peu de mémoire peut suffire. Il existe également des applications haut de gamme, telles que la détection d'objets dans des flux vidéo à haute résolution, qui nécessitent évidemment une puissance de calcul et une largeur de bande de mémoire importantes pour mélanger les données.
Aujourd'hui, de nombreuses applications d'apprentissage automatique proviennent du développement en nuage, où de nombreuses ressources informatiques sont disponibles. Les développeurs ne se sont pas préoccupés de ces ressources, ce qui contraste fortement avec les appareils embarqués. Aujourd'hui, l'objectif ou le désir de déplacer cette fonctionnalité vers la périphérie, où l'on ne dispose pas de toutes ces performances de calcul, est une tâche délicate. Avec l'apprentissage automatique à la périphérie, il faut accorder plus d'attention à l'utilisation du modèle et aux optimisations pour les appareils embarqués à ressources limitées.
Il existe des fournisseurs comme notre partenaire Au-Zone, que nous avons également vu dans la démonstration, qui sont des experts dans ce domaine et qui fournissent un moteur d'inférence embarqué et des outils d'optimisation de modèle pour le préparer à fonctionner sur ces dispositifs embarqués contraints avec des empreintes de mémoire réduites et des temps d'inférence rapides, même lorsque peu de ressources de calcul sont disponibles.
Nous avons vu l'exemple de la reconnaissance vocale. Pour le souligner à nouveau, nous allons fournir une telle solution avec notre offre de solution ConnectCore SoM, qui est optimisée pour les appareils embarqués. Vous n'avez donc pas besoin d'une unité de traitement de réseau neuronal sophistiquée, qui est également coûteuse. Vous pouvez exécuter cette application, une application de reconnaissance vocale prenant en charge des milliers de mots et de vocabulaire sur un seul cœur Cortex-A avec moins de 50 % de charge, alors que vous pourriez avoir besoin d'une NPU si vous faites la même chose avec une sorte de construction non optimisée de votre propre cadre d'apprentissage machine open-source.
Est-il possible d'utiliser l'apprentissage profond pour les données textuelles, comme le traitement de la poésie, afin d'identifier les différents genres ?
Il est certainement possible de traiter du texte et de classer des éléments de texte. C'est donc tout à fait possible avec l'apprentissage automatique. Et il existe de nombreux cas d'utilisation pour cela, par exemple, vos filtres anti-spam qui traitent le texte et les courriels et les classent en tant que spam ou non-spam. Ce n'est pas tout à fait de la poésie dans ces courriels, mais c'est lié, je suppose.
Quel est l'impact de l'intelligence artificielle et de l'apprentissage automatique dans un appareil sur la sécurité ?
Il existe des menaces de sécurité ciblant les applications d'apprentissage automatique, si telle est la question. Par exemple, les attaquants essaient de modifier les entrées dans le modèle d'apprentissage automatique avec une certaine technique pour tromper le modèle de manière à ce qu'il classifie mal un objet, par exemple, ou même un panneau de signalisation dans une application de circulation. Avec les bonnes manipulations, le modèle donne un facteur de confiance élevé pour ces objets, ce qui constitue certainement un problème de sécurité et de sûreté.
Il existe des méthodes pour renforcer le modèle contre de telles attaques, qui peuvent être appliquées pendant la formation et le développement du modèle. D'autres problèmes de sécurité liés à l'apprentissage automatique comprennent le vol de modèle ou les attaques de version de modèle. Digi fournit les contre-mesures disponibles auprès de NXP et les outils d'apprentissage automatique eIQ pour traiter certains de ces problèmes de sécurité spécifiques à l'apprentissage automatique.
Mais la sécurité générale du système est également importante et d'autres fonctions de sécurité telles que le démarrage sécurisé, le système de fichiers cryptés, les ports protégés et la détection de sabotage doivent également être activées. Le cadre de sécurité que nous fournissons dans le cadre de ConnectCore, le Digi TrustFence, est un cadre de sécurité complet disponible sur Digi ConnectCore SoM. Toutes les fonctions que je viens de mentionner sont entièrement intégrées dans le chargeur de démarrage, le noyau, le système de fichiers racine, et sont prêtes à être utilisées sans qu'il soit nécessaire de devenir un expert en sécurité ou de passer de nombreuses semaines à les activer. Elles fonctionnent donc sur toutes les couches matérielles et logicielles.
La présentation sera-t-elle enregistrée pour être visionnée ultérieurement ?
Oui, absolument. L'enregistrement sera disponible pour une lecture ultérieure sur la plateforme BrightTALK ici. Et nous afficherons également le lien sur www.digi.com, notre site Web. Dans la section des ressources, vous voyez une section sur les webinaires. Et c'est là que nous affichons tous les webinaires pour une lecture ultérieure.
Comment valider l'exactitude du modèle d'apprentissage automatique ?
Cela se fait pendant la phase de formation. En général, on dispose d'un grand ensemble de données pour entraîner le modèle. Ensuite, vous mettez de côté d'autres données pour effectuer les tests proprement dits et vérifier la précision du modèle. Une fois que vous êtes satisfait de la précision, vous avez terminé. Mais si vous n'êtes pas satisfait de la précision, vous avez besoin de plus de données d'entraînement, vous les introduisez dans un modèle, vous l'entraînez davantage, puis vous le testez à nouveau avec des données différentes et vous répétez ce processus jusqu'à ce que vous soyez satisfait de la précision. Il s'agit là d'un processus itératif jusqu'à ce que vous soyez satisfait de la précision.
Une autre question porte sur les exemples disponibles pour l'apprentissage de nombreux canaux de signaux à faible vitesse.
Je ne suis pas sûr d'avoir bien compris la question. Mais il y a deux façons de procéder. Vous pouvez construire un modèle à partir de zéro et le faire tout seul, et vous avez besoin de beaucoup, beaucoup de données. Mais en général, on utilise un modèle pré-entraîné et on applique ensuite ce qu'on appelle l'apprentissage par transfert. Il existe des modèles pré-entraînés pour la reconnaissance d'images, la reconnaissance vocale, la reconnaissance de texte et bien d'autres choses encore, et vous devez trouver un cas d'utilisation ou un modèle qui couvre votre cas d'utilisation. Vous devez trouver un cas d'utilisation ou un modèle qui couvre votre cas d'utilisation. Ensuite, vous appliquez l'apprentissage par transfert pour ajuster ou modifier ce modèle de manière à ce qu'il réponde exactement à votre cas d'utilisation.
Comment la latence du mot de réveil a-t-elle été mesurée sur le cœur Cortex-M ? Est-il possible de configurer un mot de réveil ? Cela nécessite-t-il un apprentissage supplémentaire ?
Ainsi, dans ce scénario, le mot d'alerte peut être configuré. Vous pouvez donc définir vos propres mots de réveil et les apprendre dans ce modèle. Vous pouvez donc définir les commandes que vous souhaitez apprendre, les enregistrer et les appliquer de manière différente, puis le moteur reconnaîtra ces mots. Nous avons également transféré le modèle pour le faire fonctionner sur le dispositif embarqué pour le cœur Cortex-M et l'optimiser pour qu'il fonctionne efficacement sur ce moteur. La latence de ce mot de réveil n'était pas terriblement importante, je dirais. Il s'agit d'humains qui interagissent avec la machine. Si cela prend quelques millisecondes de plus, ce n'est pas vraiment un problème. Il n'était donc pas nécessaire que la latence soit vraiment faible. Mais il fallait quand même qu'il soit rapide pour que les gens puissent l'utiliser. Mais la latence n'était pas très importante. Et comme elle était inférieure à une seconde, l'allumage de la machine s'est fait en douceur.
Avez-vous des exemples d'utilisation de FPGA pour l'apprentissage automatique dans le domaine de l'embarqué ? En quoi cela diffère-t-il en termes d'exigences et de performances ?
Désolé, je ne peux pas répondre à cette question. Je n'ai pas d'expérience en matière de FPGA. Je suis sûr que cela peut être utilisé pour imiter un moteur de traitement de réseau neuronal. Je suis sûr qu'il existe une propriété intellectuelle permettant d'exécuter cette fonctionnalité dans un FPGA. Mais vous avez tous ces cœurs disponibles. Et dans les systèmes embarqués d'aujourd'hui, les systèmes sur puces, vous avez souvent un GPU que vous n'utilisez pas. Vous disposez de plusieurs cœurs Cortex-A. Vous disposez souvent d'un cœur Cortex-M complémentaire séparé. Ainsi, avec ces SoC hautement intégrés, vous disposez de nombreux cœurs et de nombreuses options dans ces SoC. L'utilisation d'un FPGA externe ne ferait qu'augmenter les coûts et la complexité de la conception. Mais si c'est nécessaire, je suis sûr qu'il existe des options pour faire fonctionner des accélérateurs de réseaux neuronaux dans un FPGA.