Warum Unternehmen von TensorFlow zu PyTorch wechseln

Deep Learning, eine Unterkategorie des maschinellen Lernens, verwendet mehrschichtige neuronale Netze, um historisch schwierige maschinelle Aufgaben wie Bilderkennung, Verarbeitung natürlicher Sprache (NLP) und maschinelle Übersetzung im Maßstab zu automatisieren.

TensorFlow, das 2015 aus Google hervorgegangen ist, ist das beliebteste Open-Source-Deep-Learning-Framework für Forschung und Wirtschaft. PyTorch, das 2016 aus Facebook hervorgegangen ist, hat dank Community-gesteuerter Verbesserungen bei der Benutzerfreundlichkeit und Bereitstellung für eine wachsende Anzahl von Anwendungsfällen schnell aufgeholt.

PyTorch findet eine besonders starke Akzeptanz in der Automobilindustrie - wo es auf autonome Pilotantriebssysteme wie Tesla und Lyft Level 5 angewendet werden kann. Das Framework wird auch zur Klassifizierung und Empfehlung von Inhalten in Medienunternehmen und zur Unterstützung von Robotern verwendet in industriellen Anwendungen.

Joe Spisak, Produktleiter für künstliche Intelligenz bei Facebook AI, sagte, dass er zwar über die zunehmende Akzeptanz von PyTorch in Unternehmen erfreut sei, aber noch viel zu tun sei, um eine breitere Akzeptanz in der Branche zu erreichen.

"Die nächste Welle der Einführung wird mit der Aktivierung von Lifecycle Management-, MLOps- und Kubeflow-Pipelines und der Community in der Umgebung einhergehen", sagte er. "Für diejenigen, die zu Beginn der Reise sind, sind die Tools ziemlich gut. Sie verwenden verwaltete Dienste und Open Source mit etwas wie SageMaker bei AWS oder Azure ML, um loszulegen."

Disney: Identifizieren animierter Gesichter in Filmen

Seit 2012 erstellen Ingenieure und Datenwissenschaftler des Medienriesen Disney das so genannte Content Genome, ein Wissensdiagramm, das Inhaltsmetadaten zusammenführt, um maschinell lernbasierte Such- und Personalisierungsanwendungen in Disneys umfangreicher Inhaltsbibliothek bereitzustellen.

„Diese Metadaten verbessern Tools, mit denen Disney-Geschichtenerzähler Inhalte erstellen. iterative Kreativität beim Geschichtenerzählen anregen; Power-User-Erlebnisse durch Empfehlungs-Engines, digitale Navigation und Entdeckung von Inhalten; und Business Intelligence ermöglichen “, schrieben die Disney-Entwickler Miquel Angel Farré, Anthony Accardo, Marc Junyent, Monica Alfaro und Cesc Guitart im Juli in einem Blogbeitrag.

Bevor dies geschehen konnte, musste Disney in ein umfangreiches Projekt zur Kommentierung von Inhalten investieren und sich an seine Datenwissenschaftler wenden, um eine automatisierte Tagging-Pipeline zu trainieren, die Deep-Learning-Modelle für die Bilderkennung verwendet, um große Mengen von Bildern von Personen, Charakteren und Orten zu identifizieren.

Die Ingenieure von Disney experimentierten zunächst mit verschiedenen Frameworks, darunter TensorFlow, beschlossen jedoch, sich 2019 um PyTorch zu konsolidieren. Die Ingenieure wechselten von einem herkömmlichen Histogramm des Feature-Deskriptors für orientierte Gradienten (HOG) und dem beliebten SVM-Modell (Support Vector Machines) zu einer Version von Die Objekterkennungsarchitektur nannte Regionen mit Faltungs-Neuronalen Netzen (R-CNN). Letzteres war förderlicher für den Umgang mit den in Disney-Inhalten üblichen Kombinationen von Live-Action, Animationen und visuellen Effekten.

"Es ist schwierig zu definieren, was ein Gesicht in einem Cartoon ist. Deshalb haben wir mithilfe eines Objektdetektors auf Deep-Learning-Methoden umgestellt und Transfer-Learning verwendet", erklärte Monica Alfaro, Ingenieurin bei Disney Research. Nachdem nur wenige tausend Gesichter verarbeitet worden waren, identifizierte das neue Modell bereits in allen drei Anwendungsfällen Gesichter. Es ging im Januar 2020 in Produktion.

"Wir verwenden jetzt nur ein Modell für die drei Arten von Gesichtern, und das ist großartig, um für einen Marvel-Film wie Avengers zu laufen, in dem sowohl Iron Man als auch Tony Stark oder jeder Charakter, der eine Maske trägt, erkannt werden müssen", sagte sie.

Da die Ingenieure mit so großen Mengen an Videodaten arbeiten, um das Modell parallel zu trainieren und auszuführen, wollten sie beim Übergang in die Produktion auch auf teuren Hochleistungs-GPUs laufen.

Durch die Umstellung von CPUs konnten Ingenieure Modelle schneller neu trainieren und aktualisieren. Darüber hinaus wurde die Verteilung der Ergebnisse auf verschiedene Gruppen in ganz Disney beschleunigt, wodurch die Verarbeitungszeit für einen Spielfilm von ungefähr einer Stunde auf heute zwischen fünf und 10 Minuten verkürzt wurde.

"Der TensorFlow-Objektdetektor brachte Speicherprobleme in die Produktion und war schwer zu aktualisieren, während PyTorch denselben Objektdetektor und Faster-RCNN hatte, sodass wir PyTorch für alles verwendeten", sagte Alfaro.

Dieser Wechsel von einem Framework zu einem anderen war auch für das Engineering-Team überraschend einfach. "Der Wechsel [zu PyTorch] war einfach, da alles integriert ist, Sie nur einige Funktionen anschließen und schnell starten können, sodass es keine steile Lernkurve ist", sagte Alfaro.

Wenn sie auf Probleme oder Engpässe stießen, war die lebhafte PyTorch-Community zur Stelle, um zu helfen.

Blue River-Technologie: Unkrautbekämpfende Roboter

Blue River Technology hat einen Roboter entwickelt, der eine berauschende Kombination aus digitaler Wegfindung, integrierten Kameras und Computer Vision verwendet, um Unkraut mit Herbizid zu besprühen und dabei die Ernte nahezu in Echtzeit in Ruhe zu lassen. So können Landwirte teure und möglicherweise umweltschädliche Herbizide effizienter einsparen.

Das in Sunnyvale, Kalifornien, ansässige Unternehmen erregte 2017 die Aufmerksamkeit des Schwermaschinenherstellers John Deere, als es für 305 Millionen US-Dollar erworben wurde, um die Technologie in seine landwirtschaftlichen Geräte zu integrieren.

Blue River-Forscher experimentierten mit verschiedenen Deep-Learning-Frameworks, während sie versuchten, Computer-Vision-Modelle zu trainieren, um den Unterschied zwischen Unkraut und Pflanzen zu erkennen. Dies ist eine große Herausforderung, wenn es um Baumwollpflanzen geht, die eine unglückliche Ähnlichkeit mit Unkraut aufweisen.

Hochqualifizierte Agronomen wurden entworfen, um manuelle Bildkennzeichnungsaufgaben durchzuführen und ein Faltungsnetzwerk (CNN) mit PyTorch zu trainieren, „um jeden Rahmen zu analysieren und eine pixelgenaue Karte zu erstellen, wo sich die Pflanzen und Unkräuter befinden“, Chris Padwick, Computerdirektor Vision und maschinelles Lernen bei Blue River Technology, schrieb im August in einem Blogbeitrag.

"Wie andere Unternehmen haben wir Caffe, TensorFlow und dann PyTorch ausprobiert", sagte Padwick. „Für uns funktioniert es ziemlich sofort. Wir haben überhaupt keine Fehlerberichte oder Blockierungsfehler erhalten. Beim verteilten Rechnen glänzt es wirklich und ist einfacher zu verwenden als TensorFlow, was für Datenparallelitäten ziemlich kompliziert war. “

