Entwicklungsumgebungen und Cloud-Plattformen Die passende Machine Learning IDE finden

Autor / Redakteur: Dr. Dietmar Müller / Stephan Augsten |

Integrierte Entwicklungsumgebungen, kurz IDEs, bieten Funktionen wie Syntax Highlighting, Code Completion, Debugging-Möglichkeiten, Variableneditoren oder Paketmanagement. Damit Entwickler davon auch im Machine-Learning-Umfeld profitieren, mpssen sie aber zunächst die passende IDE finden.

Anbieter zum Thema

Entwickler mit Erfahrung in Sachen Künstlicher Intelligenz (KI) und Machine Learning (ML) sind gesucht, die Einsatzszenarien breit gefächert.
Entwickler mit Erfahrung in Sachen Künstlicher Intelligenz (KI) und Machine Learning (ML) sind gesucht, die Einsatzszenarien breit gefächert.
(© monsitj - stock.adobe.com)

IDEs für die Programmiersprache R

Für R-Programmierer ist die Wahl einer Integrated Development Environment (IDE) einfach: RStudio hat sich unter Linux, MacOS und Windows weitgehend durchgesetzt. Es steht kostenlos oder inklusive Support zur Verfügung und bietet Code Editor, Debugging und Visualization Tools. Es wird erweitert durch Shiny für die Anwendungsentwicklung und bessere Visualisierung der Daten sowie die R Packages zum Managen verschiedener Packages. Enthalten sind auch Tools wie ggplot2, dplyr oder R Markdown.

Natürlich gibt es auch Alternativen zu RStudio, etwa die Visual Studio IDE von Microsoft. Visual Studio gibt es auch für Python, findet aber auch dort eher wenig Verwendung, genau wie die IDE Pycharm von JetBrains. Wirklich oft dagegen findet sich das Framework für Developer-Kooperation Jupyter Notebook/JupyterLab.

Nomen est omen: „Jupyter“ setzt sich (mehr oder weniger) aus den Anfangsbuchstaben der drei Programmiersprachen Julia, Python und R zusammen. Mittlerweile werden aber auch andere Sprachen wie C#, Java, JavaScript, PHP, Ruby, Scala oder Swift unterstützt.

Entwicklungsumgebungen für Julia

Die immer öfter genutzte Programmiersprache Julia hat insbesondere zwei gern eingesetzte IDEs: Juno und den zur IDE erweiterbaren Editor Visual Studio Code. Juno ist als modernes Notebook konzipiert und offeriert u.a. Debugger, mehrfache Cursor und eine Suche. Visual Studio Code benötigt eine Erweiterung für Julia, die aber kostenlos ist und u.a. Code-Schnipsel, Syntax-Hervorhebung, Auto-Vervollständigung, ein Linter für die statische Code-Analyse und andere Tools umfasst.

Entwicklung mit C++

Mit Caffe steht ein populäres Framework für C++ zur Verfügung. Es zeichnet sich besonders durch seine Unterstützung für Nvidias Programmiertechnik CUDA speziell für GPUs aus. Caffe verfügt auch über eine Schnittstelle zu Python. Caffe2 ist zudem speziell auf neuronale Netze ausgelegt.

IDEs für Python

Es gibt unzählige Entwicklungsumgebungen für Python, exemplarisch seien Visual Studio 17, Anaconda Navigator, PyCharm, das Open-Source-Plugin für Eclipse PyDev, VIM (genaugenommen lediglich ein Test Editor wie Sublime) oder Wing IDE genannt. Mein persönlicher Favorit ist IDLE, die Python-eigene Mini-IDE, benannt nach Eric Idle, mit einem ganz schmalen Fußabdruck. Auch bietet sie einen mächtigen Debugger und einen Multi-Window Text Editor.

eBook „Künstliche Intelligenz für Developer“

Künstliche Intelligenz für DeveloperEntwickler mit Erfahrungen in Sachen Künstlicher Intelligenz (KI) und Machine Learning (ML) sind gesucht, die Einsatzszenarien breit gefächert. Hier stellen wir wichtige Funktionen und Ressourcen vor.
(PDF | ET 04.07.2019)


eBook herunterladen »

Im Zusammenhang mit Machine Learning wird auch gerne und oft zu Spyder geraten, das Features wie einen Debugger oder einen Variablenmonitor enthält. In Konversationen von Python-Entwicklern fällt aber immer wieder ein Name: das bereits bei den IDE für R erwähnte Jupyter Notebook. Es läuft im Browser, lässt Entwickler in Teams zusammenarbeiten und teilt Quellcode und Kommentare.

