AWS vs Paperspace vs FloydHub: Choix de votre partenaire GPU dans le cloud

L'apprentissage en profondeur marquant aujourd'hui presque toutes les industries, la demande et l'intérêt pour des rôles tels que «Data Scientist», «Ingénieur ML / DL», «Scientifique en IA», etc. ont connu une augmentation sans précédent. De plus en plus d'étudiants, de nouveaux diplômés et de professionnels de l'industrie réalisent qu'il est nécessaire de rester au courant de ces technologies émergentes et suivent des cours, des certifications et des emplois dans ces domaines. Une fois que vous décidez de vous lancer dans le domaine, la première chose dont vous avez besoin est une grande puissance de calcul. C’est là que les GPU entrent en jeu.

Toutefois, la construction de votre propre plate-forme d'apprentissage en profondeur est une affaire coûteuse. Facteur des coûts d’un GPU, d’un CPU, d’un SSD, d’une carte mère et d’un bloc d’alimentation compatibles, rapide et puissant, de la climatisation, de la maintenance et de la détérioration des composants. En plus de cela, vous courez le risque de prendre du retard sur le dernier matériel dans ce secteur en évolution rapide.

De plus, il ne suffit pas d'assembler les composants. Vous devez configurer toutes les bibliothèques requises et les pilotes compatibles avant de pouvoir commencer à former votre premier modèle. Les gens continuent de suivre cette voie et si vous envisagez d'utiliser intensivement l'apprentissage approfondi (> 150 heures / mois), la création de votre propre poste de travail d'apprentissage approfondi pourrait être la bonne solution.

Une alternative plus avantageuse et moins chère consiste à utiliser des serveurs GPU basés sur le cloud fournis par Amazon, Google, Microsoft, etc., en particulier si vous vous aventurez dans ce domaine et prévoyez d'utiliser la puissance de calcul pour apprendre et expérimenter. J'utilise AWS, Paperspace et FloydHub depuis 4 à 5 mois. Google Cloud Platform et Microsoft Azure étaient similaires à AWS en ce qui concerne les prix et les offres. Par conséquent, je suis resté fidèle aux trois précédents.

AWS: fournisseur de services cloud le plus populaire. Offre des instances de GPU sécurisées et évolutives ainsi que des intégrations AI supplémentaires telles que Polly, Rekognition, Lex et AWS Machine Learning (disponible dans certaines régions).

Espace papier: ordinateurs virtuels en nuage avec prise en charge du processeur graphique pour les besoins en matière de jeu, de conception et de programmation (ML / DL). Offre les derniers GPU NVIDIA ainsi que des packages pré-installés et quelques frameworks DL à des prix compétitifs.

FloydHub: Commercialisé sous le nom de «Heroku pour DL», Floyd encourage la collaboration en source ouverte en introduisant des projets et des jeux de données publics. Possède sa propre interface de ligne de commande pour les modèles de formation utilisant Caffe, PyTorch, Chainer, MxNet, TF, Keras et autres.

Choisissez une instance p2.xlarge avec une adresse IP élastique et un volume EBS de 30 Go (appartenant à Free Tier) sur AWS, un GPU Ubuntu ML-in-a-Box et une machine virtuelle avec un SSD de 50 Go sur Paperspace et un scientifique de données de base.

La comparaison entre les trois peut être étendue, chacun offrant des avantages uniques. Cependant, je vais me limiter aux six aspects clés qui conviendraient le mieux aux débutants dans ce domaine ou à ceux qui envisagent d’utiliser ces plateformes pour des projets de loisirs à petite échelle.

[MISE À JOUR | Mai 2018]: Ce message a maintenant plus de 6 mois. En cette ère de technologie en constante évolution avec des mises à niveau matérielles / logicielles, toute comparaison entre différentes plates-formes technologiques devient rapidement obsolète. Ainsi, j’ai ajouté des extraits de sections UPDATE à des endroits pertinents de ce message et un extrait pour résumer le tout, à la fin. Toutefois, les mises à jour ne doivent en aucun cas être considérées comme exhaustives.

Facilité d'installation:

La configuration d'une instance entièrement configurée sur AWS est difficile, malgré le fait que vous disposiez de didacticiels de configuration complets sur le Web. Des scripts de shell appropriés doivent être exécutés pour configurer le volume EBS, configurer des adresses IP dédiées et également installer les packages, outils logiciels et bibliothèques DL requis. Bien sûr, vous pouvez utiliser certaines des IAM Deep Learning disponibles gratuitement. Néanmoins, ils nécessitent encore un peu d'effort.

D'autre part, Paperspace et FloydHub sont fiers de permettre à leurs utilisateurs de configurer les instances en quelques minutes. Avec FloydHub, vous devez installer un CLI distinct. Cependant, les instructions fournies sont assez claires et une fois que vous vous êtes connecté, vous êtes accueilli dans de nombreux environnements DL différents. L'installation de paquets supplémentaires n'est pas très difficile non plus. Sur Paperspace, vous pouvez également exécuter votre instance en quelques clics. Toutefois, certains packages et infrastructures supplémentaires peuvent nécessiter une installation manuelle pour une expérience complète.

