Serveur d'impression

Le «Réformateur» plus efficace de Google va-t-il atténuer ou accélérer la course aux armements en IA? – Serveur d’impression

Le 25 février 2020 - 8 minutes de lecture

La promesse de la technologie est toujours plus pour des processeurs moins – plus rapides à des prix inférieurs, grâce à plus de circuits entassés dans la même zone de silicium.

Et l'intelligence artificielle a un analogue, se révèle-t-il, sur la base des travaux récents des ingénieurs de Google, qui ont trouvé un moyen de prendre le modèle de langage "Transformer" et d'en faire fonctionner une version dans une seule unité de traitement graphique, ou GPU, plutôt que les multiples unités de traitement graphique dont il a normalement besoin pour fonctionner.

Cela présente aux utilisateurs un choix intéressant. Si vous pouviez choisir entre obtenir la meilleure technologie en IA d'une manière plus facile à utiliser, opteriez-vous pour cela, ou voudriez-vous plutôt étendre la puissance de votre budget informatique existant pour en faire plus?

C'est comme demander: Aimeriez-vous payer moins cher pour un PC ou obtenir encore plus de puissance pour ce que vous avez payé? C'est un dilemme classique pour les acheteurs.

L'intention, au moins, des scientifiques de Google Nikita Kitaev (qui occupe également un poste à l'U.C.Berkeley, Łukasz Kaiser et Anselm Levskaya, est de rendre la puissance de Transformer disponible sur un budget, une invention qu'ils baptisent "Réformateur".

"Nous pensons que cela aidera les modèles Transformer volumineux et richement paramétrés à devenir plus répandus et accessibles", écrivent-ils dans le document officiel, publié sur le serveur de pré-impression arXiv cette semaine. (Il y a aussi un article de blog que Google a publié sur le travail.)

Voici la situation à laquelle ils s'attaquent. L'approche Transformer pour modéliser des données séquentielles a été introduite en 2017 par Ashish Vaswani et ses collègues de Google, et est devenue une sensation. L'approche consistant à utiliser «l'attention» pour prédire les éléments d'une séquence à partir d'autres éléments proches de celle-ci est devenue la base de nombreux modèles de langage, notamment le BERT de Google et le «GPT2» d'OpenAI.

reformer-lhs-hashing-jan-2020.png

Une illustration de la fonction de hachage "sensible à la localité" utilisée dans Google Reformer pour réduire le nombre d'activations qui doivent être stockées en mémoire. Les couleurs désignent des vecteurs proches en valeur qui peuvent être regroupés pour consolider le stockage.

Google.

Le problème est que ces méga-modèles prennent des tonnes de GPU à exécuter, principalement à cause de problèmes de mémoire, pas de problèmes de calcul. Les GPU utilisés pour entraîner des réseaux de neurones profonds comme Transformer, des puces telles que le V100 de Nvidia, ont tendance à avoir seize ou trente-deux gigaoctets de mémoire, et cela ne suffit pas pour contenir tous les paramètres des réseaux neuronaux avec des dizaines de couches de neurones, comme ainsi que la matrice d'activations de chaque neurone alors que le réseau essaie en parallèle différents appariements de symboles à la recherche des bonnes correspondances.

Prenez par exemple «XLNet», le grand bond en avant de l'an dernier dans la capacité de Transformer. Les auteurs Zhilin Yang et ses collègues écrivent dans leurs notes d'implémentation qu'ils ont fait tout leur travail sur la puce TPU de Google, "qui a généralement plus de RAM que les GPU courants". Ils font le calcul de ce qui serait nécessaire pour le déplacer vers les GPU: "[I]Il est actuellement très difficile (coûteux) de reproduire la plupart des résultats XLNet-Large SOTA dans le papier à l'aide de GPU. "Il faudrait 32 à 128 GPU pour égaler leur travail TPU, écrivent-ils.

Aussi: Google dit que la croissance «exponentielle» de l'IA change la nature du calcul

Le problème n'est pas seulement que les gens ne peuvent plus utiliser certaines formes d'apprentissage en profondeur. Une préoccupation plus profonde est que les affirmations concernant les réseaux neuronaux d'apprentissage profond qui pourraient faire des percées sont assombries par des ressources d'ingénierie massives. Les géants du cloud comme Google peuvent renforcer leurs ressources plutôt que de faire de véritables percées dans la science de l'IA. Cette préoccupation est bien exprimée par Anna Rogers dans un article sur Thinking Semantics cité par Kitaev.

