Mit dem CoreML Framework von Apple können Entwickler seit iOS 11 eigene geschulte Modelle für maschinelles Lernen (ML) in Apps integrieren. Das Framework unterstützt dazu eine Vielzahl von ML-Modellen, einschließlich neuronaler Netze und Vektormaschinen.
Dabei war es bisher so, dass es lediglich möglich war, ML-Modelle auf leistungsstarken Computern zu trainieren und diese Trainingsmodelle auf einem iOS/macOS-Endgerät optimiert auszuführen. Diese Optimierung bestand sowohl in der Performance, dem bei der Verarbeitung benötigten Stromverbrauch als auch in dem für das ML-Modell benötigte Speicherbedarf.
Die strikte und restriktive Ausführung der ML-Modelle direkt auf dem Apple-Device (und nicht in der Cloud) sollte dabei die Vertraulichkeit der Anwenderdaten gewährleisten und sicherstellen, dass eine App auch dann funktions- und reaktionsfähig bleibt, wenn das Gerät selbst keine Internet-Verbindung mehr hat. Die Modelle konnten dabei dank Open-Source-Tools aus den verschiedensten Frameworks in CoreML überführt werden.
Bisherige Möglichkeiten und Probleme
Apple stellt auch eigene Frameworks auf ML-Basis zur Verfügung. So können Entwickler Daten von der Kamera (oder von Bildern) eines Smartphones mit Vision API nutzen. Das ist ein Framework, das unter anderem Gesichts- und Orientierungspunkterkennung, Texterkennung und Barcodeerkennung anbietet. Mithilfe von Natural Language Processing API unterstützt Apple die semantische Analyse von Texten. Diese beinhaltet:
Satz-, Paragraph-, Wort-Analyse (Tokenization);
Erkennung von Wortzusammenhängen (z.B. Namen, die zusammengehören);
Erkennung und Zusammenfassung von Worten in Einzahl (Singular) Mehrzahl (Plural) und verschiedenen Zeitformen (Spielen, spiel, spielte, gespielt, etc.);
Identifizieren von Verben, Nomen/Pronomen, Adjektive und Adverbien;
Erkennen der Landessprache eines Textes.
Egal, ob ein Entwickler die Frameworks oder seine eigenen Modelle zur Bilderkennung, Texterkennung, Mustererkennung, Gesichtserkennung, Spracherkennung, Handschrifterkennung etc. möchte, die Integration in der Praxis erfolgt mit wenigen Codezeilen.
Apple's CoreML Framework unterstützt aktuell:
Generalized Linear Models;
Tree Ensembles;
Support Vector Machines;
Feedforward Neural Networks;
Convolution Neural Networks;
Recurrent Neural Networks.
CoreML weist jedoch auch einige Herausforderungen und Einschränkungen auf. Beispielsweise unterstützt CoreML nur zwei Arten von maschinellem Lernen: Regression und Klassifizierung. Zwar stellt letztere die wohl am häufigsten verwendete Frage dar, auf die ML eine Antwort liefern soll, aber es gibt noch viele andere und daraus resultierende Aufgaben (einschließlich Clustering, Ranking, Strukturvorhersage, Datenkomprimierung usw.). Auch das "Lernen" von Modellen auf dem Gerät selbst, war bisher nicht angedacht.
Viel Neues mit CoreML 3
Auf der WWDC2019 hat Apple CoreML 3 vorgestellt. CoreML 3 wird auf den Systemplattformen tvOS, macOS, watchOS, iOS und iPadOS ausgeführt. Diese Version bietet nun auch Machine Learning direkt auf dem Gerät, zu Personalisierungszwecken ("Model Personalization"), an.
Maschinelles Lernen auf dem Gerät wird immer beliebter, um die Privatsphäre des Nutzers zu respektieren und das Modell schnell auf den neuesten Stand zu bringen. So erklärte Entwicklungschef Craig Federighi während einer Präsentation, dass sich ein Modell mit 20.000 Bildern auf dem Mac in weniger als einer Stunde trainieren ließe. Auf konventionellem Wege auf einem Cloudserver würde dies hingegen rund einen Tag dauern. In den letzten Monaten sind Lösungen für gängige Frameworks wie TensorFlow von Google und PyTorch von Facebook hinzugekommen. Apple zieht hier also mit dem Trend mit. Unter dem Stichwort "Model Flexibility" stellt Apple in Aussicht, mit CoreML 3 mehr als 100 Neural Network Layers zu unterstützen.
Die bisher benannten ML-Frameworks werden mit dem für Herbst 2019 erwarteten Release von iOS 13 erweitert. Hier ein paar Beispiele für die neuen Möglichkeiten
Natural Language API
Stimmungsanalyse;
Wortzusammenhänge;
Klassifizierung von Texten.
Speech/Sound API
Spracherkennung auf dem Gerät;
Sprachanalyse;
Schall/-Tonanalyse.
Vision API
Bildklassifizierung;
Bildaussagefähigkeit;
Bildähnlichkeit;
Aufmerksamkeitsrelevanz;
Gesichts-/Landschaftsmarkenerkennung;
Dokumentenerkennung;
Texterkennung;
Erkennung von Menschen oder Tieren.
Einfacher zum eigenen ML-Modell
Mit CreateML wurde 2018 ein GPU-beschleunigtes Framework zum Trainieren spezifischer ML-Modelle mithilfe von Xcode und der Programmiersprache Swift vorgestellt. Dieses ermöglichte es Entwicklern, auch ohne ML-Erfahrung eigene ML-Modelle zu erstellen. Dabei bot CreateML bisher Unterstützung für Text-, Bild- und sonstige strukturierte Daten an. Auch aus geringen Datenmengen konnte CreateML dabei bereits anständige ML-Modelle ableiten. So konnten Entwickler beispielsweise Bilder automatisiert drehen, schneiden und/oder verschlechtern lassen, um die geringe Ausgangszahl von Fotos für ein anständiges ML-Modell Ergebnis zu optimieren
In der neuen Version dürfen Entwickler sich auch auf die Unterstützung von Sound- (z.B. Applaus) und Sportaktivitäten freuen. Die Möglichkeit, mehrere Modelle mit unterschiedlichen Datensätzen zu trainieren, wird nun ebenfalls mit der neuen, aktuell noch im Beta-Stadium verfügbaren Version, geboten.
CreateML kann allerdings weiterhin auch nur von Entwicklern unter macOS genutzt werden. Entwickler haben so die Möglichkeiten, die Modelle selbst zu trainieren, die sie zum Beispiel für Objekterkennung oder auch Geräuscherkennung benötigen. CreateML ermöglicht so diverse (neue) Einsatzbereiche, unter anderem:
Bildklassifizierung;
Objekterkennung;
Ton/Schallerkennung;
Aktivitätenerkennung;
Klassifizieren von Texten;
Ableitungen von Empfehlungen.
Die Nutzung von Swift im Swift Playground von Xcode wird nicht mehr benötigt.
Fazit
Im Gegensatz zu Googles ML Kit, das sowohl für Android- als auch für iOS-Entwickler angeboten wird, ist CoreML ausschließlich für Entwickler im Apple-Ökosystem gedacht. Es ist erstaunlich, wieviel Mühe Apple sich jedes Jahr aufs Neue macht, um die Möglichkeiten von CreateML lokal auf dem Gerät auszuweiten und die Privatsphäre des Nutzers zu schützen. Dies ergibt Sinn, denn gute ML-Modelle brauchen - auch für den kommerziellen Endkundeneinsatz - meist keine Backend-Machine-Learning-Dienste. Wir sind gespannt, ob es bis zum Release von iOS 13 noch Neuigkeiten oder zusätzliche Erkenntnisse gibt.