jeudi, 6 octobre 2022

Concevoir des systèmes d’IA : principes de base des logiciels et du matériel d’IA

L’intelligence artificielle résout actuellement des problèmes dans tous les aspects de notre vie, de la réalisation de films d’animation à l’exploration de zones, en passant par les systèmes de recommandation de restauration rapide qui améliorent l’efficacité des achats. Ces exemples de systèmes d’IA du monde réel ne sont que le début de ce qui est possible dans un futur AI Everywhere et ils testent actuellement les limites de la puissance de calcul. Les solutions de système d’IA de demain nécessiteront une optimisation de haut en bas de la pile, du matériel à l’application logicielle, y compris dans les outils et les cadres utilisés pour mettre en œuvre des pipelines d’IA et de science des données de bout en bout.

Mathématiques de l’IA les opérations nécessitent un matériel efficace

Un exemple de base peut aider à illustrer la racine du défi. Dans Architecture All Gain Access To: Expert System Part 1– Basics, Andres Rodriguez, Intel Fellow et AI Designer, montre comment un réseau de neurones profonds (DNN) de base pour reconnaître les chiffres à partir de nombres manuscrits nécessite plus de 100 000 paramètres de pondération pour simplement la première couche de reproductions. Il s’agit d’un DNN simple qui traite des images en noir et blanc 28 × 28.

Les services d’intelligence artificielle d’aujourd’hui traitent des cadres d’image de 1280 × 720 et plus, avec des canaux séparés pour le rouge, le vert et le bleu. Et les réseaux de neurones sont plus compliqués, car ils doivent déterminer et suivre plusieurs objets d’une image à l’autre, ou extraire la signification de différents plans de mots qui peuvent ou non affecter cette signification. Nous voyons actuellement des conceptions dépassant des billions de paramètres qui nécessitent plusieurs semaines pour s’entraîner. Les solutions d’IA de demain seront encore plus complexes, combinant de nombreux types de modèles et d’informations.

L’avancement des applications d’IA est une procédure itérative, donc l’accélération des tâches gourmandes en calcul peut augmenter la capacité d’un concepteur à explorer plus de choix ou simplement à obtenir leur tâche accomplie plus rapidement. Comme Andres le décrit dans la vidéo ci-dessus, les reproductions matricielles constituent souvent l’essentiel de la charge de calcul tout au long du processus de formation.

Dans Architecture All Gain Access To : Artificial Intelligence Part 2– Hardware, Andres compare les différentes capacités de CPU, GPU et différentes architectures spécialisées. Les appareils spécifiques à l’IA, et de nombreux nouveaux GPU, ont des tableaux systoliques de multiplication-accumulation (MAC) qui peuvent paralléliser les reproductions matricielles inhérentes à la procédure de formation.

La taille et la complexité des systèmes d’IA nécessitent une hétérogénéité matérielle

À mesure que les réseaux de neurones deviennent plus complexes et dynamiques, par exemple ceux dotés d’une structure de diagramme acyclique dirigé (DAG), ils limitent la capacité à paralléliser ces calculs. Et leur mémoire irrégulière accède aux modèles nécessitant un accès à la mémoire à faible latence. Les processeurs peuvent être parfaitement adaptés à ces exigences en raison de leur polyvalence et de leurs fréquences de fonctionnement plus élevées.

Avec l’augmentation de la taille du réseau, des quantités encore plus importantes d’informations doivent être déplacées entre le calcul et la mémoire. Compte tenu du développement des MAC facilement disponibles dans les gadgets matériels, la bande passante mémoire et la bande passante entre les nœuds d’un serveur et entre les serveurs finissent par être les éléments limitant les performances.

Une fois qu’un réseau est formé et préparé pour la sortie dans le cadre d’une application, un nouvel ensemble d’exigences matérielles se produit généralement. L’inférence de l’IA nécessite souvent une faible latence ou la production d’une réponse le plus rapidement possible, qu’il s’agisse de se tenir au courant du trafic urbain en temps réel, d’inspecter des pièces dans une chaîne de production ou de fournir rapidement des recommandations de restauration rapide pour réduire les temps d’attente. Les exigences supplémentaires telles que les dépenses, l’aspect de la forme et le profil de puissance ont tendance à être plus spécifiques à l’application. Les processeurs sont souvent utilisés pour le déploiement, car un cœur peut être dédié à l’inférence IA, laissant les autres cœurs facilement disponibles pour l’application et d’autres tâches.

Le modèle va vers un calcul plus hétérogène, combinant des processeurs à usage général comme calculer avec des ressources dédiées à l’IA. Le degré auquel ces gadgets sont spécialisés pour la formation par rapport à l’inférence peut différer, mais ils partagent des caractéristiques typiques qui améliorent le traitement de l’IA. Le type d’information Bfloat16 (BF16) fournit une plage vibrante à virgule flottante avec des longueurs de mots beaucoup plus courtes, réduisant la taille des informations et permettant un plus grand parallélisme. Les types de données entiers 8 bits (INT8) permettent une optimisation supplémentaire mais limitent la variété dynamique et obligent donc le développeur IA à faire des compromis d’exécution. Les réseaux systoliques dédiés basés sur MAC mettent en parallèle les lourdes charges de calcul liées à la formation et à l’inférence. Et la mémoire à large bande passante offre de larges autoroutes pour accélérer les informations entre le calcul et la mémoire. Mais ces matériels incluent une application logicielle qui peut en tirer parti.

Unifier et améliorer la pile logicielle