Pour rendre Transformer plus accessible, Kitaev et ses collègues mettent en œuvre quelques astuces pour réduire l'empreinte mémoire, comme le hachage. Le hachage, où un code transforme une séquence de bits en une séquence de bits différente, peut être un moyen de réduire la taille totale des données. Dans ce cas, le «hachage sensible à la localité» regroupe des vecteurs proches les uns des autres en termes de valeurs. Ce sont les vecteurs "clés" utilisés par Transformer pour stocker les mots qu'il va rechercher dans le mécanisme d'attention.

"Par exemple, si K est de longueur 64K, pour chaque qi nous ne pouvions considérer qu'un petit sous-ensemble, disons, des 32 ou 64 clés les plus proches », écrivent Kitaev et ses collègues.["K"estlamatricedestoucheset"q"seréfèreauxrequêtesquiaccèdentauxtouches)quiéliminentleproblèmeN-carréhabituelduphosphatexplodesthenumberofvectorstostoreinmemory["K"estlamatricedestoucheset"q"seréfèreauxrequêtesquiaccèdentauxtouches)quiéliminentleproblèmeN-carréhabituelduphosphatexplodesthenumberofvectorstostoreinmemory[« K »isthematrixofkeysand »q »referstothequeriesthataccessthosekeys)ThateliminatestheusualN-squaredproblemthatexplodesthenumberofvectorstostoreinmemory[« K »isthematrixofkeysand »q »referstothequeriesthataccessthosekeys)ThateliminatestheusualN-squaredproblemthatexplodesthenumberofvectorstostoreinmemory

La deuxième grande chose qu'ils font est de réduire le nombre total d'activations de neurones qui doivent être stockées. Habituellement, tous doivent être stockés, afin de faciliter le passage en arrière de la rétroproposition qui calcule le gradient de la solution d'un réseau de neurones en traversant les activations de la couche. Ce stockage d'activation gonfle la mémoire lorsque le nombre de couches de neurones évolue. Mais Kitaev et son équipe adoptent ce qu'on appelle un «réseau résiduel réversible», développé en 2017 par Aidan Gomez et ses collègues de l'Université de Toronto. Gomez et son équipe ont adapté le ResNet traditionnel pour que les activations de chaque couche puissent être reconstruites à partir de la valeur stockée de la couche qui vient après, donc la plupart des activations n'ont pas besoin d'être stockées du tout.

Aussi: l'IA change toute la nature du calcul

"Le transformateur réversible n'a pas besoin de stocker les activations dans chaque couche et se débarrasse donc du terme nl", écrivent Kitaev et ses collègues, se référant aux N couches d'un réseau.

Avec ces efficacités, ils sont capables de transformer un transformateur à vingt couches en un seul GPU, écrivent-ils. Ils ne peuvent pas comparer directement ses performances à un transformateur complet à soixante-quatre couches, bien sûr, car le transformateur ne peut pas tenir dans le même GPU unique. Mais ils montrent des résultats qui semblent compétitifs.

Mais vient maintenant la question: Reformer peut également fonctionner beaucoup plus rapidement que Transformer fonctionnant dans l'empreinte informatique traditionnelle, dans ce cas, huit GPU fonctionnant en parallèle, avec les mêmes soixante-quatre couches que le Transformer complet. "Reformer correspond aux résultats obtenus avec Transformer complet mais s'exécute beaucoup plus rapidement, en particulier sur la tâche de texte, et avec des ordres de grandeur une meilleure efficacité de la mémoire."

Cela signifie qu'avec Reformer fonctionnant sur un gros fer, vous pouvez potentiellement traiter des millions de «jetons», c'est-à-dire les caractères individuels d'une œuvre écrite. Les auteurs se réfèrent au traitement de tout le texte de "Crime and Punishment" de Dostoïevski, 513 812 jetons, avec un réformateur sur la valeur d'une machine avec huit gigaoctets de mémoire. Vous pouvez imaginer que si Reformer est multiplié sur plusieurs machines, il pourrait fonctionner sur des données à une échelle considérablement accrue.

Si vous pouvez obtenir encore plus de performances de Reformer de cette manière, cela soulève la question: allez-vous prendre un Reformer qui peut fonctionner sur une seule machine et obtenir de bons résultats, ou allez-vous l'exécuter sur plusieurs GPU pour obtenir encore plus de puissance? Reformer réduira-t-il une partie de la course aux armements du matériel dans l'IA, ou ne fournira-t-il qu'un nouvel aspect à cette course aux armements?

Trop tôt pour le dire, peut-être un mélange des deux. Au moins, l'étendue des choix est maintenant plus grande.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.