Machine & Deep Learning sur place avec Red Hat OpenShift 4.7

En fournissant une grande quantité de données en tant qu’ensemble de formation, les ordinateurs ont été rendus capables de prendre des décisions et d’apprendre de façon autonome. L’IA est généralement entreprise en conjonction avec l’apprentissage automatique, l’apprentissage profond et l’analyse du Big Data. Tout au long de l’histoire de l’IA, la principale limitation a été la puissance de calcul, cpu-mémoire-gpu bandwith et des systèmes de stockage haute performance. L’apprentissage automatique nécessite une puissance de calcul immense avec l’exécution intelligente des commandes en gardant les processeurs et les gpus à une utilisation extrêmement élevée, soutenue pendant des heures, des jours ou des semaines. Dans cet article, nous discuterons des différentes alternatives pour ce type de charges de travail. Des environnements cloud comme Azure, AWS, IBM ou Google aux déploiements sur place avec des conteneurs sécurisés fonctionnant sur Red Hat OpenShift et utilisant IBM Power Systems.

Avant d’exécuter un modèle d’IA, il y a quelques choses à garder à l’esprit. Le choix des outils matériels et logiciels est tout aussi essentiel pour les algorithmes de résolution d’un problème particulier. Avant d’évaluer les meilleures options, nous devons d’abord comprendre les conditions préalables à l’établissement d’un environnement de fonctionnement de l’IA.

Quelles sont les conditions préalables matérielles pour exécuter une application d’IA ?

  • Puissance de calcul élevée (GPU peut enflammer l’apprentissage profond jusqu’à 100 fois plus que les processeurs standard)
  • Capacité de stockage et performances du disque
  • Infrastructure de réseautage (à partir de 10 Go)

Quelles sont les conditions préalables logicielles pour exécuter une application d’IA ?

  • Système d’exploitation
  • L’environnement informatique et ses variables
  • Bibliothèques et autres binaires
  • Fichiers de configuration

Comme nous connaissons maintenant les conditions préalables pour établir une configuration iA, nous allons plonger dans tous les composants et les meilleures combinaisons possibles. Il y a deux choix pour la mise en place d’un déploiement d’IA : le cloud et sur place. Nous vous avons déjà dit qu’aucun d’entre eux n’est meilleur car cela dépend de chaque situation.

Infrastructure cloud

Certains serveurs cloud traditionnels célèbres sont

  1. Services Web Amazon (AWS)
  2. Microsoft Azure
  3. Plate-forme Google Cloud (GCP)
  4. IBM Cloud

En plus de ceux-ci, il existe des nuages spécialisés pour l’apprentissage automatique. Ces nuages spécifiques à la ML fournissent un soutien aux GPU plutôt qu’aux Processeurs pour un meilleur calcul et des environnements logiciels spécialisés. Ces environnements sont idéaux pour les petites charges de travail lorsqu’il n’y a pas de données confidentielles ou sensibles. Lorsque nous devons télécharger et télécharger de nombreuses to de données ou exécuter des modèles intensifs pendant des semaines à la fois, être en mesure de réduire ces temps à des jours ou des heures et de les faire sur nos propres serveurs nous permet d’économiser beaucoup de coûts. Nous en reparlerons ensuite.

Serveurs sur place et déploiements platform-as-a-service (PAaS)

Il s’agit de serveurs spécialisés présents dans les locaux de travail d’une société d’IA. De nombreuses entreprises fournissent des serveurs iA hautement personnalisés ainsi que construits à partir de zéro sur prem. Par exemple, les AC922 et IC922 d’IBM sont parfaits pour la configuration iA sur place.

Les entreprises choisissent comme elles doivent tenir compte de la croissance future et du compromis entre les besoins actuels et les dépenses des deux ci-dessus. Si votre entreprise n’est qu’une start-up, les serveurs d’IA cloud sont les meilleurs car ce choix peut éliminer le souci des installations à des tarifs en quelque sorte abordables. Mais si votre entreprise augmente en nombre et que de plus en plus de scientifiques de données se joignent à l’informatique en nuage, l’informatique en nuage n’allégera pas vos fardeaux. Dans ce cas, les experts en technologie mettent l’accent sur l’infrastructure iA prém pour une meilleure sécurité, personnalisation et expansion.