Mit Anaconda Navigator kann man all die genannten IDE unter einer Oberfläche vereinen und somit die jeweiligen Stärken voll ausnutzen. Enthalten sind auch ein Paketmanager und die Möglichkeit, verschiedene Environments zu konfigurieren, etwa sowohl für R als auch für Python.

Cloud-Plattformen für Machine Learning

All die genannten Software-Werkzeuge sind schön und gut, Hardware ist aber auch im Bereich ML ein entscheidender Faktor, Entwickler wollen und können nicht tage- oder wochenlang auf Ergebnisse warten. Spezielle Chips (GP-GPUs, FPGAs, Mehrkern-Prozessoren und ASICs) sorgen für eine schnelle Beantwortung von Anfragen – diese können auf eigenen Maschinen eingesetzt oder über die Cloud angesteuert werden.

Es gibt eine ganze Reihe von öffentlich zugänglichen ML-Plattformen im Netz. Genannt seien mit Amazon Machine Learning, Microsoft Azure Machine Learning Studio, IBM Bluemix und Google Cloud Machine Learning Engine die vier wichtigsten, weitere wären etwa Veles von Samsung oder Neon von Nervana Systems. Dr. Carsten Bange von BARC urteilt: „Amazon und Google scheinen stärker Plattformen für die Unterstützung von Entwicklern bereitzustellen, während IBM und Microsoft tendenziell eher auf die Integration von Applikationen abzuzielen scheinen.“

Darüber hinaus gibt es Dutzende weitere vergleichbare Angebote, Saracus Consulting hat einige davon verglichen. Dabei lag der Schwerpunkt auf Auto-ML-Programmen, also auf Angeboten, die sich an Entwickler mit wenig Erfahrung im Bereich ML richten. Sie können damit ihre Verfahren für das jeweilige Anwendungsszenario direkt in der Cloud ausführen.

Je nach Bedarf bieten die Anbieter auch Zugriff auf die unterschiedlichsten Datenbanken mit Algorithmen, Funktionen für die Datenaufbereitung, Programmiersprachen Collaboration-Funktionen, Deployment-Möglichkeiten und sogar vorgefertigte Lösungen für oft gestellte Fragen. An dieser Stelle gilt es zu warnen: Die Anbieter sind durchaus an einem gewissen „Lock-in“ interessiert und knüpfen die angebotenen Algorithmen und Tools an ihre eigene Storage-Hardware.

„Manche Angebote wird es nur in der Public Cloud geben. So beispielsweise die TPUs von Google. Die Nutzung eines solchen Clusters rechnet sich jedoch nur, wenn man auf Deep Learning und TensorFlow setzt“, so Björn Böttcher von Crisp Research.

Wie aber trifft man eine Entscheidung für oder gegen eine Hardware beziehungsweise Cloud-Plattform? „Der Gang zum und die Kommunikation mit dem Data Science Team ist also der erste Schritt. Dieses kann genaue Auskunft darüber geben, welche Arten von Machine Learning am häufigsten im Unternehmen zum Einsatz kommen und ob sich hier ein Investment in Special Purpose Hardware lohnt. Im nächsten Schritt sollte der Entscheider mit dem eigenen Rechenzentrum Rücksprache halten, um hier ggf. Ressourcen auch lokal anbieten zu können, sofern die Hardware im freien Verkauf erhältlich ist.“

Ebenso gelte es zu prüfen, ob die Investition sich in Hinblick auf die Geschwindigkeitsvorteile rechnet. „Hier sollte man eine beispielhafte Anwendung oder auch nur das Modell auf den entsprechenden Clustern auf den Public-Cloud-Angeboten einmal durchlaufen lassen und entsprechende Metriken erheben. Nur dann kann eine zuverlässige Betrachtung erhoben werden und die Entscheidung getroffen werden, ob man hier in Ressourcen auf materieller und menschlicher Ebene investiert“, so Böttcher.

Dieser Beitrag ist ein kleiner Auszug des eBooks „Künstliche Intelligenz für Developer“, das im Sommer 2019 erschienen ist. Darin stellen wir mit Blick auf Künstliche Intelligenz (KI) und Machine Learning (ML) die wichtigsten Funktionen und Ressourcen für Entwickler vor.

eBook „Künstliche Intelligenz für Developer“

Künstliche Intelligenz für DeveloperEntwickler mit Erfahrungen in Sachen Künstlicher Intelligenz (KI) und Machine Learning (ML) sind gesucht, die Einsatzszenarien breit gefächert. Hier stellen wir wichtige Funktionen und Ressourcen vor.
(PDF | ET 04.07.2019)


eBook herunterladen »

(ID:46269263)