AWS vs Paperspace vs FloydHub: Wählen Sie Ihren Cloud-GPU-Partner

Da Deep Learning heute in fast jeder Branche Einzug gehalten hat, ist die Nachfrage und das Interesse an Rollen wie „Data Scientist“, „ML / DL-Ingenieur“, „AI Scientist“ usw. in bisher unerreichter Weise gestiegen. Immer mehr Studenten, Absolventen und Fachleute aus der Industrie erkennen die Notwendigkeit, mit diesen neuen Technologien Schritt zu halten, und nehmen Kurse, Zertifizierungen und Jobs in diesen Bereichen auf. Sobald Sie sich entschlossen haben, in die Domäne einzusteigen, müssen Sie als Erstes eine hohe Rechenleistung bereitstellen. Hier kommen GPUs ins Spiel.

Es ist jedoch eine teure Angelegenheit, ein eigenes Deep-Learning-Rig zu bauen. Berücksichtigen Sie die Kosten für eine schnelle und leistungsstarke GPU, CPU, SSD, kompatibles Motherboard und Netzteil, Rechnungen für Klimaanlagen, Wartung und Beschädigung von Komponenten. Darüber hinaus besteht die Gefahr, dass Sie in dieser schnell wachsenden Branche auf die neueste Hardware zurückgreifen.

Darüber hinaus reicht es nicht aus, nur die Komponenten zusammenzubauen. Sie müssen alle erforderlichen Bibliotheken und kompatiblen Treiber einrichten, bevor Sie mit dem Training Ihres ersten Modells beginnen können. Die Leute gehen immer noch diesen Weg, und wenn Sie vorhaben, Deep Learning ausgiebig zu nutzen (> 150 Stunden / Monat), ist der Bau Ihrer eigenen Deep Learning-Workstation möglicherweise der richtige Schritt.

Eine bessere und billigere Alternative ist die Verwendung von cloudbasierten GPU-Servern, die von Amazon, Google, Microsoft und anderen Anbietern bereitgestellt werden. Dies gilt insbesondere dann, wenn Sie gerade in diese Domäne einbrechen und die Rechenleistung zum Lernen und Experimentieren nutzen möchten. Ich benutze AWS, Paperspace und FloydHub seit 4 bis 5 Monaten. Die Preise und Angebote von Google Cloud Platform und Microsoft Azure ähnelten denen von AWS. Daher habe ich mich an die drei oben genannten gehalten.

AWS: Beliebtester Cloud-Dienstanbieter. Bietet sichere und skalierbare GPU-Instanzen sowie zusätzliche AI-Integrationen wie Polly, Rekognition, Lex und AWS Machine Learning (in einigen Regionen verfügbar).

Paperspace: Cloud-VMs mit GPU-Unterstützung für Spiele, Design und Programmierung (ML / DL). Bietet die neuesten NVIDIA-GPUs sowie vorinstallierte Pakete und einige DL-Frameworks zu wettbewerbsfähigen Preisen.

FloydHub: Floyd wird als „Heroku für DL“ vermarktet und fördert die Open-Source-Zusammenarbeit durch die Einführung öffentlicher Projekte und Datensätze. Verfügt über eine eigene CLI für Trainingsmodelle mit Caffe, PyTorch, Chainer, MxNet, TF, Keras und anderen.

Wählen Sie eine p2.xlarge-Instanz mit elastischer IP und 30 GB EBS-Volumen (Teil von Free Tier) unter AWS, Ubuntu ML-in-a-Box-GPU + VM mit 50 GB SSD unter Paperspace und Base Data Scientist Plan ohne Powerups unter FloydHub.

Der Vergleich zwischen den dreien kann umfangreich sein und jeweils einzigartige Vorteile bieten. Ich beschränke mich jedoch auf sechs wichtige Aspekte, die für Anfänger in diesem Bereich oder für jemanden, der diese Plattformen für kleine Hobbyprojekte nutzen möchte, am relevantesten sind.

