iX 09/18

Machine Learning as a Service

Autor:

TensorFlow Serving stellt Machine-Learning-Modelle schnell, flexibel und vor allem performant in Produktionsumgebungen bereit. In Kombination mit Keras lassen sich so hochskalierbare Modelle erstellen und als Services in Anwendungen integrieren.

Dank moderner Frameworks wie TensorFlow und Keras haben Deep-Learning-Methoden mittlerweile den Weg aus der Forschung in die Industrie gefunden. Ob in der Verarbeitung natürlicher Sprache oder bei der Objekterkennung – neuronale Netze sind kaum mehr wegzudenken.

Eines der meistgenutzten Frameworks für Deep Learning ist Keras, eine High-Level-API für neuronale Netze, die TensorFlow als Backend für verteilte Berechnungen nutzen kann. Durch die einfache API und den modularen Aufbau lassen sich in Keras schnell funktionale Prototypen für eine Vielzahl von Netzarchitekturen definieren und trainieren. Doch Machine-Learning-Modelle werden heute nicht mehr nur für einmalige Analysezwecke genutzt – in Anwendungen ersetzen sie oft statische Regelwerke oder Algorithmen. Daher stellt sich die Frage, wie sich trainierte Modelle in Anwendungen
integrieren lassen.

Während es im Big-Data-Bereich bereits Frameworks wie Apache Airflow oder Luigi von Spotify gibt, die eine robuste Verarbeitung in großen Batches ermöglichen, muss man bei der Integration neuronaler Netze in Anwendungen anders vorgehen. Hier werden Modelle nicht periodisch aus Batch-Jobs angewendet, sondern live als Aufruf in der Applikation. Um diese Art der Integration zu erleichtern, hat Google TensorFlow Serving entwickelt. Mit dem integrierten ModelServer lassen sich TensorFlow-Modelle mit wenig Aufwand bereitstellen und nutzen.

TensorFlow Serving besteht im Wesentlichen aus dem ModelServer als Hauptkomponente und der TensorFlow Serving API für Python. Das zentrale Konzept für das Deployment nativer TensorFlow-Modelle ist das Servable, das die vom Server geladenen Modellinstanzen abstrahiert. Die weiteren Komponenten
von TensorFlow Serving sind lediglich erforderlich, wenn der Model-Server erweitert werden soll, da er von Haus aus TensorFlow-Modelle nur aus
dem lokalen Dateisystem laden kann. Für solche Erweiterungen muss man TensorFlow Serving jedoch neu kompilieren.

Vollständiger Artikel