OpenAI a dévoilé sur son blog le 6 décembre dernier un programme permettant de construire des réseaux de neurones plus rapides et plus efficaces.
Les matrices creuses pour accélérer le deep learning
Les réseaux de neurones, modelés sur le fonctionnement du cerveau humain, sont couramment utilisés dans le cadre du développement de systèmes d’intelligence artificielle, notamment via le deep learning. Les chercheurs d’OpenAI, Scott Gray, Alec Radford and Diederik P. Kingma, ont travaillé sur une nouvelle méthode permettant de rendre ces réseaux de neurones plus efficaces.
Pour cela, ils ont introduit dans leur conception des matrices creuses. Il s’agit d’une matrice contenant beaucoup de zéros. Très utilisées en analyse combinatoire et en théorie des réseaux notamment, les matrices creuses ont une faible densité de connections. Les données peuvent être compressées et contournées dans les multiplications de matrices. Cela permet d’utiliser moins de mémoire au niveau des GPU et d’économiser sur le calcul et par conséquent de mettre à profit ces bénéfices pour créer des réseaux de neurones profonds pouvant être entraînés de façon plus efficace. Les réseaux de neurones peuvent en effet faire fonctionner les algorithmes dix fois plus rapidement qu’une matrice classique.
Les block sparse GPU kernels
Ce constat effectué, les chercheurs d’OpenAI ont créé des “block sparse GPU kernels”. Ces noyaux optimisés permettent de créer sur des cartes graphiques Nvidia des réseaux de neurones basés sur les matrices creuses qui jusqu’alors ne les supportaient en effet pas. Codés en CUDA, le langage de programmation de Nvidia, les noyaux optimisés d’OpenAI sont pour l’instant uniquement compatibles avec le framework deep learning TensorFlow et supportent seulement les GPUs de Nvidia.
“Nous lançons des noyaux de GPU optimisés pour une gamme d’architecture de réseaux de neurones sous-explorée: les réseaux avec block-sparse weights.
Les noyaux permettent une évaluation et une différentiation efficace des couches linéaires (incluant les couches de réseaux convolutifs) avec des réglages flexibles. Nous avons découvert que selon la dispersion, ces noyaux peuvent exécuter des ordres de grandeur plus vite que les meilleures alternatives disponibles telles que cuBLAS.
Grâce à l’utilisation de noyaux optimisés, nous sommes parvenus à améliorer au-delà de l’état de l’art dans les domaines de l’analyse de sentiments dans le texte ou la modélisation générative de texte et d’images. En diffusant nos noyaux en open source, nous espérons aider à la conception de nouveaux modèles et algorithmes”
Fondée par Elon Musk, l’organisation de recherche en intelligence artificielle à but non lucratif cherche à promouvoir et à développer une intelligence artificielle au service du plus grand nombre. Ce faisant, les chercheurs d’OpenAI collaborent à divers organismes.
Leurs recherches et brevets sont partagés avec le grand public pour que d’autres puissent les utiliser. C’est le cas de ces block-sparse GPU kernels, disponibles sur GitHub. Le partage de ces noyaux optimisés devraient permettre à la communauté de chercheurs de se plonger dans les architectures de réseaux de neurones et d’obtenir davantage de données concernant les résultats de l’utilisation des matrices creuses en deep learning.