Lösungen

Produkt

Ressourcen

Unternehmen

Das Deep Learning-Toolset

November 28, 2018

KI

Industrie

Industrie

Jedes Problem, das es wert ist, gelöst zu werden, braucht großartige Werkzeuge zur Unterstützung. Deep Learning ist da keine Ausnahme. Wenn überhaupt, dann ist es ein Bereich, in dem gute Werkzeuge in den kommenden Jahren immer wichtiger werden.

Blogartikel mit Bildmotiv
Blogartikel mit Bildmotiv
Blogartikel mit Bildmotiv

Jedes Problem, das es wert ist, gelöst zu werden, braucht großartige Werkzeuge zur Unterstützung. Deep Learning ist da keine Ausnahme. Wenn überhaupt, dann ist es ein Bereich, in dem gute Werkzeuge in den kommenden Jahren immer wichtiger werden. Wir befinden uns noch in den relativ frühen Tagen der Deep-Learning-Supernova, in denen viele Deep-Learning-Ingenieure und -Enthusiasten ihren eigenen Weg zu effizienten Prozessen finden. Wir beobachten jedoch auch eine wachsende Zahl großartiger Tools, die den komplizierten Prozess des Deep Learning erleichtern und ihn sowohl zugänglicher als auch effizienter machen. Da sich Deep Learning immer mehr von der Arbeit von Forschern und Experten auf ein breiteres Feld von DL-Enthusiasten ausbreitet, die in das Feld einsteigen wollen (Zugänglichkeit), und von wachsenden Ingenieurteams, die ihre Prozesse rationalisieren und die Komplexität reduzieren wollen (Effizienz), haben wir einen Überblick über die besten DL-Tools zusammengestellt.

Ein genauerer Blick auf den Lebenszyklus des Deep Learning

Um Tools, die die Zugänglichkeit und Effizienz von Deep Learning fördern können, besser einschätzen zu können, sollten wir zunächst einen Blick darauf werfen, wie der Prozess tatsächlich aussieht.

Der Lebenszyklus einer typischen (überwachten) Deep-Learning-Anwendung besteht aus verschiedenen Schritten, die mit Rohdaten beginnen und mit Vorhersagen in freier Wildbahn enden.

Luminovos typischer Deep-Learning-Lebenszyklus-Workflow

Datenbeschaffung

Der erste Schritt zu einer Deep-Learning-Anwendung ist die Beschaffung der richtigen Daten. Manchmal hat man Glück und kann auf historische Daten zurückgreifen. Manchmal muss man nach Open-Source-Datensätzen suchen, das Web scrapen, die Rohdaten kaufen oder einen simulierten Datensatz verwenden. Da dieser Schritt oft sehr spezifisch für die jeweilige Anwendung ist, haben wir ihn nicht in unsere Tooling-Landschaft aufgenommen. Bitte beachten Sie jedoch, dass es Websites wie Googles Dataset Search oder Fast.ai Datasets gibt, die das Problem der Suche nach den richtigen Daten entschärfen können.

Datenbeschriftung

Die meisten überwachten Deep-Learning-Anwendungen arbeiten mit Bildern, Videos, Text oder Audio, und bevor Sie Ihr Modell trainieren, müssen Sie diese Rohdaten mit eindeutigen Kennzeichnungen versehen. Dies kann eine kostenintensive und zeitaufwändige Aufgabe sein. In einem idealen Setup ist dieser Prozess mit der Modellschulung und -bereitstellung verwoben und versucht, Ihre geschulten Deep-Learning-Modelle (auch wenn ihre Leistung noch nicht perfekt ist) so weit wie möglich zu nutzen.

Versionierung von Daten

Je mehr sich Ihre Daten im Laufe der Zeit entwickeln (z. B. wenn Sie einen intelligenten Beschriftungsprozess einrichten und Ihre Modelle mit wachsendem Datensatz immer wieder neu trainieren), desto wichtiger wird es, Ihre Datensätze zu versionieren (so wie Sie auch Ihren Code und Ihre trainierten Modelle immer versionieren sollten).

Skalierung der Hardware

Dieser Schritt ist sowohl für die Modellschulung als auch für die Bereitstellung relevant: Zugang zur richtigen Hardware. Wenn Sie während der Modellschulung von der lokalen Entwicklung zu groß angelegten Experimenten übergehen, muss Ihre Hardware entsprechend skaliert werden. Das Gleiche gilt für die Skalierung entsprechend der Nutzernachfrage, wenn Ihr Modell eingesetzt wird.

Modell der Architektur

Um mit dem Training Ihres Modells zu beginnen, müssen Sie die Modellarchitektur Ihres neuronalen Netzes auswählen.

Hinweis: Wenn Sie ein Standardproblem haben (z. B. das Erkennen von Katzen in Internet-Memes), bedeutet dies oft nicht mehr als das Kopieren des neuesten verfügbaren State-of-the-Art-Modells aus einem Open-Source-GitHub-Repository, aber gelegentlich werden Sie sich die Hände schmutzig machen und die Architektur Ihres Modells optimieren wollen, um die Leistung zu verbessern. Bei neueren Ansätzen wie der neuronalen Architektursuche (NAS) wird die Wahl der richtigen Modellarchitektur mehr und mehr unter die Phase des Modelltrainings subsumiert, aber ab 2018 ist der marginale Leistungszuwachs von NAS für die meisten Anwendungen die zusätzlichen Rechenkosten nicht wert.

An diesen Schritt denken die meisten Menschen, wenn sie an die Programmierung von Deep-Learning-Anwendungen denken, aber wie Sie sehen können, ist dies nur einer von vielen und oft nicht der wichtigste Schritt.

Modell Ausbildung

Während des Modelltrainings füttern Sie Ihr neuronales Netz mit den markierten Daten und aktualisieren iterativ die Modellgewichte, um den Verlust in Ihrem Trainingssatz zu minimieren. Sobald Sie eine Metrik ausgewählt haben (siehe Modellbewertung), können Sie Ihr Modell mit vielen verschiedenen Sätzen von Hyperparametern trainieren (z. B. welche Kombination von Lernrate, Modellarchitektur und Vorverarbeitungsschritten gewählt werden soll), was als Hyperparameter-Tuning bezeichnet wird.

Bewertung des Modells

Es wäre sinnlos, ein neuronales Netz zu trainieren, wenn man nicht zwischen einem guten und einem schlechten Modell unterscheiden könnte. Bei der Modellevaluierung wählt man in der Regel eine Metrik aus, für die man optimieren möchte (wobei man möglicherweise viele andere berücksichtigt). Für diese Metrik versucht man, das Modell mit der besten Leistung zu finden, das von den Trainingsdaten auf die Validierungsdaten verallgemeinert. Dazu müssen Sie die verschiedenen Experimente (mit möglicherweise unterschiedlichen Hyperparametern, Architekturen und Datensätzen) und ihre Leistungsmetriken verfolgen, die Ergebnisse der trainierten Modelle visualisieren und die Experimente miteinander vergleichen. Ohne die richtigen Werkzeuge kann dies schnell unübersichtlich und verwirrend werden, insbesondere wenn mehrere Ingenieure an derselben Deep-Learning-Pipeline arbeiten.

Modellversionierung

Ein winziger (aber dennoch erwähnenswerter) Schritt zwischen der abschließenden Modellbewertung und dem Einsatz des Modells: die Kennzeichnung Ihrer Modelle mit verschiedenen Versionen. So können Sie leicht zu einer Modellversion zurückkehren, die gut funktioniert hat, wenn Sie feststellen, dass Ihre neueste Modellversion nicht Ihren Erwartungen entspricht.

Modell-Einsatz

Wenn Sie eine Version Ihres Modells haben, die Sie gerne in Produktion geben möchten, müssen Sie es so einsetzen, dass Ihre Benutzer (das können Menschen oder andere Anwendungen sein) mit Ihrem Modell kommunizieren können: Sie senden Anfragen mit Daten und erhalten die Vorhersagen des Modells zurück. Im Idealfall unterstützt Ihr Tool für die Modellbereitstellung den schrittweisen Wechsel zwischen verschiedenen Modellversionen, so dass Sie die Auswirkungen eines neuen Modells in der Produktion vorhersehen können.

Überwachung von Prognosen

Sobald Ihr Modell implementiert ist, sollten Sie die Vorhersagen, die es in der realen Welt macht, genau im Auge behalten und sich über veränderte Datenverteilungen und Leistungseinbußen informieren, bevor Ihre Nutzer an Ihre Tür klopfen und sich über Ihren Service beschweren.

Hinweis: Das Flussdiagramm deutet bereits auf den zirkulären Charakter des typischen Deep-Learning-Workflows hin. Tatsächlich kann die Rückkopplungsschleife zwischen eingesetzten Modellen und neuen Labels (oft als “Human-in-the-Loop“ bezeichnet) einer der wichtigsten Erfolgsfaktoren für viele Anwendungen sein. In der Praxis des Deep Learning sind die Dinge oft komplizierter, als es das Flussdiagramm vermuten lässt. Sie werden feststellen, dass Sie Schritte überspringen (z. B. wenn Sie mit einem vormarkierten Datensatz arbeiten), mehrere Schritte zurückgehen (die Modellleistung ist nicht genau genug und Sie müssen mehr Daten beschaffen) oder in verrückten Schleifen hin und her gehen (Architektur => Training => Auswertung => Training => Auswertung => Architektur).

KI Meme

Unsere bevorzugten Deep Learning-Tools

Bei Luminovo arbeiten wir hart daran, Tools zu entwickeln, die unsere Ingenieure effizienter machen, und die leistungsstarken Tools zu nutzen, die brillante Deep-Learning-Experten entwickelt haben. Großartiger Code sollte geteilt werden, daher bietet die folgende Grafik einen Überblick über die vielversprechendsten Deep-Learning-Tools, die derzeit auf dem Markt sind. Von DL-Ingenieuren für DL-Ingenieure und all diejenigen, die mehr über die Erstellung von großartigen Deep-Learning-Anwendungen erfahren möchten.

Deep Learning Tools und Anwendungen

Moment mal - Ihr Lieblingswerkzeug fehlt noch? Lassen Sie es uns wissen, damit wir es der Liste hinzufügen und den Stand des Deep Learning in freier Wildbahn gemeinsam vorantreiben können: tooling@luminovo.ai.

Die Landschaft wurde in Zusammenarbeit mit La Famiglia und TU München.

Blog-Beitrag: Judith Dada, Timon Ruban
Landschaft:
Julien Schmidt, Isabella Hennessen, Sebastian Schaal

Weiterer 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!

Interessiert? Sprechen Sie mit uns.

Stellen Sie uns Ihre Fragen während einer persönlichen Live-Demo der Software. Oder sehen Sie sich vorher ein 5-minütiges Video zu den wichtigsten Funktionen an.

Interessiert?
Lassen Sie uns reden.

Stellen Sie uns Ihre Fragen während einer persönlichen Live-Demo der Software. Oder sehen Sie sich vorher ein 5-minütiges Video zu den wichtigsten Funktionen an.

Interessiert? Sprechen Sie mit uns.

Stellen Sie uns Ihre Fragen während einer persönlichen Live-Demo der Software. Oder sehen Sie sich vorher ein 5-minütiges Video zu den wichtigsten Funktionen an.

Letzte Artikel