LIRE AUSSI: Déployez votre cloud hybride pour ML et DL

Choisir la meilleure architecture HW

Presque toutes les plates-formes de service cloud offrent maintenant le calcul pris en charge par GPU que GPU a près de 100 fois plus puissant que le processeur moyen, surtout si l’apprentissage automatique est sur la vision par ordinateur. Mais le vrai problème est le débit de données entre le nœud et le serveur cloud, quel que soit le nombre d’UDI connectés. C’est pourquoi la configuration iA on-prem a plus de votes, car le flux de données n’est plus un gros problème.

Le deuxième point à considérer est la bande passante entre les GPU et les Processeurs. Sur les architectures traditionnelles telles qu’Intel, ce trafic est transféré sur les canaux PCI. IBM a développé un connecteur appelé NVLink, de sorte que les GPU de cartes NVidia et les noyaux Power9 puissent communiquer directement sans couches intermédiaires. Cela multiplie la bande passante, qui est déjà plus de 2 fois plus élevée entre le processeur et la mémoire. Résultat : plus de goulots d’étranglement !

Comme nous l’avons souligné ci-dessus les conditions préalables logicielles pour l’exécution des applications iA, nous devons maintenant considérer le meilleur environnement logiciel pour des performances optimales d’IA.

Quelle architecture de centre de données est la meilleure pour AI/DL/ML?

Tout en parlant de serveurs concernant l’infrastructure douce iA, la conception traditionnelle a été la virtualisation; il s’agit d’une simple distribution des ressources de calcul sous des systèmes d’exploitation distincts. Nous appelons chaque environnement de système d’exploitation indépendant une « machine virtuelle ». Si nous avons besoin d’exécuter des applications iA sur des machines virtuelles, nous sommes confrontés à de multiples contraintes. La première est les ressources nécessaires à l’exécution de l’ensemble du système, y compris les opérations de système d’exploitation et les opérations d’IA. Chaque machine virtuelle nécessite des ressources de calcul et de stockage supplémentaires. En outre, il n’est pas facile de transférer un programme en cours d’exécution sur une machine virtuelle spécifique à une autre machine virtuelle sans réinitialiser les variables environnementales.

Qu’est-ce qu’un conteneur?

Pour résoudre ce problème de virtualisation, le concept «Conteneur» saute dedans. Un conteneur est un environnement logiciel indépendant sous un système d’exploitation standard avec un environnement de temps d’exécution complet, une application iA et des dépendances, des bibliothèques, des binaires et des fichiers de configuration réunis en une seule entité. La conteneurisation offre des avantages supplémentaires car les opérations d’IA sont exécutées directement dans le conteneur, et OS n’a pas à envoyer chaque commande à chaque fois (ce qui permet d’enregistrer des instances de flux de données massives). Deuxièmement, mais pas moins, il est relativement facile de transférer un conteneur d’une plate-forme à une autre plate-forme, car ce transfert ne nécessite pas de changer les variables environnementales. Cette approche permet aux data scientists de se concentrer davantage sur l’application que sur l’environnement.

Plate-forme de conteneurs RedHat OpenShift

Le meilleur logiciel de conteneurisation intégré à Linux est la plate-forme de conteneurs OpenShift de Red Hat (un PAaS on-prem) basé sur Kubernetes. Ses fondamentaux sont construits sur des conteneurs CRI-O, tandis que les Kubernetes contrôlent la gestion de la conteneurisation. La dernière version d’Open Shift est 4.7. La mise à jour majeure fournie dans OpenShift 4.7 est son indépendance relative de Docker et une meilleure sécurité.

Opérateur NVIDIA GPU pour conteneurs Openshift

NVIDIA et Red Hat OpenShift se sont réunis pour aider à l’exécution des applications d’IA. Tout en utilisant les GPU comme processeurs à haut calcul, le plus gros problème est de virtualiser ou de distribuer la puissance des GPU à travers les conteneurs. NVIDIA GPU Operator for Red Hat Openshift est un Kubernetes qui médie la planification et la distribution des ressources GPU. Étant donné que le GPU est une ressource spéciale dans le cluster, il nécessite l’installation de quelques composants avant que les charges de travail des applications puissent être déployées sur le GPU, ces composants comprennent :

  • Pilotes NVIDIA
  • temps d’exécution spécifique pour kubernetes
  • plugin de dispositif de récipient
  • règles d’étiquetage automatique des nœuds
  • compnents de surveillance