[UPDATE | Mai 2018]: Dieser Beitrag ist jetzt mehr als 6 Monate alt. In Zeiten sich ständig ändernder Technologien mit Hardware- / Software-Upgrades ist jeder Vergleich zwischen verschiedenen Technologieplattformen schnell veraltet. Daher habe ich an den relevanten Stellen in diesem Beitrag Ausschnitte aus UPDATE-Abschnitten hinzugefügt und am Ende einen, um alles zusammenzufassen. Die Aktualisierungen sollten jedoch keinesfalls als vollständig angesehen werden.

Einfache Einrichtung:

Das Einrichten einer vollständig konfigurierten Instanz in AWS ist schwierig, trotz umfangreicher Setup-Tutorials im Web. Geeignete Shell-Skripte müssen ausgeführt werden, um das EBS-Volume zu konfigurieren, dedizierte IPs einzurichten und die erforderlichen Pakete, Softwaretools und DL-Bibliotheken zu installieren. Natürlich können Sie einige der frei verfügbaren Deep Learning AMIs verwenden. Trotzdem sind sie noch ein wenig anstrengend.

Andererseits sind Paperspace und FloydHub stolz darauf, dass ihre Benutzer die Instanzen innerhalb von Minuten einrichten können. Bei FloydHub müssen Sie eine separate CLI installieren. Die Anweisungen sind jedoch ziemlich klar und sobald Sie sich anmelden, werden Sie in einer Vielzahl unterschiedlicher DL-Umgebungen begrüßt. Das Installieren zusätzlicher Pakete ist ebenfalls nicht sehr schwierig. Auch auf Paperspace können Sie Ihre Instanz mit wenigen Klicks ausführen. Für einige zusätzliche Pakete und Frameworks ist jedoch möglicherweise eine manuelle Installation erforderlich, um eine vollständige Funktionserfahrung zu erzielen.

Benutzererfahrung :

Das Hochladen / Herunterladen von Datensätzen ist das größte Problem bei der Verwendung von Cloud-GPU-Diensten. Mit AWS kann FileZilla Client zum Übertragen von Dateien verwendet werden. Die Verwendung von Befehlen wie curl und wget vom Terminal aus funktioniert nicht immer und andere Open-Source-Hacks müssen verwendet werden. AWS ermöglicht jedoch das einfache Herunterladen / Hochladen von Daten für Kaggle-Wettbewerbe über kaggle-cli. Paperspace bietet 1 Gbit / s Glasfaser-Internet und einen Webbrowser. Derzeit bietet es auch eine Drag-and-Drop-Funktion für Windows-Computer (in Kürze auch für Linux), mit der Dateien von Ihrem lokalen Computer direkt auf die VM übertragen werden können. Wenn Sie FloydHub verwenden, müssen Sie den Datensatz lokal herunterladen und dann auf Ihr Konto hochladen. Der Code und die Daten müssen auf Ihrem lokalen System separat gespeichert werden, da bei jeder Ausführung des Skripts der gesamte Ordnerinhalt hochgeladen wird.

Paperspace und FloydHub, die auf dem Block neu hinzugekommen sind, fallen in Bezug auf Open-Source-Community-Support, Verfügbarkeit von Tutorials und Video-Experimenten hinter AWS zurück. Ihre offiziellen Dokumentationen und Beispiele sind jedoch recht umfangreich.

Zu beachten: Floyd CLI ist etwas gewöhnungsbedürftig. Viele Prozesse unterscheiden sich von der standardmäßigen Terminal- oder Desktop-basierten Verwendung. Daher ist es eine gute Idee, die FloydHub-Dokumentation und die häufig gestellten Fragen (FAQs) religiös zu lesen. Wenn Sie ein Paperspace-Benutzer sind, der sich weit entfernt von den USA (Osteuropa / Asien) befindet, müssen Sie mit einer gewissen Latenz rechnen, während Sie die Desktop-Umgebung verwenden.

Hardware / Software angeboten:

AWS und FloydHub verwenden Tesla K80-GPUs (12 GB vRAM) und 61 GB RAM, während Paperspace Optionen für Quadro M4000 (8 GB vRAM), einige Modelle der Pascal-Serie (16–24 GB vRAM) und sogar die neueste Volta-Serie, Tesla V100 (16 GB vRAM), anbietet ) mit jeweils 30 GB RAM. Um eine grobe Schätzung zu geben, die GPUs der Pascal-Serie sind 3x schneller als die der K80, während die V100 6x schneller als die der K80 ist. AWS und Paperspace verwenden auch SSD- und dedizierte GPU-Instanzen, während FloydHub die Wahl zwischen vorab leeren und dedizierten GPUs bietet.

