Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Maschinelles Lernen ist in aller Munde. Es hat sich von einer akademischen Disziplin zu einer der spannendsten Technologien überhaupt entwickelt. Vom Verstehen von Videoübertragungen in selbstfahrenden Autos bis hin zur Personalisierung von Medikamenten - maschinelles Lernen wird in allen Branchen immer wichtiger. Während den Modellarchitekturen und Konzepten viel Aufmerksamkeit geschenkt wurde, hat das maschinelle Lernen noch nicht die Standardisierung der Prozesse durchlaufen, die die Softwarebranche in den letzten zwei Jahrzehnten erlebt hat. In diesem Buch möchten wir dir zeigen, wie du ein standardisiertes maschinelles Lernsystem aufbauen kannst, das automatisiert ist und zu reproduzierbaren Modellen führt.
Was sind Machine Learning Pipelines?
In den letzten Jahren waren die Entwicklungen im Bereich des maschinellen Lernens erstaunlich. Mit der breiten Verfügbarkeit von Grafikprozessoren (GPUs) und dem Aufkommen neuer Deep Learning-Konzepte wie Transformers wie BERT oder Generative Adversarial Networks (GANs) wie Deep Convolutional GANs ist die Zahl der KI-Projekte in die Höhe geschnellt. Die Zahl der KI-Startups ist enorm. Unternehmen wenden die neuesten Konzepte des maschinellen Lernens zunehmend auf alle Arten von Geschäftsproblemen an. In diesem Wettlauf um die leistungsfähigste maschinelle Lernlösung haben wir einige Dinge beobachtet, denen weniger Aufmerksamkeit geschenkt wurde. Wir haben festgestellt, dass es Datenwissenschaftlern und Ingenieuren für maschinelles Lernen an guten Informationsquellen für Konzepte und Werkzeuge fehlt, um ihre Entwicklungen zu beschleunigen, wiederzuverwenden, zu verwalten und einzusetzen. Was wir brauchen, ist die Standardisierung von Pipelines für maschinelles Lernen.
Pipelines für maschinelles Lernen implementieren und formalisieren Prozesse zur Beschleunigung, Wiederverwendung, Verwaltung und Bereitstellung von maschinellen Lernmodellen. Die Softwareentwicklung hat vor etwa zehn Jahren mit der Einführung von Continuous Integration (CI) und Continuous Deployment (CD) die gleichen Veränderungen durchlaufen. Damals war es ein langwieriger Prozess, eine Web-App zu testen und bereitzustellen. Heutzutage sind diese Prozesse durch einige wenige Tools und Konzepte stark vereinfacht worden. Früher erforderte die Bereitstellung von Webanwendungen die Zusammenarbeit zwischen einem DevOps-Ingenieur und dem Softwareentwickler. Heute kann die App innerhalb weniger Minuten getestet und zuverlässig bereitgestellt werden. Datenwissenschaftler/innen und Ingenieur/innen für maschinelles Lernen können von der Softwareentwicklung eine Menge über Arbeitsabläufe lernen. Mit diesem Buch wollen wir zur Standardisierung von Machine-Learning-Projekten beitragen, indem wir die Leser/innen von Anfang bis Ende durch eine komplette Machine-Learning-Pipeline führen.
Aus unserer persönlichen Erfahrung wissen wir, dass die meisten Data-Science-Projekte, die darauf abzielen, Modelle in der Produktion einzusetzen, nicht den Luxus eines großen Teams haben. Das macht es schwierig, eine ganze Pipeline intern von Grund auf aufzubauen. Das kann dazu führen, dass Machine-Learning-Projekte zu einmaligen Projekten werden, bei denen die Leistung mit der Zeit nachlässt, der Datenwissenschaftler einen Großteil seiner Zeit damit verbringt, Fehler zu beheben, wenn sich die zugrundeliegenden Daten ändern, oder das Modell nicht breit eingesetzt wird. Eine automatisierte, reproduzierbare Pipeline reduziert den Aufwand für den Einsatz eines Modells. Die Pipeline sollte die folgenden Schritte enthalten:
-
Versioniere deine Daten effektiv und starte einen neuen Modell-Trainingslauf
-
Validiere die empfangenen Daten und prüfe auf Datendrift
-
Effiziente Vorverarbeitung der Daten für das Training und die Validierung deines Modells
-
Trainiere effektiv deine Machine Learning Modelle
-
Verfolge dein Modelltraining
-
Analysiere und validiere deine trainierten und abgestimmten Modelle
-
Einsetzen des validierten Modells
-
Skaliere das eingesetzte Modell
-
Erfasse neue Trainingsdaten und modelliere Leistungsmetriken mit Feedbackschleifen
Diese Liste lässt einen wichtigen Punkt aus: die Wahl der Modellarchitektur. Wir gehen davon aus, dass du mit diesem Schritt bereits gut vertraut bist. Wenn du gerade erst mit maschinellem oder Deep Learning anfängst, sind diese Ressourcen ein guter Ausgangspunkt, um dich mit maschinellem Lernen vertraut zu machen:
-
Grundlagen des Deep Learning: Designing Next-Generation Machine Intelligence Algorithms, 1. Auflage von Nikhil Buduma und Nicholas Locascio (O'Reilly)
-
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd editionby Aurélien Géron (O'Reilly)
Für wen ist dieses Buch?
Das Buch richtet sich in erster Linie an Data Scientists und Machine-Learning-Ingenieure, die über das Training eines einzelnen Machine-Learning-Modells hinausgehen und ihre Data-Science-Projekte erfolgreich produktiv machen wollen. Du solltest mit grundlegenden Konzepten des maschinellen Lernens vertraut sein und mindestens ein Framework für maschinelles Lernen kennen (z. B. PyTorch, TensorFlow, Keras). Die Beispiele für maschinelles Lernen in diesem Buch basieren auf TensorFlow und Keras, aber die Kernkonzepte können auf jedes Framework angewendet werden.
Dieses Buch richtet sich auch an Manager von Data-Science-Projekten, Softwareentwickler oder DevOps-Ingenieure, die ihre Organisation in die Lage versetzen wollen, ihre Data-Science-Projekte zu beschleunigen. Wenn du daran interessiert bist, die automatisierten Lebenszyklen des maschinellen Lernens besser zu verstehen und zu erfahren, wie dein Unternehmen davon profitieren kann, wird in diesem Buch eine Toolchain vorgestellt, mit der du genau das erreichen kannst.
Warum TensorFlow und TensorFlow Extended?
In diesem Buch werden alle unsere Pipeline-Beispiele Werkzeuge aus dem TensorFlow-Ökosystem verwenden, insbesondere TensorFlow Extended (TFX). Es gibt eine Reihe von Gründen, warum wir uns für dieses Framework entschieden haben:
-
Das TensorFlow-Ökosystem ist das umfangreichste, das zum Zeitpunkt der Erstellung dieses Artikels für maschinelles Lernen verfügbar ist. Es umfasst mehrere nützliche Projekte und Support-Bibliotheken, die über den Kernfokus hinausgehen, wie TensorFlow Privacy und TensorFlow Probability.
-
Es ist beliebt und wird in kleinen und großen Produktionsbetrieben eingesetzt, und es gibt eine aktive Gemeinschaft von interessierten Nutzern.
-
Die unterstützten Anwendungsfälle reichen von der akademischen Forschung bis zum maschinellen Lernen in der Produktion. TFX ist eng mit der TensorFlow-Kernplattform für Produktionsanwendungen integriert.
-
Sowohl TensorFlow als auch TFX sind Open-Source-Tools und es gibt keine Einschränkungen für ihre Nutzung.
Alle Prinzipien, die wir in diesem Buch beschreiben, sind jedoch auch für andere Tools und Frameworks relevant.
Überblick über die Kapitel
In jedem Kapitel stellen wir bestimmte Schritte für den Aufbau von Pipelines für maschinelles Lernen vor und zeigen anhand eines Beispielprojekts, wie diese funktionieren.
Kapitel 1: Einführung gibt einen Überblick über Pipelines für maschinelles Lernen, erörtert, wann du sie verwenden solltest, und beschreibt alle Schritte, aus denen eine Pipeline besteht. Außerdem stellen wir das Beispielprojekt vor, das wir im Laufe des Buches verwenden werden.
Kapitel 2: Einführung in TensorFlow Extended stellt das TFX-Ökosystem vor, erklärt, wie Tasks miteinander kommunizieren und beschreibt, wie die TFX-Komponenten intern funktionieren. Wir werfen auch einen Blick auf den ML MetadataStore und wie er im Kontext von TFX verwendet wird und wie Apache Beam die TFX-Komponenten im Hintergrund ausführt.
In Kapitel 3: Data Ingestion wird erörtert, wie wir Daten auf konsistente Weise in unsere Pipelines bekommen, und es wird auch das Konzept der Datenversionierung behandelt.
Kapitel 4: Datenvalidierung erklärt, wie die Daten, die in deine Pipeline fließen, mit der TensorFlow-Datenvalidierung effizient validiert werden können. Dadurch wirst du gewarnt, wenn sich neue Daten wesentlich von früheren Daten unterscheiden und die Leistung deines Modells beeinträchtigen könnten .
Kapitel 5: Datenvorverarbeitung konzentriert sich auf die Vorverarbeitung von Daten (das Feature-Engineering) mit TensorFlow Transform, um Rohdaten in Features umzuwandeln, die für das Training eines maschinellen Lernmodells geeignet sind.
In Kapitel 6: Modelltraining wird erläutert, wie du Modelle in Pipelines für maschinelles Lernen trainieren kannst. Wir erklären auch das Konzept der Modelloptimierung.
In Kapitel 7: Modellanalyse und -validierung werden nützliche Metriken zum Verständnis deines Modells in der Produktion vorgestellt, darunter auch solche, mit denen du Verzerrungen in den Vorhersagen des Modells aufdecken kannst, und es werden Methoden zur Erklärung der Vorhersagen deines Modells erörtert. In "Analyse und Validierung in TFX" wird erklärt, wie du die Versionierung deines Modells steuern kannst, wenn eine neue Version eine Kennzahl verbessert. Das Modell in der Pipeline kann automatisch auf die neue Version aktualisiert werden.
Kapitel 8: Modellbereitstellung mit TensorFlow Serving konzentriert sich darauf, wie du dein Machine Learning Modell effizient bereitstellst. Wir beginnen mit einer einfachen Flask-Implementierung und zeigen die Grenzen solcher benutzerdefinierten Modellanwendungen auf. Wir stellen TensorFlow Serving vor und zeigen, wie du deine Serving-Instanzen konfigurierst. Außerdem besprechen wir die Batching-Funktionalität und führen dich durch die Einrichtung von Clients für die Abfrage von Modellvorhersagen.
Kapitel 9: Fortgeschrittene Modelleinsätze mit TensorFlow Serving bespricht, wie du deine Modelleinsätze optimieren und überwachen kannst. Wir behandeln Strategien zur Optimierung deiner TensorFlow-Modelle, um die Leistung zu steigern. Wir führen dich auch durch ein grundlegendes Deployment-Setup mit Kubernetes.
Kapitel 10: Advanced TensorFlow Extended führt in das Konzept der benutzerdefinierten Komponenten für deine Machine Learning Pipelines ein, damit du nicht durch die Standardkomponenten in TFX eingeschränkt bist. Ganz gleich, ob du zusätzliche Dateneingabeschritte hinzufügen oder deine exportierten Modelle in TensorFlow Lite (TFLite) konvertieren möchtest, wir führen dich durch die notwendigen Schritte zur Erstellung solcher Komponenten.
Kapitel 11: Pipelines Teil I: Apache Beam und Apache Airflow verbindet alle Punkte aus den vorherigen Kapiteln. Wir besprechen, wie du deine Komponenten in Pipelines verwandeln kannst und wie du sie für die Orchestrierungsplattform deiner Wahl konfigurieren musst. Außerdem führen wir dich durch eine komplette End-to-End-Pipeline, die auf Apache Beam und Apache Airflow läuft.
Kapitel 12: Pipelines Teil 2: Kubeflow Pipelines setzt das vorherige Kapitel fort und führt durch End-to-End-Pipelines mit Kubeflow Pipelines und Googles AI Platform.
In Kapitel 13: Feedbackschleifen geht es darum, wie du deine Modellpipeline in einen Kreislauf verwandelst, der durch das Feedback der Nutzer des Endprodukts verbessert werden kann. Wir besprechen, welche Art von Daten du erfassen musst, um das Modell für zukünftige Versionen zu verbessern, und wie du Daten in die Pipeline zurückführst.
Kapitel 14: Datenschutz für maschinelles Lernen führt in das schnell wachsende Feld des datenschutzfreundlichen maschinellen Lernens ein und bespricht drei wichtige Methoden dafür: differentielle Privatsphäre, föderiertes Lernen und verschlüsseltes maschinelles Lernen.
Kapitel 15: Die Zukunft der Pipelines und die nächsten Schritte gibt einen Ausblick auf Technologien, die einen Einfluss auf zukünftige Pipelines für maschinelles Lernen haben werden, und darauf, wie wir in den kommenden Jahren über maschinelles Lernen denken werden.
Anhang A: Einführung in die Infrastruktur für maschinelles Lernen gibt eine kurze Einführung in Docker und Kubernetes.
Anhang B: Einrichten eines Kubernetes-Clusters in der Google Cloud enthält zusätzliches Material zur Einrichtung von Kubernetes in der Google Cloud.
Im Anhang C: Tipps zum Betrieb von Kubeflow-Pipelines findest du einige nützliche Tipps zum Betrieb deines Kubeflow-Pipelines-Setups, einschließlich einer Übersicht über die TFX-Befehlszeilenschnittstelle.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Zusätzliches Material (Code-Beispiele usw.) steht unter https://oreil.ly/bmlp-git zum Download bereit .
Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, schreibe bitte eine E-Mail an bookquestions@oreilly.com und buildingmlpipelines@gmail.com.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.
Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Building Machine Learning Pipelines von Hannes Hapke und Catherine Nelson (O'Reilly). Copyright 2020 Hannes Hapke und Catherine Nelson, 978-1-492-05319-4."
Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Die beiden Autoren möchten dir dafür danken, dass du dieses Buch in die Hand nimmst und ihm deine Aufmerksamkeit schenkst. Wenn du mit ihnen in Kontakt treten möchtest, kannst du sie über ihre Website www.buildingmlpipelines.com oder per E-Mail an buildingmlpipelines@gmail.com erreichen . Sie wünschen dir viel Erfolg beim Aufbau deiner eigenen Pipelines für maschinelles Lernen!
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/build-ml-pipelines aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Danksagungen
Wir haben während der Arbeit an diesem Buch so viel Unterstützung von vielen wunderbaren Menschen erhalten. Vielen Dank an alle, die uns geholfen haben, dieses Buch zu verwirklichen! Ein besonders großes Dankeschön möchten wir den folgenden Personen aussprechen.
Die Zusammenarbeit mit allen bei O'Reilly war während des gesamten Lebenszyklus dieses Buches fantastisch. Unseren Redakteurinnen Melissa Potter, Nicole Taché und Amelia Blevins danke ich für ihre großartige Unterstützung, ihre ständige Ermutigung und ihr durchdachtes Feedback. Vielen Dank auch an Katie Tozer und Jonathan Hassell für ihre Unterstützung auf diesem Weg.
Vielen Dank an Aurélien Géron, Robert Crowe, Margaret Maynard-Reid, Sergii Khomenko und Vikram Tiwari, die das gesamte Buch durchgesehen und viele hilfreiche Vorschläge und aufschlussreiche Kommentare abgegeben haben. Eure Rezensionen haben den endgültigen Entwurf zu einem besseren Buch gemacht. Vielen Dank für die vielen Stunden, in denen ihr das Buch so detailliert durchgesehen habt.
Vielen Dank an Yann Dupis, Jason Mancuso und Morten Dahl für die gründliche und ausführliche Überprüfung des Kapitels über den Datenschutz beim maschinellen Lernen.
Wir haben fantastische Unterstützung von vielen wunderbaren Menschen bei Google erhalten. Danke, dass ihr uns geholfen habt, Fehler zu finden und zu beheben, und danke, dass ihr diese Tools als Open-Source-Pakete zur Verfügung gestellt habt! Neben den genannten Google-Mitarbeitern gilt unser besonderer Dank Amy Unruh, Anusha Ramesh, Christina Greer, Clemens Mewald, David Zats, Edd Wilder-James, Irene Giannoumis, Jarek Wilkiewicz, Jiayi Zhao, Jiri Simsa, Konstantinos Katsiapis, Lak Lakshmanan, Mike Dreves, Paige Bailey, Pedram Pejman, Sara Robinson, Soonson Kwon, Thea Lamkin, Tris Warkentin, Varshaa Naganathan, Zhitao Li, und Zohar Yahav.
Unser Dank geht an die TensorFlow- und Google Developer Expert-Community und ihre großartigen Mitglieder. Wir sind der Gemeinschaft zu großem Dank verpflichtet. Danke, dass ihr dieses Vorhaben unterstützt.
Vielen Dank an die anderen Mitwirkenden, die in den verschiedenen Phasen geholfen haben: Barbara Fusinska, Hamel Husain, Michał Jastrzębski und Ian Hensel.
Ich danke den Mitarbeitern von Concur Labs (früher und heute) und anderen Mitarbeitern von SAP Concur für großartige Diskussionen und hilfreiche Ideen. Ganz besonders danke ich John Dietz und Richard Puckett für ihre großartige Unterstützung des Buches.
- Hannes
-
Ich möchte mich bei meiner wunderbaren Partnerin Whitney für ihre großartige Unterstützung während des Schreibens dieses Buches bedanken. Ich danke dir für deine ständige Ermutigung und dein Feedback und dafür, dass du es erträgst, dass ich viele Stunden mit dem Schreiben verbringe. Danke an meine Familie, vor allem an meine Eltern, die es mir ermöglichen, meine Träume in der ganzen Welt zu verfolgen.
Dieses Buch wäre ohne tolle Freunde nicht möglich gewesen. Danke, Cole Howard, dass du ein wunderbarer Freund und Lehrer bist. Unsere Zusammenarbeit damals gab den Anstoß für diese Veröffentlichung und mein Denken über Pipelines für maschinelles Lernen. Meinen Freunden Timo Metzger und Amanda Wright danke ich dafür, dass sie mir die Macht der Sprache gezeigt haben. Und vielen Dank an Eva und Kilian Rambach sowie Deb und David Hackleman. Ohne eure Hilfe hätte ich es nicht bis nach Oregon geschafft.
Ich möchte mich bei meinen früheren Arbeitgebern wie Cambia Health, Caravel und Talentpair dafür bedanken, dass ich die Konzepte dieser Publikation in der Produktion umsetzen durfte, auch wenn sie neu waren.
Diese Veröffentlichung wäre ohne meine Koautorin Catherine nicht möglich gewesen. Ich danke dir für deine Freundschaft, deine Ermutigung und deine unendliche Geduld. Ich bin froh, dass wir uns durch den Zufall des Lebens kennengelernt haben. Ich bin sehr froh, dass wir diese Publikation gemeinsam fertiggestellt haben.
- Catherine
-
Ich habe in diesem Buch schon viele Worte geschrieben, aber es gibt keine Worte, die ausdrücken können, wie sehr ich die Unterstützung meines Mannes Mike zu schätzen weiß. Danke für all deine Ermutigung, das Kochen, die hilfreichen Diskussionen, den Sarkasmus und das aufschlussreiche Feedback. Danke an meine Eltern, die vor so langer Zeit den Samen des Programmierens gepflanzt haben - es hat eine Weile gedauert, bis er gewachsen ist, aber ihr hattet die ganze Zeit recht!
Vielen Dank an all die wunderbaren Gemeinschaften, in denen ich das Glück hatte, ein Teil davon zu sein. Ich habe durch die Seattle PyLadies, Women in Data Science und die Python-Community im Allgemeinen so viele tolle Menschen kennengelernt. Ich weiß eure Ermutigung wirklich zu schätzen.
Und vielen Dank an Hannes, dass er mich auf diese Reise eingeladen hat! Ohne dich wäre das alles nicht möglich gewesen! Dein fundiertes Wissen, deine Liebe zum Detail und deine Beharrlichkeit haben das ganze Projekt zu einem Erfolg gemacht. Und es hat auch eine Menge Spaß gemacht!
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.