Expérience utilisateur :

Le chargement / téléchargement de jeux de données est le principal problème lors de l’utilisation des services de GPU en nuage. Avec AWS, FileZilla Client peut être utilisé pour transférer des fichiers. L'utilisation de commandes telles que curl et wget depuis le terminal ne fonctionne pas toujours et il faut compter sur d'autres hacks open-source. AWS, toutefois, facilite le téléchargement de données pour les compétitions Kaggle via kaggle-cli. Paperspace fournit un accès Internet par fibre optique de 1 Gbps et un navigateur Web. Actuellement, il fournit également une fonctionnalité de glisser-déposer pour les machines Windows (à venir pour Linux) permettant de transférer directement des fichiers de votre ordinateur local vers la machine virtuelle. Lorsque vous utilisez FloydHub, vous devez télécharger le jeu de données localement, puis le télécharger sur leur compte. Le code et les données doivent être conservés séparément sur votre système local, car chaque fois que le script est exécuté, tout le contenu du dossier est téléchargé.

Paperspace et FloydHub, nouveaux venus sur le marché, se rangent derrière AWS en termes de prise en charge de la communauté open-source, de disponibilité de tutoriels et d’expériences vidéo. Cependant, leur documentation officielle et leurs exemples sont assez complets.

Ce qu'il faut noter: Floyd CLI met un certain temps à s'y habituer. De nombreux processus diffèrent de ceux des terminaux standard ou des postes de travail. C'est donc une bonne idée de consulter religieusement la documentation et les FAQ de FloydHub. Si vous êtes un utilisateur de Paperspace éloigné des États-Unis (Europe de l’Est / Asie), attendez-vous à une certaine latence lors de l’utilisation de l’environnement de bureau.

Matériel / logiciel offert:

AWS et FloydHub utilisent des GPU Tesla K80 (vRAM de 12 Go) et 61 Go de RAM, tandis que Paperspace propose des options pour Quadro M4000 (vRAM de 8 Go), un couple de la série Pascal (16–24 Go de vRAM) et même la dernière série Volta, Tesla V100 (16 Go de vRAM). ), chacun avec 30 Go de RAM. Pour donner une estimation approximative, les GPU de la série Pascal sont 3 fois plus rapides que les K80, alors que le V100 est 6 fois plus rapide que les K80. AWS et Paperspace utilisent également des instances SSD et GPU dédiées, tandis que FloydHub offre le choix entre des GPU préemptables et dédiés.

La manière habituelle d’exécuter des scripts sur ces services consiste à utiliser les blocs-notes Jupyter ou à les exécuter directement sur le terminal. Paperspace, grâce à la fourniture d'un environnement de bureau, autorise également les IDE tels que Spyder et d'autres logiciels utilitaires. La présence d'un bureau Linux est très pratique.

[MISE À JOUR | Mai 2018]: Les trois d'entre eux (AWS / Paperspace / FloydHub) sont désormais passés aux GPU NVIDIA Volta, rendant ainsi possible une formation et une inférence ultra-rapides. En termes de logiciels et de cadres, AWS a mis à jour son AMI Deep Learning, qui inclut des cadres pré-installés tels que Chainer, TensorFlow, Keras, PyTorch. FloydHub a déjà les dernières versions de tous ces frameworks.

Performance:

En guise d’exercice d’analyse comparative, j’ai comparé la formation de plusieurs modèles sur les trois plates-formes du même environnement (Keras + Theano sur Jupyter).
AWS - p2.xlarge (Tesla K80, 12 Go de vRAM, 61 Go de RAM)
Espace papier - GPU + VM (Quadro M4000, 8 Go vRAM, 30 Go de RAM)
FloydHub - Tesla K80, 12 Go de vRAM, 61 Go (équivalent au plan de base)

Deux modèles ont été formés: un modèle CNN détaillé avec l'ensemble de données Dropout on Fashion MNIST et un réseau VGG16 pré-formé et pré-formé sur une tâche de classification d'images de produits d'épicerie. Leur performance est décrite ci-dessous.

Modèle de performance sur différentes plates-formes (plus petit est mieux)

AWS p2.xlarge et Paperspace GPU + ont des performances presque équivalentes à celles d'AWS. Si nous utilisons les versions Pascal sur Paperspace, qui sont toujours meilleur marché que AWS, les performances du modèle devraient être 3 fois plus rapides que celles d'AWS. Malgré l'utilisation du même matériel, FloydHub utilise environ 0,75 fois AWS, probablement en raison d'une vitesse de lecture du disque plus lente.