Un axe essentiel de ce modèle vers l’informatique hétérogène est un logiciel. oneAPI est un modèle d’émissions unifiées, ouvert et basé sur des normes, intersectoriel, qui offre une efficacité sur plusieurs architectures. L’effort oneAPI encourage la collaboration entre la communauté et le marché sur la spécification ouverte oneAPI et les implémentations oneAPI compatibles dans la communauté.

Nous avons déjà détaillé comment un système d’IA donné peut nécessiter différents types de matériel entre la formation et l’inférence. Même avant la formation, tout en préparant l’ensemble de données et en vérifiant les alternatives de réseau, un scientifique de l’information sera plus productif avec des temps de réaction plus rapides avec les tâches d’extraction, de transformation et de chargement de données (ETL). Différents systèmes auront également des exigences matérielles différentes selon le type d’IA en cours de développement.

L’IA fait généralement partie d’une application particulière, par exemple les exemples de réalisation de films, d’expédition spatiale ou de restauration rapide mentionnés précédemment. Cette couche supérieure de la pile est développée à l’aide de middleware et de frameworks d’IA.

Il n’y a pas de pénurie d’outils et de structures d’IA facilement disponibles pour produire, former et publier des modèles d’IA. Les développeurs les choisissent en fonction de leur tâche – par exemple PyTorch *, TensorFlow * ou autres pour l’apprentissage en profondeur, et XGBoost, scikit-learn * ou autres pour l’apprentissage automatique – en fonction de leur expérience, de leurs choix ou de la réutilisation du code. Cette couche de la pile comprend également les bibliothèques utilisées tout au long du développement d’applications et d’IA, telles que NumPy, SciPy ou pandas. Ces frameworks et bibliothèques sont les moteurs qui automatisent les tâches de science de l’information et d’IA.

Avec tout le développement du matériel pour accélérer l’IA, comment une structure ou une bibliothèque peut-elle comprendre comment tirer parti des ressources matérielles dont elle dispose en cours d’exécution ? Cette couche inférieure de la pile logicielle est ce qui permet à toutes les applications logicielles des couches supérieures de se connecter au matériel spécifique sur lequel elles fonctionnent, sans avoir à composer de code spécifique au matériel. Comme Huma Abidi, ancien directeur du système expert et de l’apprentissage en profondeur chez Intel, l’explique dans Architecture All Gain Access To: Artificial Intelligence Part 3– Software, cette couche est développée par des développeurs qui comprennent les capacités et les ensembles d’instructions facilement disponibles sur un gadget donné. .

Alors que les modèles deviennent de plus en plus gros, un seul appareil ne dispose plus de suffisamment de ressources de calcul ou de mémoire pour effectuer efficacement tous les calculs requis. Les développements dans les architectures matérielles permettent des clusters de puissance de calcul avec une mémoire à large bande passante qui peut disperser les tâches sur le cluster. L’application logicielle qui fractionne et répartit les gros travaux est un domaine d’innovation très actif pour les besoins de demain. La co-optimisation est essentielle La co-optimisation du matériel et des logiciels

dans la bibliothèque Intel oneAPI Deep Neural Network Library (oneDNN) a en fait permis des gains de performances substantiels dans les applications d’apprentissage en profondeur basées sur TensorFlow *, PyTorch * et Apache MXNet *. De même, les applications d’apprentissage automatique utilisant XGBoost et scikit-learn ont en fait tiré parti de la bibliothèque d’analyse de données Intel oneAPI (oneDAL). Ce même type de collaboration inter-domaines entre individus – en particulier les chercheurs en information, les ingénieurs

logiciels et les architectes – sera ce qui débloquera véritablement la capacité de développement de l’IA. Un bon exemple est la compression de modèle, qui est une stratégie visant à réduire la taille d’un réseau de connaissance approfondie pour la mise en œuvre. Une méthode de compression de modèle, la quantification au type d’information INT8, a été signalée précédemment. Un ingénieur logiciel peut apprécier que la relocalisation vers des longueurs de mot et des opérations de 8 bits réduira la

taille des poids et la taille des opérations, ce qui permet davantage d’opérations parallèles si elles sont prises en charge par l’ensemble de directives. Cette perte de variété dynamique peut nécessiter qu’un chercheur en informations modifie les données, par exemple en les normalisant à une plage de valeurs définie. Considérant que la précision du modèle diminuera, l’architecte compromet généralement la quantité de perte de précision tolérable pour l’accélération du raisonnement, ou si une conception à précision mixte est possible. Cette stratégie et d’autres puissantes stratégies de compression de modèles peuvent toutes être gérées avec des applications logicielles comme Intel ® Neural Compressor, mais elles nécessitent une collaboration entre des spécialistes de différentes disciplines. L’avenir a besoin de flexibilité et d’efficacité du système Les systèmes d’IA de demain seront encore plus spécifiques à l’application, ce qui suggère que chaque tâche aura diverses exigences en termes de

type d’informations, type d’algorithmes d’IA, comment l’IA est intégré à l’application, et sur quel type de matériel il sera déployé. De plus, les conceptions seront plus complexes, par exemple en intégrant des conceptions qui prévoient la santé des possessions de services publics avec des modèles de menaces de sécurité avec une reconnaissance visuelle active des problèmes potentiels. L’exigence typique à travers tout cela est des systèmes matériels et logiciels hautes performances qui peuvent s’adapter à une variété d’exigences de projet. Notifications et clauses de non-responsabilité : les technologies Intel peuvent nécessiter l’activation

de matériel, de logiciel ou de service autorisée. Aucun produit ou composant ne peut être définitivement protégé. ©Intel Corporation. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d’Intel Corporation ou de ses filiales. D’autres noms et noms de marque peuvent être déclarés comme la propriété d’autrui.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici