Zurück zum Blog
Das Deep-Learning-Werkzeugset
Jedes Problem, das eine Lösung wert ist, benötigt großartige Werkzeuge zur Unterstützung. Deep Learning ist keine Ausnahme. Vielmehr ist es ein Bereich, in dem gute Werkzeuge in den kommenden Jahren immer wichtiger werden.
28. November 2018
Jedes Problem, das es wert ist gelöst zu werden, benötigt großartige Werkzeuge zur Unterstützung. Deep Learning ist da keine Ausnahme. Im Gegenteil, es ist ein Bereich, in dem gutes Werkzeug in den kommenden Jahren noch wichtiger werden wird. Wir befinden uns noch in den relativ frühen Tagen der Deep Learning-Supernova, wobei viele Deep Learning-Ingenieure und -Enthusiasten ihren eigenen Weg zu effizienten Prozessen erarbeiten. Jedoch beobachten wir auch eine zunehmende Anzahl großartiger Werkzeuge, die den komplizierten Prozess des Deep Learnings erleichtern und sowohl zugänglicher als auch effizienter machen. Mit der stetigen Verbreitung des Deep Learnings von der Arbeit der Forscher und Experten zu einem breiteren Feld von DL-Enthusiasten, die in das Feld einsteigen möchten (Zugänglichkeit), und wachsenden Ingenieurteams, die ihre Prozesse optimieren und die Komplexität reduzieren möchten (Effizienz), haben wir einen Überblick über die besten DL-Werkzeuge zusammengestellt.
Ein genauerer Blick auf den Deep Learning-Lebenszyklus
Um Werkzeuge, die Zugänglichkeit und Effizienz im Deep Learning fördern können, besser bewerten zu können, werfen wir zunächst einen Blick darauf, wie der Prozess tatsächlich aussieht.
Der Lebenszyklus einer typischen (überwachten) Deep Learning-Anwendung besteht aus verschiedenen Schritten, beginnend mit Rohdaten bis hin zu Vorhersagen in der Praxis.