Laut Padwick bietet ihm die Popularität und Einfachheit des PyTorch-Frameworks einen Vorteil, wenn es darum geht, neue Mitarbeiter schnell zu gewinnen. Davon abgesehen träumt Padwick von einer Welt, in der sich „Menschen in allem entwickeln, was ihnen gefällt. Einige mögen Apache MXNet oder Darknet oder Caffe für Forschungszwecke, aber in der Produktion muss es in einer einzigen Sprache sein, und PyTorch hat alles, was wir brauchen, um erfolgreich zu sein. “

Datarock: Cloud-basierte Bildanalyse für die Bergbauindustrie

Das australische Startup Datarock wurde von einer Gruppe von Geowissenschaftlern gegründet und setzt Computer Vision-Technologie in der Bergbauindustrie ein. Insbesondere helfen die Deep-Learning-Modelle Geologen dabei, die Bilder von Bohrkernproben schneller als zuvor zu analysieren.

Normalerweise durchforstete ein Geologe diese Proben Zentimeter für Zentimeter, um die Mineralogie und Struktur zu beurteilen, während Ingenieure nach physikalischen Merkmalen wie Fehlern, Brüchen und Gesteinsqualität suchten. Dieser Prozess ist sowohl langsam als auch anfällig für menschliches Versagen.

"Ein Computer kann Steine ​​sehen, wie es ein Ingenieur tun würde", sagte Brenton Crawford, COO von Datarock. "Wenn Sie es auf dem Bild sehen können, können wir ein Modell trainieren, um es ebenso wie einen Menschen zu analysieren."

Ähnlich wie bei Blue River verwendet Datarock in der Produktion eine Variante des RCNN-Modells. Die Forscher wenden sich Datenerweiterungstechniken zu, um in einem frühen Stadium genügend Trainingsdaten zu sammeln.

„Nach der ersten Ermittlungsphase begann das Team, Techniken zu kombinieren, um einen Bildverarbeitungsworkflow für Drill-Core-Bilder zu erstellen. Dies beinhaltete die Entwicklung einer Reihe von Deep-Learning-Modellen, mit denen Rohbilder in ein strukturiertes Format umgewandelt und wichtige geologische Informationen segmentiert werden konnten “, schrieben die Forscher in einem Blogbeitrag.

Mit der Datarock-Technologie können Kunden Ergebnisse in einer halben Stunde erhalten, im Gegensatz zu den fünf oder sechs Stunden, die für die manuelle Protokollierung der Ergebnisse erforderlich sind. Dies befreit Geologen von den mühsameren Teilen ihrer Arbeit, sagte Crawford. "Wenn wir jedoch Dinge automatisieren, die schwieriger sind, bekommen wir einige Rückschläge und müssen erklären, dass sie Teil dieses Systems sind, um die Modelle zu trainieren und diese Rückkopplungsschleife zum Drehen zu bringen."

Wie viele Unternehmen, die Deep-Learning-Computer-Vision-Modelle trainieren, begann Datarock mit TensorFlow, wechselte jedoch bald zu PyTorch.

"Zu Beginn haben wir TensorFlow verwendet und es würde uns aus mysteriösen Gründen zum Absturz bringen", sagte Duy Tin Truong, Leiter für maschinelles Lernen bei Datarock. "PyTorch und Detecton2 wurden zu diesem Zeitpunkt veröffentlicht und passten gut zu unseren Anforderungen. Nach einigen Tests war es einfacher zu debuggen und zu arbeiten, und es wurde weniger Speicher belegt, sodass wir konvertierten", sagte er.

Datarock berichtete auch über eine 4-fache Verbesserung der Inferenzleistung von TensorFlow zu PyTorch und Detectron2, wenn die Modelle auf GPUs ausgeführt wurden - und 3x auf CPUs.

Truong nannte die wachsende Community von PyTorch, die gut gestaltete Benutzeroberfläche, die Benutzerfreundlichkeit und das bessere Debugging als Gründe für den Wechsel und stellte fest, dass „TensorFlow, wenn Sie TensorFlow kennen, zwar aus Sicht der Benutzeroberfläche sehr unterschiedlich ist, aber leicht zu wechseln ist vor allem, wenn Sie Python kennen. “