Les cas d’utilisation les plus couramment utilisés qui utilisent les GPU pour l’accélération sont le traitement d’image, audition par ordinateur, IA conversationnelle en utilisant des NLP, et la vision par ordinateur en utilisant des réseaux neuronaux artificiels.

Environnement informatique pour l’apprentissage automatique

Il existe plusieurs environnements informatiques iA pour tester/exécuter des applications iA. Le haut d’entre eux est Tensorflow, Microsoft Azure, Apache Spark et PyTorch. Parmi ceux-ci, Tensorflow (Créé par Google) est choisi par le plus. Tensorflow est une plate-forme open source de bout en bout de qualité de production qui a des bibliothèques pour l’apprentissage automatique. L’unité de données principale utilisée dans TensorFlow et Pytorch est Tensor. La meilleure chose à propos de TensorFlow est qu’il utilise des graphiques de flux de données pour les opérations. C’est comme un flowchart, et les programmes gardent une trace du succès et de l’échec de chaque flux de données. Cette approche permet d’économiser beaucoup de temps en ne retourdant pas à la ligne de base d’une opération et en testant d’autres sous-modèles en cas d’échec d’un flux de données.

Jusqu’à présent, nous avons discuté de tous les choix pour établir une infrastructure d’IA, y compris le matériel et les logiciels. Il n’est pas facile de sélectionner un produit spécifique qui héberge tous les composants du système d’IA souhaités. IBM offre à la fois des composants matériels et logiciels pour la recherche et le développement efficaces et rentables de l’IA comme IBM Power Systems et IBM PowerAI, respectivement.

Systèmes d’alimentation IBM

IBM Power Systems dispose de composants flexibles et basés sur les besoins pour l’exécution d’un système d’IA. IBM Power Systems offre des serveurs accélérés comme IBM AC922 et IBM IC922 pour la formation ML et ml inférence, respectivement.

IBM PowerAI

IBM PowerAI est une plate-forme intelligente d’exécution de l’environnement iA facilitant l’apprentissage en profondeur efficace, l’apprentissage automatique et les applications iA en utilisant ibm Power Systems et NVidia GPUs pleine puissance. Il fournit de nombreuses optimisations qui accélèrent les performances, améliorent l’utilisation des ressources, facilitent l’installation, la personnalisation et préviennent les problèmes de gestion. Il fournit également des cadres d’apprentissage profond prêts à l’emploi tels que Theano, Bazel, OpenBLAS, TensorFlow,Caffe-BVLC ou IBM Caffe.

Qui est le meilleur serveur pour les déploiements sur place. Comparons IBM AC922 et IBM IC922

Si vous avez besoin de serveurs capables de résister à des charges d’apprentissage automatique pendant des mois ou des années sans interruption, fonctionnant à un pourcentage de charge élevé, les systèmes Intel ne sont pas une option. Les systèmes NVIDIA DGX sont également disponibles, mais comme ils ne peuvent pas virtualiser les GPU, lorsque vous souhaitez exécuter plusieurs modèles d’apprentissage différents, vous devez acheter plus de cartes graphiques, ce qui les rend beaucoup plus chers. Le choix du bon serveur dépendra également du budget. Les IC922 (conçus pour l’inférence d’IA et les charges de travail linux performantes élevées) sont environ la moitié du prix des AC922 (conçus pour la formation aux ensembles de données iA), de sorte que pour les petits projets, ils peuvent être parfaitement adaptés.

 

Si ces technologies vous intéressent, demandez
une démonstration
sans obligation. Nous avons des programmes où nous pouvons vous assigner un serveur complet pendant un mois afin que vous puissiez tester directement les avantages de cette architecture matérielle.

2021 - SiXe Ingénierie | Formation, conseil, services professionnels et projets clés en main | IBM, Lenovo, Docker, Red Hat , HCL, Tenable, MEDIGATE, Rapid7, Veeam, Sealpath & SUSE Partenaire commercial autorisé. Entreprise inscrite au catalogue des entreprises de cybersécurité d'INCIBE.
SiXe Ingeniería