Datenbeschaffung
Der erste Schritt zu jeder Deep Learning-Anwendung besteht darin, die richtigen Daten zu beschaffen. Manchmal hat man Glück und es sind historische Daten bereits verfügbar. Manchmal muss man nach Open-Source-Datasets suchen, das Web durchsuchen, die Rohdaten kaufen oder ein simuliertes Dataset verwenden. Da dieser Schritt oft sehr spezifisch für die jeweilige Anwendung ist, haben wir ihn nicht in unsere Werkzeuglandschaft aufgenommen. Beachte jedoch, dass es Websites wie Googles Dataset Search oder Fast.ai datasets gibt, die helfen können, das Problem der richtigen Datenfindung zu mindern.
Datenkennzeichnung
Die meisten überwachtes Deep Learning-Anwendungen arbeiten mit Bildern, Videos, Texten oder Audio, und bevor du dein Modell trainierst, musst du diese Rohdaten mit Ground-Truth-Labels annotieren. Dies kann eine kostenintensive und zeitaufwändige Aufgabe sein. In einem idealen Setup ist dieser Prozess mit dem Modelltraining und der Bereitstellung verflochten und versucht, die trainierten Deep Learning-Modelle (auch wenn deren Leistung noch nicht perfekt ist) so gut wie möglich zu nutzen.
Datenversionierung
Je mehr sich deine Daten im Laufe der Zeit entwickeln (angenommen, du richtest einen intelligenten Kennzeichnungsprozess ein und trainierst deine Modelle immer wieder neu, während dein Dataset wächst), desto wichtiger wird es, deine Datasets zu versionieren (genauso wie du immer deinen Code und deine trainierten Modelle versionieren solltest).
Hardware-Skalierung
Dieser Schritt ist sowohl für das Modelltraining als auch für die Bereitstellung relevant: Zugang zur richtigen Hardware. Beim Übergang von der lokalen Entwicklung zu groß angelegten Experimenten während des Modelltrainings muss deine Hardware entsprechend skalieren. Dasselbe gilt für die Skalierung gemäß der Benutzeranforderungen, wenn dein Modell bereitgestellt wird.
Modellarchitektur
Um dein Modell zu trainieren musst du die Modellarchitektur deines neuronalen Netzwerks wählen.
Anmerkung: Wenn du ein Standardproblem hast (z.B. das Erkennen von Katzen in Internet-Memes), bedeutet dies oft nicht mehr als das Kopieren des neuesten Stand-der-Technik-Modells aus einem Open-Source-GitHub-Repository, aber gelegentlich möchtest du selbst Hand anlegen und die Architektur deines Modells anpassen, um die Leistung zu verbessern. Mit neueren Ansätzen wie der Neural Architecture Search (NAS) wird die Wahl der richtigen Modellarchitektur zunehmend unter die Modelltrainingsphase subsumiert, aber seit 2018 für die meisten Anwendungen ist die marginale Leistungssteigerung von NAS die zusätzlichen Rechenkosten nicht wert.
Dieser Schritt ist das, woran die Leute oft denken, wenn sie an das Codieren von Deep Learning-Anwendungen denken, aber wie du siehst, ist es nur einer von vielen und oft nicht der wichtigste.
Modelltraining
Während des Modelltrainings fütterst du die gelabelten Daten in dein neuronales Netzwerk und aktualisierst die Modellgewichte iterativ, um den Verlust auf deinem Trainingssatz zu minimieren. Sobald du deine eine Metrik gewählt hast (siehe Modellevaluation), kannst du dein Modell mit vielen verschiedenen Sets von Hyperparametern trainieren (z.B. welche Kombination aus Lernrate, Modellarchitektur und Satz von Vorverarbeitungsschritten zu wählen ist) in einem Prozess, der als Hyperparametertuning bezeichnet wird.
Modellevaluation
Es würde keinen Sinn machen, ein neuronales Netzwerk zu trainieren, wenn du nicht zwischen einem guten und einem schlechten Modell unterscheiden könntest. Während der Modellevaluation wählst du normalerweise eine Metrik zum Optimieren aus (während du möglicherweise viele andere beobachtest). Für diese Metrik versuchst du das leistungsstärkste Modell zu finden, das von deinen Trainingsdaten auf die Validierungsdaten generalisiert. Dazu gehört es, den Überblick über die verschiedenen Experimente zu behalten (mit möglicherweise unterschiedlichen Hyperparametern, Architekturen und Datasets) und ihre Leistungsmetriken zu visualisieren, die Ausgaben der trainierten Modelle zu vergleichen und die Experimente untereinander zu vergleichen. Ohne die richtigen Werkzeuge kann dies schnell verworren und verwirrend werden, insbesondere wenn du mit mehreren Ingenieuren an derselben Deep Learning-Pipeline zusammenarbeitest.
Modellversionierung
Ein kleiner Schritt (aber dennoch erwähnenswert) zwischen der abschließenden Modellevaluation und der Modellbereitstellung: das Tagging deiner Modelle mit verschiedenen Versionen. Dies ermöglicht es dir, leicht zu einer Modellversion zurückzukehren, die gut funktioniert hat, wenn du feststellst, dass deine neueste Modellversion nicht deinen Erwartungen entspricht.
Modellbereitstellung
Wenn du eine Version deines Modells hast, die du gern in die Produktion bringen möchtest, musst du es so bereitstellen, dass deine Nutzer (das können Menschen oder andere Anwendungen sein) mit deinem Modell kommunizieren können: Anfragen mit Daten senden und die Vorhersagen des Modells zurückerhalten. Idealerweise unterstützt dein Tool für die Modellbereitstellung das schrittweise Umschalten zwischen unterschiedlichen Modellversionen, sodass du die Auswirkungen eines neuen Modells in Produktion antizipieren kannst.
Überwachung der Vorhersagen
Sobald dein Modell bereitgestellt wurde, möchtest du die Vorhersagen im realen Einsatz genau im Auge behalten und benachrichtigt werden, wenn Datenverteilungen sich verschieben und die Leistung abnimmt, bevor deine Nutzer anklopfen und sich über deinen Service beschweren.
Anmerkung: Das Flussdiagramm deutet bereits auf die zyklische Natur des typischen Deep Learning-Workflows hin. Tatsächlich kann es einer der wichtigsten Erfolgsfaktoren für viele Anwendungen sein, die Feedbackschleife zwischen bereitgestellten Modellen und neuen Labels (oft als Mensch-in-der-Schleife bezeichnet) als erstklassigen Bürger im Deep Learning-Workflow zu behandeln. In der realen Deep Learning-Arbeit sind die Dinge oft komplizierter als das Flussdiagramm vermuten lässt. Du wirst dich dabei ertappen, Schritte zu überspringen (z.B. wenn du mit einem voretikettierten Dataset arbeitest), mehrere Schritte zurückzugehen (die Modellleistung ist nicht genau genug und du musst mehr Daten beschaffen) oder verrückte Schleifen zu durchlaufen (Architektur => Training => Evaluation => Training => Evaluation => Architektur).

Unsere Lieblings-Deep-Learning-Werkzeuge
Bei Luminovo arbeiten wir hart daran, Werkzeuge zu schaffen, die unseren Ingenieuren mehr Effizienz verleihen, und nutzen die leistungsstarken Werkzeuge, die brillante Deep Learning-Leute draußen geschaffen haben. Großartiger Code sollte geteilt werden, daher präsentiert das folgende Diagramm einen Überblick über die vielversprechendsten Deep Learning-Werkzeuge, die derzeit auf dem Markt sind. Von DL-Ingenieuren für DL-Ingenieure und alle, die mehr über die Erstellung von großartigen Deep Learning-Anwendungen erfahren möchten.

Moment mal — Dein Lieblingswerkzeug fehlt?! Lass es uns wissen, damit wir es zur Liste hinzufügen und den Stand des Deep Learnings in der Praxis gemeinsam voranbringen können: tooling@luminovo.ai.
Die Landschaft wurde in Zusammenarbeit mit La Famiglia und TU München erstellt.
Blogbeitrag: Judith Dada, Timon Ruban
Landschaft: Julien Schmidt, Isabella Hennessen, Sebastian Schaal
Zusätzlicher Dank geht an: Gunther Glenk, Nikolaus Volk, Nischal Harohalli Padmanabha, Kevin Poulet, Martin Patz, Timo Möller, Gilles Backhus, Hamza Tahir, Sabina Lim und Simon Rudat. Ihr seid die Besten! ❤️



Kostenfreie Demo buchen
Lassen Sie sich von unseren Produktspezialisten durch die Plattform führen, alle für Ihren individuellen Anwendungsfall relevanten Funktionalitäten ansprechen und alle Ihre Fragen direkt beantworten. Oder sehen Sie sich ein 5-minütiges Video der wichtigsten Funktionen an.