mindsquare.de durchsuchen

Google Colaboratory

Sie brauchen einen Google Colaboratory Berater und/oder möchten, dass wir Ihnen unser Angebot in diesem Umfeld vorstellen?

Max-Ludwig Stadler
6. November 2019

Google Colaboratory ist ein von Google für maschinelles Lernen entwickeltes und kostenlos nutzbares Forschungsprojekt, das Jupyter Notebooks in der Cloud-Plattform Google Drive ausführt.

Entwickler trainieren Modelle unter Verwendung von Trainings- und Testdaten oder führen Berechnungen mit bereits fertig trainierten Modellen durch. Der Zugriff auf die cloudbasierte Jupyter-Notebook-Umgebung Google Colaboratory erfolgt über gängige Browser wie Safari, Chrome oder Firefox.

Anwendungsbereiche von Google Colaboratory

Google Colaboratory wurde speziell für Anwendungen im Bereich des maschinellen Lernen entwickelt. Für diesen Zweck erstellt der Anwender ein benutzerdefiniertes Jupyter-Notebook oder nutzt eine der zahlreichen AutoML Tables für das Training verschiedenster Modelle mit vorhandenen Test- und Trainingsdaten. Das Marketing profitiert von dieser Form des maschinellen Lernens in genauso hohem Umfang wie Unternehmensbereiche, die sich mit verschiedensten Prognosen von der Bedarfs- bis zur Energiepreisprognose beschäftigen.

  • Training binärer Klassifizierungsmodelle zur Vorhersage zukünftiger Einkommen, von Kaufvorhersagen oder Produktbestandslücken.
  • Training von Modellen zur Generierung von Vorhersagen wie beispielsweise Energiepreis- oder Verkehrsprognosen
  • Training von Sprachmodellen
  • Komplexe Berechnungen mit bereits trainierten Modellen unter Verwendung leistungsfähiger TPUs

Im Prinzip ist Google Colaboratory immer dann das geeignete Tool, wenn ein Unternehmen aus einem umfangreichen Datenbestand, der durch kontinuierliche neue Informationen angereichert wird, automatisiert Informationen generieren möchte. In dieser Situation ist das maschinelle Lernen unter Einsatz optimal trainierter Modelle das Mittel der ersten Wahl.

In diesem Webinar gebe ich Ihnen einen Überblick zum Thema maschinelles Lernen.

Analysetools

Um die rechenintensiven Prozesse verschiedenster Analysetools zuverlässig zu bewältigen, entwickelte Google bereits vor einigen Jahren spezielle TPUs, die auch in der cloudbasierten Lösung Google Colaboratory zum Einsatz kommen. Diese leistungsfähigen Tensor Processing Units sind darauf optimiert, in trainierten neuronalen Netzen innerhalb kürzester Zeit eine Vielzahl an Berechnungen durchzuführen. So erreichen TPUs der neuesten Generation eine unvorstellbare Rechenleistung von mehr als 100 Petaflops pro Sekunde.

Unterstützt Python

Jupyter Notebook ist eine Entwicklungsumgebung, die sich im Bereich des maschinellen Lernens vielfach bewährt. Die Anwendung ist ein Produkt des Projekts Jupyter, einer OpenSource-Initiative mit dem Fokus auf “Interactive Computing” und der Unterstützung möglichst vieler Programmiersprachen. Unter anderem auch Python, die als eine der wichtigsten Sprachen im Bereich des maschinellen Lernens gilt.

Dokumentenorientiert

Die Programmierumgebung Jupyter Notebook ist dokumentenorientiert und organisiert Projekte in Notebooks – den JupyterNotebooks. Besonders hervorzuheben sind die zahlreichen Möglichkeiten von Jupyter Notebook, zu denen die interaktive Ausführung von Codes genauso zählt wie die Datenvisualisierung. So ist es möglich, über die digitalen Dokumente JupyterNotebooks unterschiedlichste Inhalte wie Grafiken oder Mediafiles anzeigen zu lassen.

Jupiter Notebook Entwicklerumgebung

Allerdings überzeugt Jupiter Notebook als Entwicklerumgebung und als digitale Dokumente durch weitere wichtige Features. Dazu gehört beispielsweise die Implementierung verschiedenster Programmiersprachen in einen bestehenden Code. Immerhin sind mehr als 100 Kernels zur Einbindung verschiedenster Programmiersprachen verfügbar. So ist es möglich, die Variablen der für statistische Berechnungen genutzten Sprache “R” mit dem Code von Python auszutauschen. Oder ein Entwickler implementiert Funktionen mit Cython und ruft sie über den Python Code auf.

