PyTorch für Deep Learning. Ian Pointer
rel="nofollow" href="#fb3_img_img_9e8e6b6c-0ef4-59ca-9644-5be34c5e4ee3.png" alt="image"/>
Abbildung 1-1: Google Colab(oratory)
Colab ist ein großartiges Tool, um ins Deep Learning einzutauchen, da es bereits vorinstallierte Versionen von TensorFlow und PyTorch bereithält. Dementsprechend müssen Sie nichts weiter eingeben als den import torch-Befehl und auch keine weiteren Einstellungen vornehmen. Jeder Benutzer erhält einen freien Zugang zu einer NVIDIA-T4-Grafikkarte mit bis zu zwölf Stunden ununterbrochener Laufzeit. Kostenlos. Um das einzuordnen: Empirische Untersuchungen haben ergeben, dass Sie etwa die Hälfte der Geschwindigkeit einer 1080 Ti für Ihr Training erhalten, aber zusätzlich noch 5 GB Speicher, sodass Sie größere Modelle speichern können. Es besteht zudem die kostenpflichtige Möglichkeit, eine Verbindung zu neueren GPUs oder Googles eigener TPU-Hardware herzustellen. Aber Sie können so ziemlich jedes Beispiel aus diesem Buch mit Colab ausführen, ohne dass irgendwelche Kosten für Sie anfallen. Aus diesem Grund empfehle ich, Colab zunächst parallel zu diesem Buch zu verwenden, um dann bei Bedarf zu entscheiden, ob Sie auf dedizierte Cloud-Instanzen und/oder Ihren eigenen persönlichen Deep-Learning-Server ausweichen möchten.
Wenn Sie zum ersten Mal mit Google Colab arbeiten, werden Sie feststellen, dass es verschiedene Möglichkeiten gibt, die Dateien des GitHub-Repositorys dieses Buchs einzubinden. Eine gute Einführung bietet Ihnen das Willkommens-Notebook, das sich beim Aufruf von Google Colab im Hintergrund lädt, und hier insbesondere der Abschnitt »Weitere Ressourcen«.
Colab ist der Ansatz, mit dem am wenigsten Aufwand verbunden ist. Sie möchten aber vielleicht ein wenig mehr Kontrolle darüber haben, wie Dinge installiert werden oder wie Sie einen Secure-Shell-(SSH-)Zugang zu Ihrer Instanz in der Cloud erhalten. Werfen wir am besten einen Blick auf das Angebot der wichtigsten Cloud-Anbieter.
Cloud-Anbieter
Jeder der drei großen Cloud-Anbieter (Amazon Web Services, Google Cloud Platform und Microsofts Azure) bietet GPU-basierte Instanzen (auch als virtuelle Maschinen oder VMs bezeichnet) und offizielle Images, die auf diesen Instanzen bereitgestellt werden. Sie haben alles, was Sie brauchen, um loszulegen, ohne selbst Treiber oder Python-Bibliotheken installieren zu müssen. Gehen wir die Angebote der einzelnen Anbieter einmal durch.
Amazon Web Services
AWS, das Schwergewicht auf dem Cloud-Markt, erfüllt nur zu gern Ihre GPU-Anforderungen und bietet P2- und P3-Instanzarten an, um Sie zu unterstützen. (Der G3-Instanztyp wird eher in tatsächlich grafikbasierten Anwendungen wie der Videocodierung verwendet, daher werden wir hier nicht weiter darauf eingehen). Die P2-Instanzen verwenden die älteren NVIDIA-K80-Karten (maximal 16 können an eine Instanz angeschlossen werden), und die P3-Instanzen setzen die extrem schnellen NVIDIA-V100-Karten ein (Sie können acht davon auf eine Instanz legen, wenn Sie sich trauen).
Sollten Sie sich für AWS entscheiden, empfehle ich, für dieses Buch die Klasse p2.xlarge zu verwenden. Das kostet Sie zum Zeitpunkt des Verfassens dieses Buchs rund einen US-Dollar pro Stunde und bietet Ihnen ausreichend Leistung, um die Beispiele problemlos durchzuarbeiten. Sollten Sie mit diversen anspruchsvollen Kaggle-Wettbewerben beginnen, bietet es sich gegebenenfalls an, auf P3-Instanzen aufzustocken.
Es ist unglaublich einfach, eine Deep-Learning-Umgebung auf AWS zu erstellen:
1 1. Melden Sie sich an der AWS-Konsole an.
2 2. Wählen Sie EC2 und klicken Sie auf Launch a virtual machine.
3 3. Suchen Sie nach der Option Deep Learning AMI (Ubuntu) und wählen Sie diese aus.
4 4. Wählen Sie p2.xlarge als Ihren Instanztyp.
5 5. Starten Sie die Instanz, indem Sie entweder ein neues Schlüsselpaar erstellen oder ein vorhandenes Schlüsselpaar wiederverwenden.
6 6. Stellen Sie mittels Ihrer Kommandozeile eine Verbindung zur Instanz her, indem Sie SSH verwenden und Port 8888 auf Ihrem lokalen Rechner auf die Instanz umleiten:
ssh -L localhost:8888:localhost:8888 \
-i /path/my-key-pair.pem my-instance-user-name@my-instance-public-dns-name
1 7. Starten Sie Jupyter Notebook, indem Sie jupyter notebook eingeben. Kopieren Sie die erzeugte URL und fügen Sie sie in Ihren Browser ein, um auf Jupyter zuzugreifen.
Vergessen Sie nicht, Ihre Instanz abzuschalten, wenn Sie sie nicht benutzen! Sie können das tun, indem Sie mit der rechten Maustaste auf die Instanz in der Weboberfläche klicken und unter Instance State die Option Stop wählen. Dadurch wird die Instanz heruntergefahren, und es entstehen Ihnen keine Kosten für die Instanz, solange sie nicht läuft. Allerdings wird Ihnen der Speicherplatz, den Sie der Instanz zugewiesen haben, auch dann in Rechnung gestellt, wenn die Instanz ausgeschaltet ist; seien Sie sich dessen bewusst. Um die Instanz und den Speicherplatz vollständig zu löschen, wählen Sie stattdessen die Option Terminate.
Azure
Wie AWS bietet auch Azure eine Mischung aus günstigen K80-basierten Instanzen und teureren Tesla-V100-Instanzen an. Azure stellt außerdem Instanzen zur Verfügung, die auf der älteren P100-Hardware basieren und als Kompromiss zwischen den beiden anderen Instanzen gelten. Für dieses Buch empfehle ich, als Instanztyp eine einzelne K80 (NC6) zu verwenden, die 90 Cent pro Stunde kostet. Wechseln Sie anschließend je nach Bedarf auf andere Typen wie NC, NCv2 (P100) oder NCv3 (V100).
So richten Sie die VM in Azure ein:
1 Melden Sie sich im Azure-Portal an und suchen Sie nach dem Image der Data Science Virtual Machine.
2 Klicken Sie auf die Schaltfläche Get It Now.
3 Füllen Sie die Angaben zur VM aus (geben Sie ihr einen Namen, wählen Sie die SSD- statt einer HDD-Festplatte, einen SSH-Benutzernamen sowie ein SSH-Passwort, das der Rechnung der Instanz zugrunde liegende Abonnement und legen Sie den Standort fest, der Ihnen am nächsten liegt und den NC-Instanztyp anbietet).
4 Klicken Sie auf die Option Create. Die Instanz dürfte in etwa fünf Minuten bereitgestellt werden.
5 Sie können SSH mit dem Benutzername-Passwort-Paar verwenden, das Sie dem öffentlichen DNS-Namen (Domain Name System) dieser Instanz gegeben haben.
6 Jupyter Notebook sollte laufen, sobald die Instanz bereitgestellt wurde; navigieren Sie zu http://dns_name_of_instance:8000 und verwenden Sie die Benutzername-Passwort-Kombination, die Sie für SSH zur Anmeldung verwendet haben.
Google Cloud Platform
Zusätzlich zu den von Amazon und Azure unterstützten Instanzen K80, P100 und V100 bietet die Google Cloud Platform (GCP) die zuvor erwähnten TPUs für diejenigen an, die immense Daten- und Rechenanforderungen haben. Sie benötigen keine TPUs für dieses Buch, zumal diese sehr kostspielig sind. Sie werden seit PyTorch Version 1.0 unterstützt. Denken Sie also nicht, dass Sie TensorFlow verwenden müssen, um die Vorteile dieser Technologie zu nutzen, wenn Sie ein Projekt haben, das ihre Verwendung erfordert.
Der Einstieg in die Google Cloud ist ebenfalls recht einfach:
1 Suchen Sie nach der Deep-Learning-VM auf dem GCP Marketplace.
2 Klicken Sie auf Starten.
3 Geben Sie der Instanz einen Namen und ordnen Sie sie der Region zu, die sich am nächsten bei Ihnen befindet.
4 Wählen Sie als Rechnertyp 8 vCPUs.
5 Wählen Sie eine GPU des Typs K80 aus.
6 Stellen Sie sicher, dass im Abschnitt Framework PyTorch ausgewählt ist.
7 Aktivieren Sie das Kontrollkästchen