Skripts für diese Dienste werden normalerweise über Jupyter-Notizbücher ausgeführt oder direkt auf dem Terminal ausgeführt. Durch die Bereitstellung einer Desktop-Umgebung ermöglicht Paperspace auch IDEs wie Spyder und andere Dienstprogramme. Das Vorhandensein eines Linux-Desktops ist äußerst praktisch.

[UPDATE | Mai 2018]: Alle drei (AWS / Paperspace / FloydHub) haben sich jetzt auf NVIDIA Volta-GPUs umgestellt, wodurch superschnelles Training und Inferenz jetzt möglich werden. In Bezug auf Software und Frameworks hat AWS sein Deep Learning AMI aktualisiert, das vorinstallierte Frameworks wie Chainer, TensorFlow, Keras und PyTorch enthält. FloydHub verfügt bereits über die neuesten Versionen aller dieser Frameworks.

Leistung:

Als Benchmarking habe ich das Training mehrerer Modelle auf allen drei Plattformen unter derselben Umgebung (Keras + Theano bei Jupyter) verglichen.
AWS - p2.xlarge (Tesla K80, 12 GB RAM, 61 GB RAM)
Papierbereich - GPU + VM (Quadro M4000, 8 GB RAM, 30 GB RAM)
FloydHub - Tesla K80, 12 GB vRAM, 61 GB (entspricht Basisplan)

Zwei Modelle wurden trainiert - Ein Deep-CNN-Modell mit Dropout-on-Fashion-MNIST-Datensatz und ein fein abgestimmtes, vortrainiertes VGG16-Netzwerk für eine Aufgabe zur Klassifizierung von Lebensmittelprodukten. Ihre Leistung ist unten dargestellt.

Modellleistung auf verschiedenen Plattformen (kleiner ist besser)

AWS p2.xlarge und Paperspace GPU + bieten nahezu die gleiche Leistung, wobei AWS nur einen Schritt voraus ist. Wenn wir die Pascal-Versionen auf Paperspace verwenden, die immer noch billiger als AWS sind, wird erwartet, dass die Modellleistung dreimal so schnell ist wie die von AWS. Trotz der Verwendung der gleichen Hardware liegt FloydHub bei etwa dem 0,75-fachen von AWS, was höchstwahrscheinlich auf die langsamere Lesegeschwindigkeit der Festplatte zurückzuführen ist.

[UPDATE | Mai 2018]: Dies ist wahrscheinlich das interessanteste Update. Als ich die gleichen Experimente / Skripte wie oben ausgeführt habe, habe ich kürzlich eine enorme Verbesserung in der Trainingszeit von FloydHub festgestellt. Die neuesten Zahlen zeigen, dass sie mit AWS oder Paperspace GPU + oder noch besser gleichwertig sind. FloydHub scheint die E / A-Probleme behoben zu haben und auf die neuesten TensorFlow-, Keras- und PyTorch-Versionen aktualisiert zu sein. Dies scheint Wunder für diese Plattform bewirkt zu haben. Das Fashion MNIST-Skript benötigt jetzt während des Trainings 8s / Epoche, wohingegen das vorab trainierte VGG16-Skript jetzt viel weniger benötigt (~ 100s / Epoche). Ich habe zwar nicht geprüft, ob auch Paperspace einige Verbesserungen an derselben vorgenommen hat, aber AWS hat dies definitiv nicht getan. Damit ist FloydHub vorerst der schnellste unter den dreien.

Zusatzfunktionen :

Sowohl Paperspace als auch FloydHub bieten individuelle Pläne für Teams. Die damit verbundenen Funktionen von Floyd, wie die zentrale Freigabe von Datensätzen / Projekten, die Versionierung verschiedener Auftragsabläufe für eine einfache Reproduzierbarkeit und die Unterstützung von fast.ai- und Udacity-MOOCs, unterstützen die Zusammenarbeit und eine förderliche Open-Source-Atmosphäre. Floyd ermöglicht auch gleichzeitige Jobläufe. AWS bietet Multi-GPU-Instanzen, während FloydHub und Paperspace nur einzelne GPU-Systeme unterstützen.

