IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Des universitaires ont créé une alternative économique au GPU pour former des réseaux neuronaux profonds plus rapidement
Et à moindre coût grâce aux CPU

Le , par Bill Fassinou

32PARTAGES

6  0 
L’apprentissage profond a des capacités très prometteuses et est un outil important sur lequel s’appuie l’intelligence artificielle qu’utilisent les technologies comme les assistants vocaux, les logiciels de reconnaissance faciale, etc. Cela dit, sa mise en œuvre est un processus long et coûteux pour les entreprises qui en font usage. Mais les scientifiques de l'université de Rice à Houston viennent de démontrer qu'il est possible d'accélérer la technologie d'apprentissage profond sans forcément utiliser de matériels d'accélération spécialisés comme les GPU.

L’apprentissage profond (ou deep learning) constitue une puissante forme d’intelligence artificielle (IA) qui fonde généralement sa puissance de calcul sur des dispositifs comme les GPU et d’autres matériels, ce qui nécessite des investissements très importants de la part des entreprises. Mais les choses pourraient bientôt changer avec la dernière trouvaille des chercheurs de l’université de Rice. Ils ont trouvé un moyen de former des réseaux neuronaux profonds plus rapidement et à moindre coût grâce aux CPU.

En effet, les universitaires ont créé une alternative économique au GPU, un algorithme appelé “moteur d'apprentissage profond sublinéaire” (SLIDE) qui utilise simplement des unités centrales de traitement (CPU) à usage général sans matériel d'accélération spécialisé. SLIDE n'a pas besoin de GPU, car il se base sur une approche fondamentalement différente de celle de l'apprentissage profond. Ils ont expliqué que l’apprentissage profond utilise la technique d'apprentissage par “rétropropagation”, une approche qui nécessite une multiplication matricielle.

Cependant, dans le cas de SLIDE, les chercheurs ont transformé la formation aux réseaux de neurones en un problème de recherche qui pourrait plutôt être résolu avec des tables de hachage. C’est une approche qui réduit radicalement les frais de calcul pour SLIDE par rapport à la formation à la rétropropagation. Par exemple, une plateforme GPU haut de gamme comme celles qu'Amazon, Google et d'autres proposent pour les services d'apprentissage profond en nuage possède huit GPU Tesla V100 et coûte environ 100 000 dollars.


Le hachage (encore appelé fonction de hachage) est une méthode d'indexation des données inventée pour la recherche sur Internet dans les années 1990. Elle utilise des méthodes numériques pour coder de grandes quantités d'informations, comme des pages Web entières ou des chapitres de livre, sous la forme d'une chaîne de chiffres appelée hash. Les tables de hachage sont des listes de hashs qui peuvent être recherchées très rapidement. Selon les chercheurs, c'est pour cette raison qu’ils ont choisi d'utiliser un algorithme de hachage.

« Nos tests témoignent que SLIDE est la première implémentation algorithmique intelligente de l’apprentissage profond sur un CPU qui peut surpasser l'accélération matérielle GPU sur des ensembles de données de recommandation à l'échelle industrielle avec de grandes architectures entièrement connectées », a déclaré Anshumali Shrivastava, un professeur assistant à l'école d'ingénierie Brown de Rice qui a inventé SLIDE avec les étudiants diplômés Beidi Chen et Tharun Medini. Ils ont ensuite effectué des tests qui se sont montrés concluants.

Les universitaires ont pris une charge de travail complexe et l'ont transmise à la fois à un GPU v100 utilisant le logiciel TensorFlow de Google et à un “CPU de classe Xeon à 44 cœurs” utilisant SLIDE, et a constaté que le CPU pouvait terminer la formation en une heure seulement, contre trois heures et demie pour le GPU. Selon les critiques, il n'existe pas de CPU de classe Xeon à 44 cœurs. Il est donc probable que l'équipe fasse référence à un CPU à 22 cœurs et 44 fils. Selon eux, le plus grand avantage de SLIDE par rapport à la rétropropagation est qu'il s'agit de données parallèles.