Markup Language & Code

Ebenfalls eine für Jupiter Notebooks typische Eigenschaft ist die Einteilung in einzelne Zellen. Jede dieser Zellen enthält entweder Content in Form von Markup Language oder Code und ist einzeln ausführbar. Die interaktive Ausführung der einzelnen Zellen ist vor allem bei erforderlichen Änderungen im Code oder von Parametern ein zeit- und ressourcensparendes Feature. Dafür werden Jupyter Notebooks entweder direkt über die Kommandozeile ausgeführt und bearbeitet, über die browsergestützte Jupyter App, oder über Google Colaboratory.

Datenanalyse fokussiert

Jupyter Notebooks sind immer dann die erste Wahl, wenn der Fokus auf der Datenanalyse, interaktivem Programmieren oder dem Erstellen von Programmierbeispielen liegt. Genauso von Vorteil ist die Tatsache, dass die Notebooks neben der Ausführung von Codes noch weitere Funktionen erfüllen. Dazu zählen vor allem die Präsentation und Dokumentation von Codes. Als Präsentations-Dokument wird der Inhalt des Notebooks gerendert angezeigt und nicht als Source Code. Oder Entwickler teilen das Notebook mit anderen Anwendern, die es mit Kommentaren versehen.

Max Luwig Stadler von mindsquare

Websession: Google Colaboratory

Sie interessieren sich für Google Colaboratory oder nutzen es sogar schon und haben Fragen? Dann vereinbaren Sie eine kostenlose Websession mit uns. Ich freue mich auf Ihre Fragen und den Austausch mit Ihnen.

Warum Google Colaboratory und Jupyter Notebook?

Eine der ersten Colaboratory-Versionen aus dem Jahr 2014 wurde gemeinsam von Google und dem Jupyter-Entwicklerteam gemeinsam entwickelt. Obwohl sich Google Colaboratory kontinuierlich weiter entwickelte, basiert es heute noch auf der innovativen, webbasierten und interaktiven Open-Source-Webanwendung Jupyter Notebook. Damit erstellt der Anwender Dokumente mit Gleichungen, Visualisierungen, narrativem Text oder Live-Codes. Eine Funktion von vielen ist das Code-Listingund die Möglichkeit, den Code schrittweise auszuführen. Als OpenSource-Anwendung unterstützt Jupyter mehr als 40 Programmiersprachen, zu denen unter anderem auch die von Colaboratory unterstützte Sprache Python zählt.

Allerdings unterstützt Google Colaboratory aktuell (Stand 09/2019) nur Swift und Python 2.7 sowie Python 3.6. Obwohl Google zum aktuellen Zeitpunkt an der Realisierung der Unterstützung anderer Jupyter-Kernel wie beispielsweise R oder Scalaarbeitet, gibt es noch keine detaillierten Aussagen zum ETA.

Jupyter-Notebook-Umgebung

Für Entwickler von Deep-Learning-Anwendungen, die mit Jupyter Notebooks vertraut sind, ist das Arbeiten mit Google Colaboratory unkompliziert. Da es sich um eine Jupyter-Notebook-Umgebung handelt, ist die Installation einer Software nicht erforderlich. Die Anmeldung erfolgt ausschließlich über einen gängigen Webbrowser wie beispielsweise Chrome, Firefox oder Safari über das Google-Konto.

Google Drive-Konto

Die verschiedenen Jupyter-Notebooks speichert Colaboratory automatisch auf dem persönlichen Google Drive-Konto. Hier empfehlen erfahrene Nutzer, ein Verzeichnis anzulegen, um die Notebooks zu einem späteren Zeitpunkt einfacher zu finden. Alternativ können Notebooks von GitHub hochgeladen werden, um sie in Google Colaboratory auszuführen.

Google Colaboratory

Deep-Learning Bibliothek

Eine unverzichtbare Funktionalität ist der Einsatz verschiedener auf Google Drive gespeicherter Deep-Learning Bibliotheken wie PyToch, TensoFlow, Keras oder OpenCV. Dadurch erhalten Entwickler ein breites Spektrum an Algorithmen, um die Modelle effizient und optimal zu trainieren.

Für die Ausführung der in Python oder Swift erstellten Codes nutzt Google innerhalb der Cloud angelegte virtuelle Maschinen. Diese sind dem individuellen Nutzerkonto zugeordnet und können innerhalb der Laufzeit mehrmals gestartet werden. Allerdings verfügen diese virtuellen Maschinen nur über eine systemseitig begrenzte maximale Laufzeit und werden nach Ablauf automatisch gelöscht.

