Rencontrez MLPerf, une référence pour mesurer la performance de l’apprentissage machine
Lorsque vous voulez voir si un CPU est plus rapide qu’un autre, vous avez PassMark. Pour les GPU, il y a Unigine’s Superposition. Mais que faites-vous lorsque vous avez besoin de savoir à quelle vitesse votre plate-forme d’apprentissage machine est – ou à quelle vitesse une plate-forme d’apprentissage machine dans laquelle vous envisagez d’investir est ?
David Kanter, expert en apprentissage machine, ainsi que des scientifiques et des ingénieurs d’organisations telles que Google, Intel et Microsoft, visent à répondre à cette question par les moyens suivants MLPerfune suite de référence en matière d’apprentissage machine. La mesure de la vitesse des plates-formes d’apprentissage machine est un problème qui devient de plus en plus complexe au fur et à mesure que vous l’examinez, car les ensembles de problèmes et les architectures varient considérablement dans le domaine de l’apprentissage machine – et en plus de la performance, le côté inférence de MLPerf doit également mesurer la précision.
Formation et inférence
Si vous ne travaillez pas directement avec l’apprentissage automatique, il est facile de confondre les termes. La première chose que vous devez comprendre est que les réseaux neuronaux ne sont pas vraiment programmés du tout : on leur donne (espérons-le) un grand ensemble de données connexes et on les lâche pour trouver des modèles. Cette phase de l’existence d’un réseau neuronal s’appelle la formation. Plus un réseau neuronal reçoit de formation, plus il peut apprendre à identifier des modèles et à déduire des règles pour l’aider à résoudre des problèmes.
Le coût informatique de la phase de formation est énorme (nous ne nous moquions pas de la partie » grande » de l’ensemble de données). À titre d’exemple, Google a formé les utilisateurs de Gmail à l’utilisation de SmartReply sur 238 000 000 000 d’échantillons de courriels, et Google Translate a été formé sur des billions d’échantillons. Les systèmes conçus pour la formation sont généralement énormes et puissants, et leur travail consiste à mastiquer les données le plus rapidement possible, ce qui nécessite des sous-systèmes de stockage étonnamment puissants, ainsi que des traitements, afin de maintenir l’alimentation du pipeline AI.
Après que le réseau neuronal est formé, on appelle inférence le fait d’en tirer des opérations et des informations utiles. L’inférence, contrairement à la formation, est généralement assez efficace. Si vous êtes plus lourd en informatique à l’ancienne qu’en apprentissage machine, cela peut être considéré comme similaire à la relation entre la construction d’un arbre b ou d’un autre index efficace à partir de données non structurées et le fait de trouver les résultats que vous voulez à partir de l’index complété.
Les performances sont certes toujours importantes lors de l’exécution des charges de travail d’inférence, mais les métriques – et l’architecture – sont différentes. Le même réseau neuronal pourrait être formé sur des supercalculateurs massifs tout en effectuant des inférences plus tard sur des smartphones à petit budget. La phase d’entraînement exige le plus grand nombre d’opérations par seconde possible, sans se soucier de la latence d’une opération en particulier. La phase d’inférence est souvent l’inverse – il y a un humain qui attend les résultats de cette requête d’inférence, et cet humain s’impatiente très rapidement en attendant de savoir combien il en a. girafes sont sur leur photo.
Les grands espaces à problèmes exigent des réponses complexes
Si vous espériez obtenir un seul score MLPerf pour votre PC, vous n’avez pas de chance. Des benchmarks holistiques simples comme PassMark ont le luxe de pouvoir supposer que les processeurs qu’ils testent sont à peu près similaires en architecture et en design. Bien sûr, Epyc d’AMD et Xeon Scalable d’Intel ont des forces et des faiblesses individuelles, mais ce sont tous les deux des processeurs x86_64, et il existe des hypothèses relativement sûres que vous pouvez faire sur les relations générales de performance entre une tâche et la suivante sur chaque CPU. Il est peu probable que les performances en virgule flottante soient des ordres de grandeur plus rapides que les performances en nombre entier sur le même processeur, par exemple.
Parce que Kanter et ses collègues voulaient que MLPerf soit applicable non seulement à un large éventail de charges de travail, mais aussi à un nombre vraiment écrasant d’architectures, ils ne pouvaient pas faire des suppositions similaires et ne pouvaient donc pas donner un seul score à votre matériel d’apprentissage machine. Les notes sont d’abord décomposées en charges de travail de formation et charges de travail d’inférence avant d’être divisées en tâches, modèles, ensembles de données et scénarios. Ainsi, le résultat de MLPerf n’est pas tant un score qu’une ligne particulièrement large dans une feuille de calcul.
Les tâches sont la classification des images, la détection d’objets et la traduction en langage naturel. Chaque tâche est évaluée en fonction de quatre scénarios :
- Flux unique-performance mesurée en latence
Exemple : une application de caméra pour smartphone fonctionnant avec une seule image à la fois - Flux multiples-performances mesurées en nombre de flux possibles (sous réserve de la limite de latence)
Exemple : un algorithme d’aide à la conduite échantillonnant plusieurs caméras et capteurs - Serveur-performances mesurées en requêtes par seconde (sous réserve de la limite de latence)
Exemple : sites de traduction de langues ou autres applications massivement parallèles mais en temps réel - Hors ligne-performance mesurée en débit brut
Exemple : tâches telles que le tri des photos et la création automatique d’albums, qui ne sont pas initiées par l’utilisateur et ne lui sont présentées qu’une fois terminées.
MLPerf sépare également les ensembles de résultats de référence en « divisions » ouvertes et fermées, avec des exigences plus strictes pour la division fermée ; à partir de là, le matériel est également séparé en catégories système de Disponible, Aperçu, et RDO (Recherche, Développement, Autre). Cela donne aux lecteurs de référence une idée de la proximité de la production réelle des systèmes sur banc et de la possibilité d’en acheter un directement sur le marché.
Vous trouverez plus d’informations sur les tâches, les modèles, les ensembles de données et les contraintes de la suite de benchmarks d’inférence. ici.
Premiers résultats
Jusqu’à présent, près de 600 benchmarks ont été soumis au projet par des fournisseurs de cloud computing, des constructeurs de systèmes, des fournisseurs de puces et de logiciels, et des universités. Bien que l’interprétation des résultats nécessite encore beaucoup de connaissances du monde réel, il est impressionnant de trouver un seul système complet qui peut comparer un smartphone, un superordinateur et un cluster hyperéchelle côte à côte d’une manière significative.
La suite de benchmarks de formation MLPerf a été lancée en mai 2018 et les premiers résultats ont été publiés en décembre 2018. La suite d’inférences a été lancée le 24 juin 2019, et les initiales bilan a été mis en service hier, le 6 novembre.