« Par données parallèles, j'entends que si je veux m'entraîner avec deux données différentes, disons que l'une est l'image d'un chat et l'autre d'un bus, elles activeront probablement des neurones différents, et SLIDE peut mettre à jour ou s'entraîner sur ces deux données indépendamment », a expliqué Anshumali Shrivastava. « C'est une bien meilleure utilisation du parallélisme pour les processeurs ». Toutefois, SLIDE a aussi son lot de problèmes. Selon le professeur, le revers de la médaille, comparé au GPU, est que l’on a maintenant besoin d'une plus grande mémoire.

« Il y a une hiérarchie de cache dans la mémoire principale, et si vous n'y faites pas attention, vous pouvez rencontrer un problème appelé “cache thrashing”, où vous avez beaucoup de manques de cache », a-t-il expliqué. Il a déclaré que les premières expériences de son groupe avec le SLIDE avaient produit des battements de cache importants, mais que leur temps d'entraînement était toujours comparable ou plus rapide que le temps d'entraînement des GPU. Selon lui, leurs collaborateurs d'Intel ont reconnu le problème de mise en cache et ont aidé à résoudre cela.

Le dispositif des universitaires est important, car il démontre qu’il existe d’autres moyens de mettre en oeuvre l’apprentissage profond. « Ne nous laissons pas engorger par la matrice de multiplication et la mémoire des GPU », a déclaré Chen. « Notre approche algorithmique est peut-être la première à battre le GPU, mais j'espère que ce n'est pas la dernière. Le domaine a besoin de nouvelles idées, et c'est une grande partie de ce que MLSys (Conference of Machine Learning System) représente ».

Source : Université de Rice

Et vous ?

Qu'en pensez-vous ?

Voir aussi

IA : IBM développe des modèles de machine learning pour la détection précoce de la maladie d'Alzheimer à partir d'un simple test sanguin

Google offre des millions de dollars à Wikimédia et des outils de Machine Learning pour faciliter le travail des rédacteurs d'articles de Wikipédia

L'« Ingénieur en Machine Learning » classé meilleur métier aux États-Unis en 2019 grâce à une croissance des offres de 344 % entre 2015 et 2018

McDonald's amorce l'acquisition de la startup de machine-learning Dynamic Yield pour 300 MM $ afin de créer un menu à emporter pouvant s'adapter

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de arond
Membre expérimenté https://www.developpez.com
Le 05/03/2020 à 16:20
s'ils avaient testé sur un Epyc ils auraient eu 64 vrais coeurs
3  0 
Avatar de eldran64
Membre extrêmement actif https://www.developpez.com
Le 06/03/2020 à 9:09
Citation Envoyé par arond Voir le message
s'ils avaient testé sur un Epyc ils auraient eu 64 vrais coeurs
J'approuve ce troll bien mérité
1  0 
Avatar de Steinvikel
Membre expert https://www.developpez.com
Le 05/03/2020 à 16:25
Quitte à franciser "Core" et "thread", pourquoi pas "CPU" également : unité centrale de traitement.
Qu'en disent nos cher Canado-Québecois ?

D'ailleurs, en anglais "core" fait référence à l'élément de calcul, tandis que "Core" fait référence à la fois à ce dernier et à l'architecture Intel Core™/®.
Je me trompe ? (petit doute)
1  1 
Avatar de rt15
Membre éclairé https://www.developpez.com
Le 10/03/2020 à 16:16
Citation Envoyé par Bill Fassinou Voir le message
où vous avez beaucoup de manques de cache
Ce qui manque c'est de la qualité dans la traduction.
Quand on a un "cache miss", le problème n'est pas forcément que l'on manque de cache mais que la donnée n'est pas dans le cache pour une raison X ou Y (par exemple un "cache thrashing".
Une bien meilleure traduction pour "cache misses" n'est donc pas "manques de cache" mais "défauts de cache" et là d'un coup la phrase fait sens.
0  0