T4 GPUs & TPUs

Da es sich um ein kostenloses Angebot und ein Forschungsprojekt handelt, muss mit kleineren Einschränkungen gerechnet werden. Dazu zählt die vorgegebene maximale Runtime pro Sitzung genauso wie eine Begrenzung der Hardware-Ressourcen für Benutzer, die Google Colaboratory nicht interaktiv, sondern ausschließlich für aufwendige Berechnungen nutzen, um von den hoch leistungsfähigen T4 GPUs und TPUs zu profitieren. In diesen Fällen erfolgt eine vorübergehende Begrenzung dieser Ressource. Hier empfiehlt Google, die Bedienoberfläche von Colaboratory mit einer lokalen Laufzeitumgebung zu verbinden.

Der Sinn der begrenzten Vergabe der Hochleistungsressourcen liegt darin, dass Google als kostenloses Forschungsprojekt in erster Linie die interaktiven Anwender und Entwickler unterstützt. Dadurch fördert Google gezielt die aktive Beteiligung an der Entwicklung des maschinellen Lernens und belohnt diese Gruppe durch eine bevorzugte Behandlung bei der Verteilung der leistungsfähigsten Ressourcen wie T4 GPUs oder TPUs.

Verbot von Krypto-Mining

Die mächtige Hardwareausstattung, die Google kostenlos bietet, verleitet zum Missbrauch. Dieser wird strikt unterbunden und ist verboten. Dies gilt vor allem für Krypto-Mining mittels Google Colaboratory. Ein entsprechender Missbrauch von GoogleColaboratory für diesen Zweck zieht ein dauerhaftes Nutzungsverbot des Tools nach sich.

Unser E-Book zum Thema KI im Mittelstand

E-Book: KI im Mittelstand

In diesem E-Book erfahren Sie, wie Sie KI in Ihrem Unternehmen einsetzen können.

Cloud & lokale Laufzeitumgebung

Um bestimmte Einschränkungen wie die begrenzte Runtime zu umgehen, bietet sich die Möglichkeit einer lokalen Laufzeitumgebung. Für diesen Zweck wird der Jupyter-Server lokal installiert, um die Notebooks ausführen zu können. Die dafür erforderliche Jupyter-Erweiterung ist auf GitHub verfügbar. Auch hier präsentiert sich Google Colaboratory wieder von seiner benutzerfreundlichen Seite.

Im Prinzip sind es nur vier Schritte, die der Anwender durchführt, um die Bedienoberfläche von Colaboratory mit dem eigenen PC zu verbinden.

  • Schritt 1
    Installation von Jupyter auf dem PC
  • Schritt 2
    Installation und Aktivierung der Jupyter-Erweiterung (auf GitHub verfügbar)
  • Schritt 3
    Starten des installierten Notebook-Servers und Authentifizierung mittels Flag, um eine Verbindung zwischen Jupyter und WebSocket-Verbindungen des Colaboratory-Frontends zu ermöglichen. Als Bestätigung gibt Jupyter einen Port aus, der in Schritt 4 benötigt wird.
  • Schritt 4
    Herstellen einer Verbindung zu lokalen Laufzeitumgebung, indem der Anwender in der Colaboratory-Nutzeroberfläche “Mit lokaler Laufzeitumgebung verbinden” auswählt. Nun wird nur mehr der in Schritt 3 ausgegebene Port in ein Dialogfeldeingegeben und die Verbindung wird hergestellt.

Allerdings kann eine lokale Laufzeitumgebung nicht nur für jenen PC hergestellt werden, auf dem der Jupyter-Server installiert ist. Es besteht zusätzlich die Möglichkeit einer lokalen SSH-Porterweiterung für den Verbindungsaufbau zwischen einer über den aktuellen Anwender-PC geöffneten Google Colaboratory und einer Remote-Instanz, auf der der Jupyter-Server läuft.

Gefahr durch fremde Codes

Grundsätzlich überzeugt Google Colaboratory durch hohe Sicherheit. Nur das Teilen der verfügbaren Notebooks mit anderen Anwendern ist mit gewissen Risiken behaftet. Dies gilt vor allem für das Ausführen von Notebooks anderer Entwickler, da durch die lokale Verbindung zwischen eigenem PC und Google Colaboratory von fremden Codes immer eine schwer kalkulierbare Gefahr ausgeht. Dies gilt selbstverständlich auch bei Vorhandensein einer lokalen Laufzeitumgebung.

Das fremde Notebook, das Codes enthält:

  • beliebige Befehle aufrufen und ausführen,
  • auf das lokale Dateisystem zugreifen und dadurch
  • große Schäden anrichten.

