Brevet FR3122759A1 — publié le 20221111

Des aspects de la présente invention concernent des systèmes, des procédés, des instructions d’ordinateur et des éléments de traitement d'intelligence artificielle (AIPE) impliquant un circuit décaleur ou de la circuiterie/du matériel/des instructions d’ordinateur équivalents à celui-ci, configuré(s) pour admettre une entrée décalable dérivée de données d'entrée pour une opération de réseau neuronal ; admettre une instruction de décalage dérivée d'un paramètre quantifié logarithmiquement correspondant d'un réseau neuronal ou d'une valeur constante ;et décaler l'entrée décalable dans une direction vers la gauche ou une direction vers la droite conformément à l'instruction de décalage pour former une sortie décalée représentative d'une multiplication de la donnée d'entrée avec le paramètre quantifié logarithmiquement correspondant du réseau neuronal. Fig. 1 IMPLEMENTATIONS ET PROCEDES DE TRAITEMENT DE RESEAU NEURONAL DANS UN MATERIEL SEMI-CONDUCTEUR ARRIERE-PLAN RENVOI A UNE/DES DEMANDE(S) CONNEXE(S) Cette demande revendique le bénéfice et la priorité de la Demande Provisoire US, Numéro de Série 63/184,576, intitulée « Systems and Methods Involving Artificial Intelligence and Cloud Technology for Edge and Server SOC » (de l’anglais : "Systèmes et Procédés impliquant une intelligence artificielle et la technologie cloud pour Edge et Server SOC") et déposée le 5 mai 2021, et de la Demande Provisoire US, Numéro de Série 63/184,630, intitulée « Systems and Methods Involving Artificial Intelligence and Cloud Technology for Edge and Server SOC » et déposée le 5 mai 2021, les divulgations desquelles étant expressément incorporées par référence ici dans leur intégralité. La présente invention est orientée de manière générale vers les systèmes d'intelligence artificielle, et plus spécifiquement, le traitement par réseau neuronal et intelligence artificielle (IA) dans du matériel et du logiciel. Un réseau neuronal est un réseau ou circuit de neurones artificiels qui est représenté par de multiples couches de réseau neuronal, chacune desquelles étant instanciée par un ensemble de paramètres. Les couches de réseau neuronal sont représentées par deux types de paramètres de réseau neuronal. Un type de paramètre de réseau neuronal est les poids qui sont multipliés par les données en fonction de l'opération de réseau neuronal sous-jacente (par ex. pour la convolution, la normalisation par lots, etc.). L'autre type de paramètre de réseau neuronal est le biais, qui est une valeur qui peut être ajoutée aux données ou au résultat de la multiplication du poids avec les données. Les couches de réseau neuronal d'un réseau neuronal commencent avec la couche d'entrée où les données sont introduites, puis des couches cachées, puis la couche de sortie. Les couches sont composées de neurones artificiels, également appelés noyaux ou filtres dans le cas de la couche de convolution. Des exemples de différents types de couches qui constituent un réseau neuronal peuvent impliquer, mais sans s'y limiter, la couche convolutive, une couche entièrement connectée, une couche récurrente, une couche d'activation, une couche de normalisation par lots, etc. L'entraînement ou l'apprentissage d’un réseau neuronal est un processus qui modifie et affine les valeurs des paramètres dans le réseau neuronal en fonction d’un jeu d'objectifs qui est habituellement décrit dans l'étiquette pour les données d'entrée et le jeu de données d'entrée connu comme données de test. L'entraînement, l'apprentissage ou l'optimisation d'un réseau neuronal implique l'optimisation des valeurs des paramètres dans le réseau neuronal pour un jeu donné d'objectifs par, soit des méthodes mathématiques telles que l'optimisation basée sur le gradient, soit des méthodes non mathématiques. Dans chaque itération (appelée époque) d’entraînement/apprentissage/optimisation, l'optimiseur (par ex. un programme logiciel, un matériel dédié ou une combinaison de ceux-ci) trouve les valeurs optimisées des paramètres pour produire le moins d'erreurs possible en fonction de l’objectif défini ou d’étiquettes. Pour l'inférence par réseau neuronal, une fois qu'un réseau neuronal est entraîné, a appris ou est optimisé, avec des données de test et une étiquette, on peut appliquer/alimenter toute donnée arbitraire au réseau neuronal formé pour dégager les valeurs de sortie, puis interpréter les valeurs de sortie en fonction des règles qui sont définies pour le réseau neuronal. Ce qui suit sont des exemples d'entraînement de réseau neuronal, d'inférence par réseau neuronal et les implémentations matérielles correspondantes dans l'art connexe. La illustre un exemple d'entraînement de réseau neuronal conformément à l'art connexe. Pour faciliter l'entraînement du réseau neuronal dans l’art connexe, tout d’abord, les paramètres du réseau neuronal sont initialisés sur des nombres à virgule flottante ou entiers aléatoires. Ensuite, le processus itératif pour entraîner le réseau neuronal est lancé comme suit. Les données de test sont introduites dans le réseau neuronal pour être propagées vers l’avant à travers toutes les couches pour dégager les valeurs de sortie. Ces données de test peuvent être sous la forme de nombres à virgule flottante ou d'entiers. L'erreur est calculée en comparant les valeurs de sortie aux valeurs de l'étiquette de test. Un procédé connu dans l'art est ensuite exécuté pour déterminer comment modifier les paramètres pour faire diminuer l'erreur du réseau neuronal, après quoi les paramètres sont modifiés en fonction du procédé exécuté. Ce processus itératif est répété jusqu'à ce que le réseau neuronal produise l'erreur acceptable (par ex. au sein d'un seuil), et le réseau neuronal résultant est dit entraîné, appris ou optimisé. La illustre un exemple d'opération d’inférence par réseau neuronal, conformément à l'art connexe. Pour faciliter l'inférence par réseau neuronal, tout d’abord, les données d'inférence sont introduites dans le réseau neuronal, qui est à propagation vers l’avant à travers toutes les couches pour dégager les valeurs de sortie. Ensuite, les valeurs de sortie du réseau neuronal sont interprétées conformément aux objectifs fixés par le réseau neuronal. La illustre un exemple des implémentations matérielles de réseau neuronal, conformément à l'art connexe. Pour implémenter le réseau neuronal dans du matériel, tout d’abord, des données d'entrée et des paramètres du réseau neuronal sont obtenus. Ensuite, en utilisant un multiplicateur matériel, les données d'entrée (multiplicande) sont multipliées par les paramètres (multiplicateur) pour dégager des produits. Par la suite, les produits sont tous additionnés à travers l’utilisation d'un additionneur matériel pour obtenir une somme. Enfin, le cas échéant, l'additionneur matériel est utilisé pour ajouter un paramètre de biais à la somme selon les besoins. La illustre un exemple d'entraînement pour un réseau neuronal quantifié, conformément à l'art connexe. Pour faciliter l'entraînement du réseau neuronal quantifié, tout d’abord, les paramètres du réseau neuronal (par ex. poids, biais) sont initialisés sur des nombres à virgule flottante ou entiers aléatoires pour le réseau neuronal. Ensuite, un processus itératif est exécuté, dans lequel les données de test sont introduites dans le réseau neuronal et propagées vers l'avant à travers toutes les couches du réseau neuronal pour dégager les valeurs de sortie. L'erreur est calculée en comparant les valeurs de sortie aux valeurs de l'étiquette de test. Des procédés tels que connus dans l'art sont utilisés pour déterminer comment changer les paramètres pour réduire l'erreur du réseau neuronal et changés en conséquence. Ce processus itératif est répété jusqu'à ce que le réseau neuronal produise une erreur acceptable au sein d’un seuil souhaité. Une fois produits, les paramètres sont ensuite quantifiés pour réduire leur taille (par ex. quantifier des nombres à virgule flottante sur 32 bits en entiers sur 8 bits). La illustre un exemple d'inférence par réseau neuronal pour un réseau neuronal quantifié, conformément à l'art connexe. Le processus d'inférence est le même que celui d'un réseau neuronal habituel de la , à l’exception près que les paramètres du réseau neuronal sont quantifiés en nombres entiers. La illustre un exemple d'implémentation matérielle par réseau neuronal pour un réseau neuronal quantifié conformément à l'art connexe. L’implémentation matérielle est la même que celle d'un réseau neuronal habituel tel qu'illustré en . Dans ce cas, les multiplicateurs et additionneurs matériels utilisés pour le réseau neuronal quantifié sont typiquement sous la forme de multiplicateurs entiers et d'additionneurs entiers par opposition aux additionneurs/multiplicateurs à virgule flottante de la en raison de la quantification en entiers des paramètres. Pour faciliter les calculs nécessaires au fonctionnement du réseau neuronal, des circuits multiplicateurs-accumulateurs (MAC, de l’anglais « Multiplier-Accumulator Circuits ») ou des circuits équivalents aux MAC (multiplicateur et additionneur) sont typiquement utilisés pour effectuer l'opération de multiplication et l'opération d'addition pour les opérations du réseau neuronal. Tous les matériels de traitement d'IA dans l'art connexe reposent fondamentalement sur des MAC ou des circuits équivalents aux MAC pour effectuer des calculs pour la plupart des opérations du réseau neuronal. Problème technique En raison de la complexité de l'opération de multiplication, les MAC consomment une quantité significative d'énergie et génèrent une empreinte assez significative lorsqu'ils sont utilisés en réseaux (en anglais : « arrays » ou en français « grilles » ci-après) pour traiter des opérations de réseau neuronal et d’autres intelligence artificielle, ainsi qu'un temps significatif pour le calcul. Comme la quantité de données d'entrée et de paramètres de réseau neuronal peut être importante, de grandes grilles (par ex. des dizaines de milliers) de MAC peuvent être utilisés pour traiter des opérations de réseau neuronal. De telles exigences peuvent rendre difficile l'utilisation d'algorithmes basés sur le réseau neuronal pour les appareils périphériques de réseau ou personnels, car les opérations complexes de réseau neuronal peuvent nécessiter de vastes grilles de MAC qui nécessitent de traiter le réseau neuronal en temps contenu. Solution technique Les exemples d'implémentation décrits ici concernent un processeur de réseau neuronal de deuxième génération (réseau neuronal 2.0 ou NN 2.0, de l’anglais « Neural Network ») tel qu’implémenté dans du matériel, logiciel ou une combinaison de ceux-ci. Les exemples d'implémentation proposés peuvent remplacer le matériel MAC dans toutes les couches/opérations de réseau neuronal qui utilisent la multiplication et l'addition telles que le réseau neuronal convolutif (CNN, de l’anglais « Convolutional Neural network »), le réseau neuronal récurrent (RNN, de l’anglais « Recurrent Neural Network »), le réseau neuronal entièrement connecté (FNN, de l’anglais « Fully-connected Neural Network ») et l'encodeur automatique (AE, de l’anglais « Auto Encoder »), normalisation par lots (de l’anglais « Batch Normalization »), unité linéaire rectifiée paramétrique (de l’anglais « Parametric Rectified Linear Unit »), etc. Dans des exemples d'implémentation décrits ici, NN 2.0 utilise une fonction décaleur dans du matériel pour réduire significativement la surface et la puissance de l'implémentation du réseau neuronal en utilisant des décaleurs au lieu de multiplicateurs et/ou d'additionneurs. La technologie est basée sur le fait que l’entraînement du réseau neuronal est accompli en ajustant les paramètres par des facteurs arbitraires de leurs valeurs de gradient calculées. En d'autres termes, dans un entraînement de réseau neuronal, un ajustement incrémentiel de chaque paramètre est effectué, d'une quantité arbitraire, en fonction de son gradient. Chaque fois que NN 2.0 est utilisé pour entraîner un réseau neuronal (modèle d’IA), il garantit que les paramètres du réseau neuronal tels que les poids sont quantifiés logarithmiquement (par ex. une valeur qui peut être représentée par une puissance entière de deux) de sorte que des décaleurs tels que des décaleurs de nombres binaires peuvent être utilisés dans le matériel ou le logiciel pour les opérations de réseau neuronal qui nécessitent des opérations de multiplication et/ou d'addition telles qu'une opération convolutive, une normalisation par lots ou une fonction d'activation telle qu’une ReLU paramétrique/à fuite (en anglais : « Parametric/Leaky ReLU »), remplaçant ainsi l'opération de multiplication et/ou d'addition avec une opération de décalage. Dans certains cas, les paramètres ou poids peuvent être des paramètres de quantification - quantifiés logarithmiquement binaires en nombres qui sont une puissance entière de deux. Grâce aux exemples d'implémentation décrits ici, il est ainsi possible d'exécuter des calculs pour les opérations de réseau neuronal d'une manière qui est beaucoup plus rapide que ce qui peut être accompli avec un réseau MAC, tout en consommant une fraction de la puissance et en n'ayant qu'une fraction de l'empreinte physique. Les exemples d'implémentation décrits ici impliquent de nouveaux circuits sous la forme d'un élément de traitement d'intelligence artificielle (AIPE, de l’anglais : « artificial intelligence processing element ») pour faciliter un circuit dédié pour le traitement d'opérations de réseau neuronal/d’intelligence artificielle. Cependant, les fonctions décrites ici peuvent être implémentées dans des circuits équivalents, par des réseaux de portes programmables in situ (FPGA, de l’anglais : « field programmable gate arrays ») ou des circuits intégrés propre à une application (ASIC, de l’anglais : « application specific integrated circuits »), ou sous forme d'instructions en mémoire devant être chargées dans des unités centrales de traitement génériques (CPU, de l’anglais : « Central Processing Units »), en fonction de l'implémentation souhaitée. Dans les cas impliquant des FPGA, des ASIC ou des CPU, les implémentations algorithmiques des fonctions décrites ici conduiront toujours à une réduction de l'empreinte de la surface, de la puissance et de la durée d'exécution du matériel pour traiter des opérations de réseau neuronal ou d'autres opérations d'IA par le remplacement de la multiplication ou de l'addition par décalage, ce qui permettra d'économiser sur les cycles de calcul ou les ressources de calcul qui auraient autrement été consommées par une multiplication normale sur des FPGA, des ASIC ou des CPU. Des aspects de la présente invention peuvent impliquer un élément de traitement d'intelligence artificielle (AIPE). L'AIPE peut comprendre un circuit décaleur configuré pour admettre une entrée décalable dérivée de données d'entrée pour une opération de réseau neuronal ; admettre une instruction de décalage dérivée d'un paramètre quantifié logarithmiquement correspondant d'un réseau neuronal ou d'une valeur constante ; et décaler l'entrée décalable dans une direction vers la gauche ou une direction vers la droite conformément à l'instruction de décalage pour former une sortie décalée représentative d'une multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant du réseau neuronal. Des aspects de la présente divulgation peuvent impliquer un système pour traiter une opération de réseau neuronal comprenant un circuit décaleur, le circuit décaleur est configuré pour multiplier les données d'entrée avec un paramètre quantifié logarithmiquement correspondant associé à l'opération pour un réseau neuronal. Pour multiplier les données d'entrée avec un paramètre quantifié logarithmiquement correspondant, le circuit décaleur est configuré pour admettre une entrée décalable dérivée des données d'entrée ; et décaler l'entrée décalable dans une direction vers la gauche ou une direction vers la droite selon une instruction de décalage dérivée du paramètre quantifié logarithmiquement correspondant pour générer une sortie représentative de la multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant pour l’opération de réseau neuronal. Des aspects de la présente divulgation peuvent impliquer un procédé pour traiter une opération de réseau neuronal comprenant une multiplication de données d'entrée avec un paramètre quantifié logarithmiquement correspondant associé à l'opération pour un réseau neuronal. La multiplication peut comprendre l'admission d'une entrée décalable dérivée des données d'entrée ; et le décalage de l'entrée décalable dans une direction vers la gauche ou une direction vers la droite selon une instruction de décalage dérivée du paramètre quantifié logarithmiquement correspondant pour générer une sortie représentative de la multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant pour l’opération de réseau neuronal. Plus particulièrement, un procédé de l'invention peut être implémenté par une entité informatique de traitement d'une intelligence artificielle, et peut comprendre les étapes de : admission d’une entrée décalable dérivée de données d'entrée pour une opération de réseau neuronal ; admission d’une instruction de décalage dérivée d'un paramètre quantifié logarithmiquement correspondant d'un réseau neuronal ou d'une valeur constante ; et décalage de l'entrée décalable dans une direction vers la gauche ou une direction vers la droite conformément à l'instruction de décalage pour former une sortie décalée représentative d'une multiplication de la donnée d'entrée avec le paramètre quantifié logarithmiquement correspondant du réseau neuronal. Des aspects de la présente divulgation peuvent impliquer un programme d’ordinateur pour stocker des instructions pour traiter une opération de réseau neuronal comprenant une multiplication de données d'entrée avec un paramètre quantifié logarithmiquement correspondant associé à l'opération pour un réseau neuronal. Les instructions de multiplication peuvent comprendre l'admission d'une entrée décalable dérivée des données d'entrée ; et le décalage de l'entrée décalable dans une direction vers la gauche ou une direction vers la droite selon une instruction de décalage dérivée du paramètre quantifié logarithmiquement correspondant pour générer une sortie représentative de la multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant pour l’opération de réseau neuronal. Les instructions peuvent être stockées sur un support tel qu'un support lisible par ordinateur non éphémère et exécutées par un ou plus processeur(s). Des aspects de la présente divulgation peuvent impliquer un système pour traiter une opération de réseau neuronal comprenant des moyens pour une multiplication de données d'entrée avec un paramètre quantifié logarithmiquement correspondant associé à l'opération pour un réseau neuronal. Les moyens de multiplication peuvent comprendre des moyens d'admission d'une entrée décalable dérivée des données d'entrée ; et des moyens de décalage de l'entrée décalable dans une direction vers la gauche ou une direction vers la droite selon une instruction de décalage dérivée du paramètre quantifié logarithmiquement correspondant pour générer une sortie représentative de la multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant pour l’opération de réseau neuronal. Des aspects de la présente invention peuvent en outre impliquer un système qui peut inclure une mémoire configuré pour stocker un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; un ou plus élément(s) matériel(s) configuré(s) pour décaler ou ajouter des données d’entrée décalables ; et une logique contrôleur configurée pour contrôler l’un ou plus élément(s) matériel(s) pour, pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir de la mémoire, décaler les données d'entrée décalables vers la gauche ou vers la droite sur la base des valeurs de paramètre(s) quantifié(s) logarithmiquement correspondantes pour former des données décalées ; et l’ajout ou le décalage des données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Des aspects de la présente invention peuvent en outre impliquer un procédé qui peut inclure la gestion, dans une mémoire, d’un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et le contrôle d’un ou plus élément(s) matériel(s) pour, pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir de la mémoire, décaler les données d'entrée décalables vers la gauche ou vers la droite sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et l’ajout ou le décalage des données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Des aspects de la présente invention peuvent en outre impliquer un procédé qui peut inclure la gestion, dans une mémoire, d’un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir de la mémoire, le décalage des données d'entrée décalables, vers la gauche ou vers la droite, sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et l’ajout ou le décalage des données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Des aspects de la présente invention peuvent en outre impliquer un programme d’ordinateur ayant des instructions qui peuvent inclure la gestion, dans une mémoire, d’un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et le contrôle d’un ou plus élément(s) matériel(s) pour, pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir de la mémoire, décaler les données d'entrée décalables vers la gauche ou vers la droite sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et l’ajout ou le décalage des données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Le programme informatique et les instructions peuvent être stockés dans un support lisible par ordinateur non éphémère pour être exécutés par du matériel (par ex., des processeurs, des FPGA, des contrôleurs, etc.). Des aspects de la présente invention peuvent en outre impliquer un système, qui peut comprendre un moyen mémoire pour stocker un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir du moyen mémoire, un moyen de décalage pour décaler les données d'entrée décalables, vers la gauche ou vers la droite, sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et un moyens pour ajouter ou décaler les données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Des aspects de la présente invention peuvent en outre impliquer un procédé qui peut inclure la gestion, dans une mémoire, d’un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir de la mémoire, le décalage des données d'entrée décalables, vers la gauche ou vers la droite, sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et l’ajout ou le décalage des données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Des aspects de la présente invention peuvent en outre impliquer un programme d’ordinateur ayant des instructions, qui peut inclure la gestion, dans une mémoire, d’un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir de la mémoire, le décalage des données d'entrée décalables, vers la gauche ou vers la droite, sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et l’ajout ou le décalage des données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Le programme informatique et les instructions peuvent être stockés dans un support lisible par ordinateur non éphémère pour être exécutés par du matériel (par ex., des processeurs, des FPGA, des contrôleurs, etc.). Des aspects de la présente invention peuvent en outre impliquer un système, qui peut comprendre un moyen mémoire pour stocker un réseau neuronal entraîné représenté par une ou plus valeur(s) de paramètre(s) quantifié(s) logarithmiquement associée(s) à une ou plus couche(s) de réseau neuronal, chacune de l'une ou plus couche(s) de réseau neuronal représentant une opération de réseau neuronal correspondante devant être exécutée ; et pour la chacune de l'une ou plus couche(s) de réseau neuronal lues à partir du moyen mémoire, un moyen de décalage pour décaler les données d'entrée décalables, vers la gauche ou vers la droite, sur la base des valeurs de paramètre quantifié logarithmiquement correspondantes pour former des données décalées ; et un moyens pour ajouter ou décaler les données décalées formées selon l'opération de réseau neuronal correspondante devant être exécutée. Des aspects de la présente divulgation peuvent impliquer un procédé, qui peut impliquer l'admission d'une entrée décalable dérivée des données d'entrée (par ex. mise à l’échelle par un facteur) ; un décalage de l'entrée décalable dans une direction vers la gauche ou une direction vers la droite selon une instruction de décalage dérivée du paramètre quantifié logarithmiquement correspondant pour générer une sortie représentative de la multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant pour l’opération de réseau neuronal ainsi que décrit ici. Comme décrit ici, l'instruction de décalage associée au paramètre quantifié logarithmiquement correspondant peut impliquer un sens de décalage et une amplitude de décalage, l’amplitude de décalage dérivée d'une magnitude d'un exposant du paramètre quantifié logarithmiquement correspondant, le sens de décalage dérivé d'un signe de l’exposant du paramètre quantifié logarithmiquement correspondant ; dans lequel le décalage de l'entrée décalable implique le décalage de l'entrée décalable dans la direction vers la gauche ou direction vers la droite conformément au sens de décalage et d'une amplitude indiquée par l’amplitude de décalage. Des aspects de la présente divulgation peuvent impliquer un procédé de traitement d'une opération pour un réseau neuronal, qui peut impliquer l’admission de données d'entrée décalables dérivées de données d'entrée de l'opération pour le réseau neuronal ;une admission d'une entrée associée à un paramètre de poids quantifié logarithmiquement correspondant pour les données d'entrée de l'opération pour le réseau neuronal, l'entrée impliquant un sens de décalage et une amplitude de décalage, l’amplitude de décalage dérivée d'une magnitude d'un exposant du paramètre de poids quantifié logarithmiquement correspondant, le sens de décalage dérivé d'un signe de l'exposant du paramètre de poids quantifié logarithmiquement correspondant ;et le décalage des données d'entrée décalables selon l'entrée associée au paramètre de poids quantifié logarithmiquement correspondant pour générer une sortie pour le traitement de l'opération pour le réseau neuronal. Des aspects de la présente divulgation peuvent impliquer un système de traitement d'une opération pour un réseau neuronal, qui peut impliquer un moyen d’admission de données d'entrée décalables dérivées de données d'entrée de l'opération pour le réseau neuronal ;un moyen pour admettre une entrée associée à un paramètre de poids quantifié logarithmiquement correspondant pour les données d'entrée de l'opération pour le réseau neuronal, l'entrée impliquant un sens de décalage et une amplitude de décalage, l’amplitude de décalage dérivée d'une magnitude d'un exposant du paramètre de poids quantifié logarithmiquement correspondant, le sens de décalage dérivé d'un signe de l'exposant du paramètre de poids quantifié logarithmiquement correspondant ;et un moyen pour décaler les données d'entrée décalables selon l'entrée associée au paramètre de poids quantifié logarithmiquement correspondant pour générer une sortie pour le traitement de l'opération pour le réseau neuronal. Des aspects de la présente divulgation peuvent impliquer un programme d’ordinateur de traitement d'une opération pour un réseau neuronal, qui peut impliquer des instructions incluant une admission de données d'entrée décalables dérivées de données d'entrée de l'opération pour le réseau neuronal ;une admission d'une entrée associée à un paramètre de poids quantifié logarithmiquement correspondant pour les données d'entrée de l'opération pour le réseau neuronal, l'entrée impliquant un sens de décalage et une amplitude de décalage, l’amplitude de décalage dérivée d'une magnitude d'un exposant du paramètre de poids quantifié logarithmiquement correspondant, le sens de décalage dérivé d'un signe de l'exposant du paramètre de poids quantifié logarithmiquement correspondant ;et le décalage des données d'entrée décalables selon l'entrée associée au paramètre de poids quantifié logarithmiquement correspondant pour générer une sortie pour le traitement de l'opération pour le réseau neuronal. Le programme informatique et les instructions peuvent être stockés dans un support lisible par ordinateur non éphémère et configurés pour être exécutés par un ou plus processeur(s). D’autres caractéristiques, détails et avantages de l’invention apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels : illustre un exemple de processus d'entraînement pour un réseau neuronal typique conformément à l'art connexe ; illustre un exemple de processus d'interférence pour un réseau neuronal typique conformément à l'art connexe ; illustre un exemple d'implémentation matérielle pour un réseau neuronal typique conformément à l'art connexe ; illustre un exemple de processus d'entraînement pour un réseau neuronal quantifié (de l’anglais : « quantized neural network »), conformément à l'art connexe ; illustre un exemple de processus d'interférence pour un réseau neuronal quantifié conformément à l'art connexe ; illustre un exemple d'implémentation matérielle pour un réseau neuronal quantifié conformément à l'art connexe ; illustre une architecture globale de réseau neuronal quantifié logarithmiquement (de l’anglais : « log quantized neural network »), conformément à un exemple d'implémentation ; illustre un exemple de processus d'entraînement pour un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; et illustrent un exemple de flux pour un entraînement de réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre un exemple de processus d'inférence pour un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre un exemple d'implémentation matérielle pour un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre un exemple du diagramme de flux pour une implémentation matérielle pour un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 13] (incluant les et ) illustre une comparaison entre une quantification et une quantification logarithmique, respectivement ; [Fig. 14] (incluant les à ) illustre une comparaison entre des mises à jour de paramètres. La est un exemple de processus de mise à jour de paramètres d'un réseau neuronal normal. Les et sont un exemple de processus de mise à jour de paramètres d'un réseau neuronal quantifié logarithmiquement ; illustre un exemple d’optimiseur pour réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 16] (incluant les à ) illustre des exemples d'opérations de convolution, conformément à un exemple d'implémentation ; [Fig. 17] (incluant les , ) illustre, avec la , un exemple de processus d’entraînement de couches de convolution dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 19] (incluant les et ) illustre, avec la , un exemple de processus d’entraînement de couches denses dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre, avec la , un exemple de processus de normalisation par lots dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d’entraînement de réseau neuronal récurrent (RNN) dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre, avec la , un exemple de passe vers l’avant d’un RNN, conformément à un exemple d'implémentation ; illustre, avec la , un exemple de processus d’entraînement de RNN dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'entraînement LeakyReLU dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'entraînement de ReLU Paramétrique (PReLU) dans un réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre un exemple de différence entre une opération d'inférence de réseau neuronal normal (NN1.0) et une opération d'inférence de réseau neuronal quantifié logarithmiquement (NN2.0) ; illustre un exemple de mise à l'échelle de données d'entrée et de données de biais pour une inférence de réseau neuronal quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'inférence d'un réseau neuronal entièrement connecté, dans un réseau neuronal normal, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'une opération d'inférence d’une couches denses entièrement connectées dans un réseau neuronal quantifié logarithmiquement, NN2.0, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'opération d'inférence d’une couche de convolution dans un réseau neuronal normal, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'opération d'inférence d’une couche de convolution dans un réseau neuronal quantifié (NN2.0), conformément à un exemple d'implémentation ; [Fig. 43] (incluant les et ) illustre, avec la , un exemple d'opération d'inférence d’une normalisation par lots dans un réseau neuronal quantifié (NN2.0), conformément à un exemple d'implémentation ; illustre, avec la , un exemple d’opération d'inférence d’un RNN dans un réseau neuronal normal, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d’opération d'inférence d’un RNN dans un réseau neuronal quantifié logarithmiquement (NN2.0), conformément à un exemple d'implémentation ; illustre un exemple de graphique de fonctions ReLU, LeakyReLU et PReLU, conformément à un exemple d'implémentation ; illustre, avec la , un exemple de transformation d’un modèle de détection d'objets en un modèle de détection d’objets NN2.0 quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 52] (incluant les et ) illustre des exemples de transformation d'un modèle de détection de visage en un modèle de détection de visage NN2.0 quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 53] (incluant les et ) illustre des exemples de transformation d'un modèle de reconnaissance faciale en un modèle de reconnaissance faciale NN2.0 quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 54] (incluant les et ) illustre un exemple de transformation d'un modèle d'auto-encodeur en un modèle d'auto-encodeur NN2.0 quantifié logarithmiquement, conformément à un exemple d'implémentation ; [Fig. 55] (incluant les et ) illustre un exemple de transformation d'un modèle de réseau neuronal dense en un modèle de réseau neuronal dense NN2.0 quantifié logarithmiquement, conformément à un exemple d'implémentation ; illustre un exemple d'une multiplication binaire typique qui se produit dans du matériel, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'opération de décalage pour NN2.0 pour remplacer une opération de multiplication, conformément à un exemple d'implémentation ; illustre un exemple d'opération de décalage pour NN2.0 pour remplacer une opération de multiplication, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'opération de décalage pour NN2.0 à l’aide de données de compliment à deux pour remplacer une opération de multiplication, conformément à un exemple d'implémentation ; illustre un exemple d'opération de décalage pour NN2.0 à l’aide de données de compliment à deux pour remplacer une opération de multiplication, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'opération de décalage pour NN2.0 pour remplacer une opération d’accumulation/d’ajout, conformément à un exemple d'implémentation ; illustre, avec la , un exemple de traitement de dépassement pour une opération d'ajout pour NN2.0 utilisant une opération de décalage, conformément à un exemple d'implémentation ; illustre, avec la et la , un exemple d'opération d’assemblage de segment pour NN2.0, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'opération de décalage pour NN2.0 pour remplacer une opération d’accumulation/ d’ajout, conformément à un exemple d'implémentation ; illustre un exemple d'architecture générale d’Elément de Traitement d'IA (AIPE), conformément à un exemple d'implémentation ; illustre un exemple d’AIPE ayant une architecture de décalage arithmétique, conformément à un exemple d'implémentation ; illustre des exemples d'une opération de décalage d’AIPE pour remplacer une opération de multiplication, conformément à un exemple d'implémentation ; illustre des exemples d'une opération de décalage d’AIPE pour remplacer une opération de multiplication, conformément à un exemple d'implémentation ; illustre, avec la et la , un exemple d'un AIPE effectuant une opération de convolution, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'un AIPE effectuant une opération de normalisation par lots, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'une AIPE effectuant une opération de ReLU Paramétrique, conformément à un exemple d'implémentation ; illustre, avec la , un exemple d'un AIPE effectuant une opération d’addition, conformément à un exemple d'implémentation ; illustre un exemple de grille de NN2.0, conformément à un exemple d'implémentation ; [Fig. 86] (incluant les à ) illustre des exemples de structures d’AIPE dédiées à chaque opération de réseau neuronal, conformément à un exemple d'implémentation ; illustre un exemple de grille de NN2.0 utilisant les structures d’AIPE des - , conformément à un exemple d'implémentation ; illustre un exemple d'environnement informatique sur lequel certains exemples d'implémentation peuvent être appliqués ; illustre un exemple de système pour le contrôle d’un AIPE, conformément à un exemple d'implémentation. Elément de traitement par intelligence artificielle (AIPE), l'AIPE comprenant : * un circuit décaleur configuré pour : - admettre une entrée décalable dérivée de données d'entrée pour une opération de réseau neuronal ; - admettre une instruction de décalage dérivée d'un paramètre quantifié logarithmiquement correspondant d'un réseau neuronal ou d'une valeur constante ; et - décaler l'entrée décalable dans une direction vers la gauche ou une direction vers la droite conformément à l'instruction de décalage pour former une sortie décalée représentative d'une multiplication de la donnée d'entrée avec le paramètre quantifié logarithmiquement correspondant du réseau neuronal. AIPE selon la revendication 1, dans lequel l'instruction de décalage comprend un sens de décalage et une amplitude de décalage, l’amplitude de décalage dérivée d'une magnitude d'un exposant du paramètre quantifié logarithmiquement correspondant, le sens de décalage dérivé d'un signe de l'exposant du paramètre quantifié logarithmiquement correspondant ; dans lequel le circuit décaleur décale l'entrée décalable dans la direction vers la gauche ou la direction vers la droite selon le sens de décalage et décale l'entrée décalable dans le sens de décalage d'une amplitude indiquée par l’amplitude de décalage. AIPE selon la revendication 1, comprenant en outre un circuit configuré pour admettre un premier bit de signe pour l'entrée décalable et un deuxième bit de signe du paramètre quantifié logarithmiquement correspondant pour former un troisième bit de signe pour la sortie décalée. AIPE selon la revendication 1, comprenant en outre un premier circuit configuré pour admettre la sortie décalée et un bit de signe de celui qui correspond parmi les paramètres quantifiés logarithmiquement pour former des données en complément à un pour lorsque le bit de signe des paramètres quantifiés logarithmiquement est révélateur d’une signe négatif; et un deuxième circuit configuré pour incrémenter les données de complément à un par le bit de signe du paramètre quantifié logarithmiquement correspondant pour changer la sortie décalée en données de complément à deux qui sont représentatives de la multiplication des données d'entrée avec le paramètre quantifié logarithmiquement correspondant AIPE selon la revendication 1, dans lequel le circuit décaleur est un circuit décaleur logarithmique ou un circuit décaleur en barillet. AIPE selon la revendication 1, comprenant en outre un circuit configuré pour admettre la sortie de l'opération de réseau neuronal, dans lequel le circuit fournit l'entrée décalable à partir de la sortie de l'opération de réseau neuronal ou à partir de données d'entrée mises à l'échelle générées à partir des données d'entrée pour l'opération de réseau neuronal selon une entrée de signal dans le circuit décaleur. AIPE selon la revendication 1, comprenant en outre un circuit configuré pour fournir l'instruction de décalage dérivée du paramètre quantifié logarithmiquement correspondant du réseau neuronal ou la valeur constante selon une entrée de signal. AIPE selon la revendication 1, comprenant en outre un circuit additionneur couplé au circuit décaleur, le circuit additionneur étant configuré pour additionner sur la base de la sortie décalée afin de former une sortie pour l’opération de réseau neuronal. AIPE selon la revendication 8, dans lequel le circuit additionneur est un circuit additionneur d'entiers. AIPE selon la revendication 8, dans lequel le circuit additionneur est configuré pour additionner la sortie décalée avec un paramètre correspondant d'une pluralité de paramètres de biais du réseau neuronal pour former la sortie pour l’opération de réseau neuronal. AIPE selon la revendication 1, comprenant en outre : un autre circuit décaleur ; et un circuit de registre couplé à l'autre circuit décaleur qui verrouille la sortie depuis l'autre circuit décaleur ; dans lequel l'autre circuit décaleur est configuré pour admettre un bit de signe associé à la sortie décalée et chaque segment de la sortie décalée pour décaler une autre entrée de circuit décaleur vers la gauche ou vers la droite en fonction du bit de signe pour former la sortie à partir de l'autre circuit décaleur ; dans lequel le circuit de registre est configuré pour fournir la sortie verrouillée depuis l'autre circuit décaleur en tant qu'entrée de l'autre circuit décaleur à l'autre circuit décaleur pour la réception d'un signal indicatif du non achèvement de l’opération de réseau neuronal et fournir la sortie verrouillée en tant que sortie pour l’opération de réseau neuronal pour la réception du signal indicatif de l’achèvement de l’opération de réseau neuronal. AIPE selon la revendication 11, dans lequel chaque segment a une taille d'un logarithme binaire d'une largeur de l’entrée de l'autre circuit décaleur. AIPE selon la revendication 11, comprenant en outre un compteur configuré pour admettre un dépassement ou un soupassement à partir de l'autre circuit décaleur résultant du décalage de l'autre circuit décaleur entré par le circuit décaleur ; dans lequel l'autre circuit décaleur est configuré pour admettre le dépassement ou le soupassement de chaque segment pour décaler un segment suivant vers la gauche ou la droite d'une amplitude du dépassement ou du soupassement. AIPE selon la revendication 11, comprenant en outre un circuit de codage 1 parmi n vers binaire configuré pour admettre la sortie verrouillée afin de générer une sortie codée, et concaténer la sortie codée depuis tous les segments et un bit de signe provenant du résultat d'une opération de dépassement ou de soupassement pour former la sortie pour l’opération de réseau neuronal. AIPE selon la revendication 1, comprenant en outre : un circuit décaleur à accumulation positive comprenant un deuxième circuit décaleur configuré pour admettre chaque segment de la sortie décalée pour décaler l'entrée du circuit décaleur à accumulation positive vers la gauche pour un bit de signe associé à l'instruction de décalage indiquant un signe positif ; le deuxième circuit décaleur couplé à un premier circuit de registre configuré pour verrouiller l'entrée du circuit décaleur à accumulation positive décalée provenant du deuxième circuit décaleur en tant que première sortie verrouillée, le premier circuit de registre étant configuré pour fournir la première sortie verrouillée en tant qu'entrée du circuit décaleur à accumulation positive pour la réception d'un signal indiquant que l'opération de réseau neuronal n'est pas terminée ; un circuit décaleur à accumulation négative comprenant un troisième circuit décaleur configuré pour admettre chaque segment de la sortie décalée pour décaler l'entrée du circuit décaleur à accumulation négative vers la gauche pour le bit de signe associé à l'instruction de décalage indiquant un signe négatif ; le troisième circuit décaleur couplé à un deuxième circuit de registre configuré pour verrouiller l'entrée du circuit décaleur à accumulation négative décalée provenant du provenant du troisième circuit décaleur en tant que deuxième sortie verrouillée, le deuxième circuit de registre étant configuré pour fournir la deuxième sortie verrouillée en tant qu'entrée du circuit décaleur à accumulation négative pour la réception d'un signal indiquant que l'opération de réseau neuronal n'est pas terminée ; et un circuit additionneur configuré pour additionner sur la base de la première sortie verrouillée provenant du circuit décaleur accumulateur positif et de la seconde sortie verrouillée du circuit décaleur accumulateur négatif pour former la sortie de l'opération de réseau neuronal pour la réception du signal indiquant que l'opération de réseau neuronal est terminée. AIPE selon la revendication 15, comprenant en outre : un premier compteur configuré pour admettre un premier dépassement du circuit décaleur à à accumulation positive résultant du décalage de l'entrée du circuit décaleur à accumulation positive, dans lequel le deuxième circuit décaleur est configuré pour admettre le premier dépassement de chaque segment pour décaler un segment suivant vers la gauche par une amplitude du premier dépassement ; et un deuxième compteur configuré pour admettre un deuxième dépassement du circuit décaleur à à accumulation négative résultant du décalage de l'entrée du circuit décaleur à accumulation négative, dans lequel le troisième circuit décaleur est configuré pour admettre le deuxième dépassement de chaque segment pour décaler un segment suivant vers la gauche par une amplitude du deuxième dépassement. AIPE selon la revendication 15, comprenant en outre : un premier circuit de codage 1 parmi n vers binaire configuré pour admettre la première sortie verrouillée pour générer une première sortie codée, et concaténer la première sortie codée depuis tous les segments et un bit de signe positif pour former une première entrée de circuit additionneur ; un deuxième circuit de codage 1 parmi n vers binaire configuré pour admettre la deuxième sortie verrouillée pour générer une deuxième sortie codée, et concaténer la deuxième sortie codée depuis tous les segments et un bit de signe négatif pour former une deuxième entrée de circuit additionneur ; dans lequel le circuit additionneur mène l'addition sur la base de la première sortie verrouillée et de la seconde sortie verrouillée en ajoutant la première entrée de circuit additionneur avec la seconde entrée de circuit additionneur pour former la sortie pour l’opération de réseau neuronal. AIPE selon la revendication 1, dans lequel les données d'entrée sont mises à l'échelle pour former l'entrée décalable. AIPE selon la revendication 1, comprenant en outre : un circuit de registre configuré pour verrouiller la sortie décalée ; dans lequel pour la réception d'un signal de contrôle indicatif d'une opération d'addition : le circuit décaleur est configuré pour admettre chaque segment de l'entrée décalable pour décaler la sortie décalée vers la gauche ou droite sur la base d'un bit de signe associé à la sortie décalée pour former une autre sortie décalée représentative d'une opération d'addition de la sortie décalée et de l'entrée décalée. AIPE selon la revendication 1, dans lequel, pour que l'opération de réseau neuronal soit une opération ReLU paramétrique, le circuit décaleur est configuré pour fournir l'entrée décalable en tant que sortie décalée sans exécuter de décalage pour un bit de signe de l'entrée décalable qui est positif. Procédé implémenté par une entité informatique pour traiter une intelligence artificielle, comprenant les étapes de : admission d’une entrée décalable dérivée de données d'entrée pour une opération de réseau neuronal ; admission d’une instruction de décalage dérivée d'un paramètre quantifié logarithmiquement correspondant d'un réseau neuronal ou d'une valeur constante ; et décalage de l'entrée décalable dans une direction vers la gauche ou une direction vers la droite conformément à l'instruction de décalage pour former une sortie décalée représentative d'une multiplication de la donnée d'entrée avec le paramètre quantifié logarithmiquement correspondant du réseau neuronal.