Vorwort

Als Henry Ford 1913 das erste fahrende Fließband für sein legendäres Modell T baute, verkürzte sich die Zeit, die für den Bau eines Autos benötigt wurde, von 12 auf 3 Stunden. Das senkte die Kosten drastisch und machte das Model T zum ersten erschwinglichen Auto der Geschichte. Außerdem ermöglichte es die Massenproduktion: Bald waren die Straßen mit Model T überschwemmt.

Da der Produktionsprozess nun eine klare Abfolge von genau definierten Schritten (auch Pipeline genannt) war, war es möglich, einige dieser Schritte zu automatisieren und so noch mehr Zeit und Geld zu sparen. Heute werden Autos größtenteils von Maschinen gebaut.

Aber es geht nicht nur um Zeit und Geld. Bei vielen sich wiederholenden Aufgaben liefert eine Maschine viel gleichmäßigere Ergebnisse als ein Mensch, wodurch das Endprodukt berechenbarer, gleichmäßiger und zuverlässiger wird. Und schließlich wird die Sicherheit erheblich verbessert, indem Menschen von schweren Maschinen ferngehalten werden, und viele Arbeitnehmerinnen und Arbeitnehmer werden in höherwertigen Berufen eingesetzt (obwohl, um fair zu sein, viele andere einfach ihren Job verloren haben).

Auf der anderen Seite kann die Einrichtung einer Montagelinie ein langer und kostspieliger Prozess sein. Und es ist nicht ideal, wenn du kleine Mengen oder sehr individuelle Produkte herstellen willst. Ford hat einmal gesagt: "Jeder Kunde kann ein Auto in jeder beliebigen Farbe lackieren lassen, solange es schwarz ist."

Die Geschichte der Autoproduktion hat sich in den letzten Jahrzehnten in der Softwarebranche wiederholt: Jedes wichtige Stück Software wird heutzutage in der Regel mit Automatisierungswerkzeugen wie Jenkins oder Travis erstellt, getestet und bereitgestellt. Die Metapher des Model T ist jedoch nicht mehr ausreichend. Software wird nicht einfach bereitgestellt und vergessen, sondern muss regelmäßig überwacht, gewartet und aktualisiert werden. Software-Pipelines ähneln heute eher dynamischen Schleifen als statischen Fertigungsstraßen. Es ist entscheidend, die Software (oder die Pipeline selbst) schnell aktualisieren zu können, ohne sie zu zerstören. Und Software ist viel anpassungsfähiger als das Model T es je war: Software kann in jeder beliebigen Farbe angemalt werden (z. B. kannst du die Anzahl der MS Office-Varianten zählen).

Leider sind "klassische" Automatisierungswerkzeuge nicht gut geeignet, um eine komplette Machine-Learning-Pipeline zu bearbeiten. Ein ML-Modell ist nämlich kein normales Stück Software.

Zum einen wird ein großer Teil des Verhaltens von den Daten bestimmt, mit denen es trainiert wird. Deshalb müssen die Trainingsdaten selbst wie Code behandelt werden (z. B. versioniert). Das ist ein ziemlich kniffliges Problem, weil jeden Tag neue Daten auftauchen (oft in großen Mengen), die sich im Laufe der Zeit entwickeln und driften, oft private Daten enthalten und gekennzeichnet werden müssen, bevor man sie an überwachte Lernalgorithmen weitergeben kann.

Zweitens ist das Verhalten eines Modells oft ziemlich undurchsichtig: Es kann bei einigen Daten alle Tests bestehen, bei anderen aber komplett fehlschlagen. Du musst also sicherstellen, dass deine Tests alle Datendomänen abdecken, für die dein Modell in der Produktion verwendet werden soll. Vor allem musst du sicherstellen, dass es keine Untergruppe deiner Nutzerinnen und Nutzer benachteiligt.

Aus diesen (und anderen) Gründen begannen Datenwissenschaftler/innen und Softwareentwickler/innen zunächst damit, ML-Modelle manuell zu erstellen und zu trainieren, sozusagen "in ihrer Garage", und viele von ihnen tun das auch heute noch. In den letzten Jahren wurden jedoch neue Automatisierungstools entwickelt, die die Herausforderungen von ML-Pipelines angehen, wie TensorFlow Extended (TFX) und Kubeflow. Immer mehr Unternehmen setzen diese Tools ein, um ML-Pipelines zu erstellen, die die meisten (oder alle) Schritte bei der Erstellung und dem Training von ML-Modellen automatisieren. Die Vorteile dieser Automatisierung sind größtenteils dieselben wie in der Automobilindustrie: Zeit und Geld sparen, bessere, zuverlässigere und sicherere Modelle erstellen und mehr Zeit für nützlichere Aufgaben aufwenden, als Daten zu kopieren oder auf Lernkurven zu starren. Der Aufbau einer ML-Pipeline ist jedoch nicht trivial. Wo solltest du also anfangen?

Nun, genau hier!

In diesem Buch geben Hannes und Catherine eine klare Anleitung, wie du deine ML-Pipelines automatisieren kannst. Da ich ein überzeugter Anhänger des praktischen Ansatzes bin, besonders bei einem so technischen Thema, hat mir besonders gut gefallen, wie dieses Buch dich Schritt für Schritt durch ein konkretes Beispielprojekt von Anfang bis Ende führt. Dank der vielen Code-Beispiele und der klaren, prägnanten Erklärungen solltest du in kürzester Zeit deine eigene ML-Pipeline auf die Beine gestellt haben und über alle konzeptionellen Werkzeuge verfügen, die du brauchst, um diese ML-Pipelines an deine eigenen Anwendungsfälle anzupassen. Ich empfehle dir, dir deinen Laptop zu schnappen und die Dinge während des Lesens auszuprobieren; du wirst viel schneller lernen.

Ich traf Hannes und Catherine zum ersten Mal im Oktober 2019 auf der TensorFlow World Konferenz in Santa Clara, Kalifornien, wo ich über den Aufbau von ML-Pipelines mit TFX sprach. Sie arbeiteten an diesem Buch zum selben Thema und wir teilten uns denselben Redakteur, also hatten wir natürlich viel zu besprechen. Einige Teilnehmer/innen meines Kurses hatten sehr technische Fragen zu TensorFlow Serving (das Teil von TFX ist) gestellt, und Hannes und Catherine hatten alle Antworten, die ich suchte. Hannes nahm sogar freundlicherweise meine Einladung an, am Ende meines Kurses sehr kurzfristig einen Vortrag über fortgeschrittene Funktionen von TensorFlow Serving zu halten. Sein Vortrag war eine Fundgrube an Erkenntnissen und hilfreichen Tipps, die du alle in diesem Buch findest, zusammen mit vielen, vielen weiteren.

Jetzt ist es an der Zeit, mit dem Aufbau professioneller ML-Pipelines zu beginnen!

Get Aufbau von Pipelines für maschinelles Lernen now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.