L’entraînement des modèles de deep learning prend du temps. Pour réduire ces délais, IBM vient de présenter un moyen de répartir automatiquement ces tâches sur plusieurs serveurs physiques. Il ne s’agit pas simplement de les répartir entre plusieurs GPU mais sur un ensemble de systèmes disposant chacun de jeux de GPU distincts. Pour l’instant, cela ne fonctionne qu’avec le logiciel PowerAI d’IBM dans sa version 4.0. Et celui-ci fonctionne uniquement sur les propres serveurs OpenPower d’IBM. Ce deep learning distribué (DDL) n’oblige pas les développeurs à apprendre un nouveau framework. Il s’appuie sur plusieurs solutions déjà bien connues par les familiers de l’apprentissage machine : TensorFlow, Torch, Caffe, Chainer et Theano.
Les projets de deep learning qui recourent à ces frameworks peuvent alors fonctionner en parallèle à travers plusieurs noeuds. IBM indique que l’accélération apportée en ajoutant de noeuds est presque linéaire. Un benchmark utilisant les jeux de données RestNet-101 et ImageNet-22K ayant requis 16 jours pour s’exécuter sur un serveur IBM S822LC n’a demandé que 7 heures lorsqu’il a été distribué sur 64 systèmes équivalents. Il s’est donc exécuté 58 fois plus vite. Voir à ce sujet le billet publié aujourd'hui par Hillery Hunter, ingénieur et IBM Fellow.
DDL : une étroite intégration entre ses différentes composantes
Deux formules sont possibles pour mettre ce DDL en oeuvre dans les entreprises. La première solution consiste à acquérir les serveurs nécessaires, supportant deux Nvidia Tesla P100, au prix unitaire de 50 000 dollars. La deuxième solution consiste à exécuter le logiciel PowerAI dans une instance cloud fournie par le partenaire d’IBM Nimbix pour environ 0,43 dollar par heure. En revanche, il n’est pas possible d’exploiter PowerAI sur de simples serveurs Intel x86. IBM ne prévoit pas de proposer son logiciel sur ces plateformes. Il explique qu’il a réalisé une étroite intégration entre les composantes propriétaires de PowerAI et les systèmes OpenPower conçus pour les supporter. L’essentiel du bénéfice obtenu vient du système d’interconnexion machine-to-machine qui s’exécute au-dessus du fabric utilisé, souligne big blue. Il s’agit d’un lien InfiniBand, même qu’IBM assure que cela peut aussi fonctionner avec des connexions Gigabit Ethernet (tout en reconnaissant que cela ne fonctionnera pas aussi vite).
Cela fait déjà un certain temps qu’il est possible d’entraîner des modèles de deep learning sur une grappe de système, même si chaque framework a généralement ses propres jeux de solutions. Avec Caffe, par exemple, il y a le système Parallel ML ou CaffeOnSpark. TensorFlow peut aussi être distribué sur plusieurs serveurs, mais là encore, l’intégration avec les autres frameworks devra être ajoutée spécifiquement. Ce qu’apporte IBM, c’est que sa solution fonctionne avec différents frameworks sans devoir ajouter des éléments qui compliquerait la mise en oeuvre. Mais la contrainte, c’est que le tout doit fonctionner sur des systèmes IBM.