[UPDATE | Mai 2018]: Während sich AWS mehr auf laterale Anwendungen konzentriert hat, die Unternehmens- und Produktionssysteme bevorzugen, haben Paperspace und FloydHub eine Reihe neuer Funktionen eingeführt, um die Benutzerfreundlichkeit und den Zugang von GPUs für die breite Öffentlichkeit zu verbessern. Einige davon waren:
[FloydHub]: Slack-Integration, die teamübergreifende Nutzung fördert
[FloydHub]: Job-Management-Benutzeroberfläche, Metrik-Dashboard
[FloydHub]: Eine Beta-Version einer neuen interaktiven Umgebung (ähnlich einer VM on Cloud) namens Workspace
[Papierraum]: Zusammenarbeit als offizieller Partner für Jeremy Howards fast.ai-Kurs
[Paperspace]: Paperspace Gradient und API, zusammen mit ihrer eigenen CLI, die jeweils Tools zum effizienten Ausführen Ihrer Jobs in der Cloud und ein Devkit zum Automatisieren Ihrer VMs / Jobs sind (geeignet für DevOps!)
Mit Workspace, Gradient und fast.ai haben sich FloydHub und Paperspace dem Angebot ähnlicher Funktionen angenähert.

Preisgestaltung :

Die Preisgestaltung ist wahrscheinlich das wichtigste Auswahlkriterium. Derzeit erfolgt die Abrechnung für AWS und FloydHub pro Sekunde und für Paperspace in Millisekunden.

AWS-GPU-Instanzen beginnen bei 0,9 USD / Stunde mit 30 GB freiem EBS-Volumen im Rahmen des Free Tier-Programms. Ein SSD-Volume mit 100 GB und eine elastische IP-Adresse kosten zusätzlich 13 US-Dollar pro Monat. AWS bietet auch Spot-Instances an, die viel billiger sind, aber sehr anfällig für Preisschwankungen sind und daher keine verlässliche Option darstellen.

Paperspace bietet GPUs der Maxwell-Serie für 0,4 USD / h und Pascal-GPUs für 0,65 USD / h an. Eine 100-GB-SSD mit öffentlicher IP kostet 7 USD / Monat. Zusätzliche Versorgungsleistungen werden ebenfalls erbracht.

FloydHub ist kürzlich von einem Umlageverfahren zu genau definierten Monatsplänen übergegangen. Der Base Data Scientist-Plan kostet 14 USD / Monat für 10 GPU-Stunden und 100 GB Speicherplatz. Zusätzliche GPU-Stunden können ab 0,59 US-Dollar pro Stunde erworben werden. Für dedizierte GPU-Instanzen wird eine Prämie erhoben.

[UPDATE | Mai 2018]: Die Preisstruktur von FloydHub hat sich erheblich geändert, während die von AWS und Paperspace nahezu unverändert bleibt. Der Papierraum bleibt nach wie vor die günstigste Option.

Bereitstellung:

Ich habe nicht versucht, auf einem der beiden Modelle ein Deployment durchzuführen. Floyd bietet einen einzeiligen Befehl zum Bereitstellen Ihres Modells als REST-API. AWS verfügt über eine Reihe zugehöriger Services, mit denen Sie die Anwendungsbereitstellung weiter verbessern können. Wird aktualisiert, sobald ich sie erforsche.

Zusammenfassung der wichtigsten Aspekte in der folgenden Tabelle.

Vergleich der wichtigsten Aspekte von GPU-On-Cloud-Dienstanbietern
[UPDATE | Mai 2018]: In der obigen Grafik gibt es nur wenige Änderungen, mit Ausnahme des Performance-Abschnitts, in dem FloydHub jetzt der schnellste ist. An der Hardware- / Software-Front sind alle drei auf einem Level Pegging.

Wenn Sie einen dieser Dienste bereits genutzt haben, teilen Sie uns bitte Ihre Erfahrungen mit. Wenn Sie es nicht haben, probieren Sie es jetzt aus. Es wäre schön, wenn Sie uns Ihre Vorschläge unterbreiten würden.