Das Teilen vorhandener Notebooks ist unproblematisch, da der Speicherort auf Google Drive liegt. Bei diesem Vorgang wird immer die standardmäßige Verbindung mit der Cloud hergestellt und nie eine lokale Verbindung. Allerdings werden ohne manuelle Einschränkung alle im Notebook enthaltenen Informationen geteilt. Es besteht jedoch die Möglichkeit, die Codezellenausgabe zu verhindern.

Browserspezifische Einstellungen erforderlich

Für die Nutzung von Colaboratory wurden allen gängigen Browser getestet. Sie alle eignen sich für die problemlose Arbeit mit der Colaboratory-Bedienoberfläche. Allerdings nutzt Colaboratory HTML-iFrames und an unterschiedlich gehostete Service-Workers, um die umfangreiche Ausgabe der Ergebnisse so sicher wie möglich zu gestalten. Dies erfordert bei allen Browsern die Aktivierung von “Cookies von Drittanbietern”. Alternativ wird diese Browsereinstellung mit dem Hostnamen “googleusercontent.com” auf der Positivliste des Browsers vorgenommen. Dadurch erübrigt sich die Aktivierung für Cookies aller Drittanbieter auf Websites, die der Anwender besucht.

Firefox-Konfigurationseditor

Eine speziell bei Mozilla Firefox erforderliche Einstellung ist die Erlaubnis, dass Colaboratory eine Verbindung zum lokalen Kernel herstellen darf. In der Regel lässt Firefox keine Verbindungen einer HTTPS-Domain mit Standard-WebSockets zu. Diese Einstellung erfolgt im Firefox-Konfigurationseditor, indem der Anwender die Einstellung network.websocket.allowInsecureFromHTTPS vornimmt.

Google Colaboratory beweist auch an dieser Stelle seine hohe Nutzerfreundlichkeit, die es unkompliziert ermöglicht, Colaboratory von allen Standardbrowsern ohne großen Aufwand zu nutzen. Maximal zwei Einstellungen müssen geändert werden, um in den Genuss der zahlreichen Vorteile der Jupyter Notebook-Umgebung zu kommen.

Fazit

Mit der kostenlosen Jupyter-Notebook-Umgebung Colaboratory bietet Google Entwicklern von Anwendungen für maschinelles Lernen ein benutzerfreundliches und unkompliziertes Tool, um Modelle für die verschiedensten Einsatzbereiche zu realisieren und zu trainieren. Hardwarekomponenten in Form leistungsfähiger GPUs stehen dem Anwender genauso kostenlos zur Verfügung wie zahlreiche andere Features, die Entwickler für ihre Arbeit benötigen. So wird das Training binärer Klassifizierungsmodelle genauso unkompliziert wie das Training von Modellen zur Generierung verschiedenster Prognosen oder von Sprachmodellen.

Verwandte Know-Hows

Deep Learning bedeutet auf Deutsch „tiefgehendes Lernen“ und bezeichnet einen Teilbereich des maschinellen Lernens (Machine Learning). Die Lernmethode basiert auf großen Datenmengen, die durch künstliche, neuronale Netze verarbeitet werden und so der Informationsgewinnung dienen. Deep Learning ist z. […]
Täglich werden große Mengen an Daten (Big Data) im Internet oder in Unternehmen angesammelt, doch womit werden diese einfach und profitabel verarbeitet? Und warum ist Big Data so wichtig? Das und […]
Wäre es nicht praktisch, Was-wäre-wenn-Szenarien für Produkte oder Anlagen und Prozesse erstellen zu können, bevor Sie tatsächlich Ressourcen für die reale Umsetzung einsetzen? Das ist das Versprechen des Digital Twin.

Passende Angebote zum Thema

Sie stehen vor der Herausforderung ein Reporting im HR-Umfeld aufzubauen, Ihnen fehlen jedoch die notwendigen Kompetenzen im Umfeld von SAP BW füe die Umsetzung? Dann wenden Sie sich an uns!
Die Einführung der SuccessFactors Schnittstelle kann unübersichtlich und langwierig sein. Nur wenige haben Expertise in dem Umfeld und die Dokumentation zu dem Thema ist bisweilen unzureichend. Wir haben unsere Expertise […]
Analysehorizont, Mobilität und Live-Reportings sind für Sie ein unerreichter Traum? Sie haben die Herausforderung – wir die Mitarbeiter und das Knowhow!
Kontakt aufnehmen
Ansprechpartner
Laura Feldkamp mindsquare Kundenservice
Laura Feldkamp Kundenservice