[MISE À JOUR | Mai 2018]: C'est probablement la mise à jour la plus intéressante. En exécutant les mêmes expériences / scripts que ceux mentionnés ci-dessus, j'ai récemment constaté une amélioration considérable du temps de formation sur FloydHub. Les derniers chiffres montrent qu'ils sont au pair avec AWS ou Paperspace GPU + ou même mieux. FloydHub semble avoir corrigé les problèmes d’E / S et, après avoir mis à niveau les dernières versions de TensorFlow, Keras et PyTorch, il semble avoir fait des merveilles pour cette plate-forme. Le script Fashion MNIST prend maintenant 8s / heure pendant la formation, tandis que le script VGG16 pré-formé prend beaucoup moins (~ 100s / époque). Bien que je n’aie pas vérifié si Paperspace avait également apporté des améliorations, AWS ne l’a certainement pas fait. Donc, pour l'instant, FloydHub apparaît comme le plus rapide parmi les trois.

Caractéristiques supplémentaires :

Paperspace et FloydHub proposent des plans personnalisés pour les équipes. Cependant, les fonctionnalités associées de Floyd telles que le partage centralisé des ensembles de données / projets, la gestion des versions de divers travaux pour une reproductibilité aisée et la prise en charge des MOOCs fast.ai et Udacity facilitent la collaboration et la création d’une atmosphère open source propice. Floyd permet également l'exécution simultanée de travaux. AWS propose des instances multi-GPU, alors que FloydHub et Paperspace ne prennent en charge que des systèmes à un seul GPU.

[MISE À JOUR | Mai 2018]: Alors que AWS se concentrait davantage sur les applications latérales privilégiant les systèmes de production et d'entreprise, Paperspace et FloydHub ont tous deux introduit de nombreuses nouvelles fonctionnalités destinées à améliorer la facilité d'utilisation et la facilité d'accès des GPU au grand public. Certains d'entre eux ont été:
[FloydHub]: intégration lente, favorisant l'utilisation entre les équipes
[FloydHub]: interface utilisateur de gestion des tâches, tableau de bord des mesures
[FloydHub]: version bêta d'un nouvel environnement interactif (similaire à une machine virtuelle sur le cloud), appelée Workspace
[Paperspace]: Collaboration en tant que partenaire officiel du cours fast.ai de Jeremy Howard
[Paperspace]: Gradient d'espace presse et API, avec leur propre CLI, qui sont respectivement des outils pour exécuter vos tâches efficacement sur le cloud et un devkit pour automatiser vos machines virtuelles / travaux (adapté à DevOps!).
Avec les solutions de collaboration Workspace, Gradient et fast.ai, FloydHub et Paperspace se sont rapprochés pour proposer des fonctionnalités similaires.

Prix:

La tarification est probablement le critère de sélection le plus important. Actuellement, la facturation est calculée au prorata à la seconde pour AWS et FloydHub et à une milliseconde près pour Paperspace.

Les instances du processeur graphique AWS commencent à 0,9 USD / heure avec 30 Go de volume EBS gratuit dans le programme Free Tier. Un volume SSD de 100 Go + une IP élastique coûterait 13 $ de plus par mois. AWS fournit également des instances ponctuelles beaucoup moins chères, mais très sensibles aux fluctuations de prix et, partant, non fiables.

Paperspace propose des GPU Maxwell à 0,4 USD / heure et des GPU Pascal à 0,65 USD / heure. Un SSD de 100 Go avec une adresse IP publique coûtera 7 $ par mois. Des services publics supplémentaires sont également fournis.

FloydHub est récemment passé d'un modèle de paiement par répartition à des plans mensuels bien définis. Le forfait Scientifique de données de base coûte 14 USD / mois pour 10 heures GPU et 100 Go de stockage. Des heures supplémentaires pouvant être réservées au GPU peuvent être achetées à partir de 0,59 $ / heure. Une prime est facturée pour les instances GPU dédiées.

[MISE À JOUR | Mai 2018]: La structure de prix de FloydHub a considérablement changé, alors que celle d’AWS et de Paperspace reste pratiquement la même. L’espace presse reste l’option la plus abordable.

Déploiement :

Je n’ai pas essayé de déployer un modèle sur l’un d’eux. Floyd fournit une commande sur une ligne pour déployer votre modèle en tant qu'API REST. AWS dispose d'une multitude de services associés pour améliorer encore votre expérience de déploiement d'applications. Mettra à jour une fois que je les explore.

Résumant les aspects clés dans le tableau ci-dessous.

Comparaison des principaux aspects des fournisseurs de services GPU sur cloud
[MISE À JOUR | Mai 2018]: Il n'y a pas beaucoup de changements dans le tableau ci-dessus, à l'exception de la section Performance, où FloydHub est le plus rapide actuellement. Sur le plan matériel / logiciel, les trois sont à un niveau de rattachement.

Si vous avez déjà utilisé l'un de ces services auparavant, partagez votre expérience. Si vous ne le faites pas, allez-y maintenant. Ce serait bien d'avoir vos suggestions ci-dessous.