Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Seit dem ersten Kurs über maschinelles Lernen, den ich 2017 in Stanford gehalten habe, haben mich viele Leute um Rat gefragt, wie sie ML-Modelle in ihren Unternehmen einsetzen können. Diese Fragen können allgemeiner Natur sein, wie zum Beispiel: "Welches Modell soll ich verwenden?" "Wie oft sollte ich mein Modell neu trainieren?" "Wie kann ich Verschiebungen in der Datenverteilung erkennen?" "Wie stelle ich sicher, dass die beim Training verwendeten Merkmale mit den Merkmalen übereinstimmen, die bei der Inferenz verwendet werden?

Diese Fragen können auch spezifisch sein, z. B. "Ich bin überzeugt, dass der Wechsel von Batch-Vorhersage zu Online-Vorhersage die Leistung unseres Modells steigern wird, aber wie überzeuge ich meinen Vorgesetzten davon?" oder "Ich bin der ranghöchste Datenwissenschaftler in meinem Unternehmen und wurde kürzlich damit beauftragt, unsere erste Plattform für maschinelles Lernen einzurichten; wo soll ich anfangen?"

Meine kurze Antwort auf all diese Fragen lautet immer: "Es kommt darauf an." Meine langen Antworten beinhalten oft stundenlange Diskussionen, um zu verstehen, woher die Fragestellerin oder der Fragesteller kommt, was sie oder er eigentlich erreichen will und welche Vor- und Nachteile die verschiedenen Ansätze für ihren oder seinen speziellen Anwendungsfall haben.

ML-Systeme sind sowohl komplex als auch einzigartig. Sie sind komplex, weil sie aus vielen verschiedenen Komponenten bestehen (ML-Algorithmen, Daten, Geschäftslogik, Bewertungsmetriken, zugrundeliegende Infrastruktur usw.) und viele verschiedene Interessengruppen einbeziehen (Datenwissenschaftler, ML-Ingenieure, Unternehmensleiter, Nutzer und sogar die Gesellschaft im Allgemeinen). ML-Systeme sind einzigartig, weil sie datenabhängig sind und die Daten von Anwendungsfall zu Anwendungsfall stark variieren.

Zwei Unternehmen können zum Beispiel im selben Bereich (E-Commerce) tätig sein und dasselbe Problem haben, das sie mit ML lösen wollen (Empfehlungssystem), aber die daraus resultierenden ML-Systeme können eine unterschiedliche Modellarchitektur haben, unterschiedliche Merkmalsgruppen verwenden, nach unterschiedlichen Metriken bewertet werden und unterschiedliche Renditen bringen.

Viele Blogbeiträge und Tutorials zur ML-Produktion konzentrieren sich auf die Beantwortung einer bestimmten Frage. Dieser Fokus hilft zwar, das Thema zu vermitteln, kann aber auch den Eindruck erwecken, dass man jede dieser Fragen isoliert betrachten kann. In Wirklichkeit wirken sich Änderungen an einer Komponente wahrscheinlich auch auf andere Komponenten aus. Deshalb ist es notwendig, das System als Ganzes zu betrachten, wenn man versucht, eine Entscheidung zu treffen.

Dieses Buch verfolgt einen ganzheitlichen Ansatz für ML-Systeme. Es berücksichtigt die verschiedenen Komponenten des Systems und die Ziele der verschiedenen beteiligten Akteure. Der Inhalt dieses Buches wird anhand konkreter Fallstudien veranschaulicht, an denen ich persönlich gearbeitet habe, und wird durch zahlreiche Referenzen unterstützt. Abschnitte, die ein tiefgreifendes Wissen über ein bestimmtes Thema erfordern - z. B. Batch-Verarbeitung versus Stream-Verarbeitung, Infrastruktur für Speicherung und Rechenleistung und verantwortungsvolle KI - werden von Experten, deren Arbeit sich auf dieses Thema konzentriert, weiter geprüft. Mit anderen Worten: Dieses Buch ist ein Versuch, differenzierte Antworten auf die oben genannten Fragen und mehr zu geben.

Als ich die Vorlesungsskripte schrieb, die die Grundlage für dieses Buch bildeten, dachte ich, ich schreibe sie für meine Studierenden, um sie auf die Anforderungen ihrer zukünftigen Jobs als Data Scientists und ML Engineers vorzubereiten. Ich merkte jedoch bald, dass ich dabei auch enorm viel gelernt habe. Die ersten Entwürfe, die ich mit den ersten Lesern teilte, lösten viele Gespräche aus, die meine Annahmen überprüften, mich zwangen, andere Perspektiven zu berücksichtigen, und mich mit neuen Problemen und neuen Ansätzen bekannt machten.

Ich hoffe, dass dieser Lernprozess für mich weitergeht, jetzt, wo das Buch in euren Händen liegt, da ihr Erfahrungen und Perspektiven habt, die einzigartig für euch sind. Bitte teile mir dein Feedback zu diesem Buch über den von mir betriebenen MLOps Discord-Server (wo du auch andere Leser/innen dieses Buches findest), Twitter, LinkedIn oder andere Kanäle auf meiner Website mit.

Für wen dieses Buch ist

Dieses Buch richtet sich an alle, die ML nutzen wollen, um reale Probleme zu lösen. ML bezieht sich in diesem Buch sowohl auf Deep Learning als auch auf klassische Algorithmen, wobei der Schwerpunkt auf ML-Systemen im großen Maßstab liegt, wie sie in mittleren bis großen Unternehmen und schnell wachsenden Start-ups zu finden sind. Kleinere Systeme sind in der Regel weniger komplex und profitieren weniger von dem umfassenden Ansatz, der in diesem Buch vorgestellt wird.

Da ich aus dem Ingenieurwesen komme, richtet sich die Sprache dieses Buches an Ingenieure, einschließlich ML-Ingenieure, Datenwissenschaftler, Dateningenieure, ML-Plattform-Ingenieure und technische Leiter. Vielleicht kannst du dich mit einem der folgenden Szenarien identifizieren:

  • Du hast ein Geschäftsproblem und eine Menge Rohdaten erhalten. Du willst diese Daten auswerten und die richtigen Kennzahlen auswählen, um das Problem zu lösen.

  • Deine ersten Modelle haben sich in Offline-Experimenten bewährt und du möchtest sie einsetzen.

  • Du hast nur wenig Rückmeldung darüber, wie deine Modelle funktionieren, nachdem sie eingesetzt wurden, und du möchtest einen Weg finden, um Probleme, die in der Produktion auftreten könnten, schnell zu erkennen, zu beheben und zu beheben.

  • Der Prozess der Entwicklung, Bewertung, Bereitstellung und Aktualisierung von Modellen für dein Team war bisher meist manuell, langsam und fehleranfällig. Du möchtest diesen Prozess automatisieren und verbessern.

  • Jeder ML-Anwendungsfall in deinem Unternehmen wurde mit einem eigenen Workflow umgesetzt, und du möchtest eine Grundlage schaffen (z. B. Modellspeicher, Funktionsspeicher, Überwachungs-Tools), die von allen Anwendungsfällen gemeinsam genutzt und wiederverwendet werden kann.

  • Du bist besorgt, dass es in deinen ML-Systemen Verzerrungen geben könnte, und du willst deine Systeme verantwortlich machen!

Du kannst auch von dem Buch profitieren, wenn du zu einer der folgenden Gruppen gehörst:

  • Tool-Entwickler, die unterversorgte Bereiche in der ML-Produktion identifizieren und herausfinden wollen, wie sie ihre Tools im Ökosystem positionieren können.

  • Personen, die nach ML-bezogenen Aufgaben in der Branche suchen.

  • Technische und kaufmännische Führungskräfte, die den Einsatz von ML-Lösungen zur Verbesserung ihrer Produkte und/oder Geschäftsprozesse in Erwägung ziehen. Leser, die keinen ausgeprägten technischen Hintergrund haben, können am meisten von den Kapiteln 1, 2 und 11 profitieren.

Was dieses Buch nicht ist

Dieses Buch ist keine Einführung in ML. Es gibt viele Bücher, Kurse und Ressourcen für ML-Theorien. Deshalb hält sich dieses Buch von diesen Konzepten fern und konzentriert sich auf die praktischen Aspekte von ML. Das Buch setzt voraus, dass die Leser/innen ein grundlegendes Verständnis der folgenden Themen haben:

  • ML-Modelle wie Clustering, logistische Regression, Entscheidungsbäume, kollaboratives Filtern und verschiedene neuronale Netzwerkarchitekturen wie Feed-Forward, rekurrent, convolutional und Transformer

  • ML-Techniken wie überwachte und unüberwachte, Gradientenabstieg, Ziel-/Verlustfunktion, Regularisierung, Generalisierung und Hyperparameterabstimmung

  • Metriken wie Genauigkeit, F1, Präzision, Wiedererkennung, ROC, mittlerer quadratischer Fehler und Log-Likelihood

  • Statistische Konzepte wie Varianz, Wahrscheinlichkeit und Normal-/Langschwanzverteilung

  • Allgemeine ML-Aufgaben wie Sprachmodellierung, Anomalieerkennung, Objektklassifizierung und maschinelle Übersetzung

Du musst diese Themen nicht in- und auswendig kennen - für Begriffe, deren genaue Definitionen man sich mühsam merken muss, wie z. B. die F1-Note, haben wir kurze Hinweise als Referenzen beigefügt - aber du solltest schon ein grobes Gefühl dafür haben, was sie bedeuten.

In diesem Buch werden zwar aktuelle Tools erwähnt, um bestimmte Konzepte und Lösungen zu veranschaulichen, aber es ist kein Lehrbuch. Technologien entwickeln sich mit der Zeit weiter. Tools kommen und gehen schnell, aber grundlegende Problemlösungsansätze sollten etwas länger Bestand haben. Dieses Buch bietet dir einen Rahmen, in dem du das für deine Anwendungsfälle am besten geeignete Werkzeug auswählen kannst. Wenn es ein Werkzeug gibt, das du benutzen willst, ist es normalerweise einfach, online Anleitungen dafür zu finden. Daher enthält dieses Buch nur wenige Codeschnipsel und konzentriert sich stattdessen auf die Diskussion von Kompromissen, Vor- und Nachteilen und konkrete Beispiele.

GitHub Repository und Gemeinschaft

Dieses Buch wird von einem GitHub-Repository begleitet, das Folgendes enthält:

  • Ein Überblick über grundlegende ML-Konzepte

  • Eine Liste der in diesem Buch verwendeten Referenzen und anderer fortgeschrittener, aktualisierter Ressourcen

  • In diesem Buch verwendete Codeschnipsel

  • Eine Liste von Tools, die du für bestimmte Probleme nutzen kannst, auf die du in deinen Arbeitsabläufen stoßen könntest

Ich betreibe auch einen Discord-Server auf MLOps, auf dem du über das Buch diskutieren und Fragen dazu stellen kannst.

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.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Wie bereits erwähnt, steht zusätzliches Material (Codebeispiele, Übungen usw.) unter https://oreil.ly/designing-machine-learning-systems-code zum Download bereit .

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

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 freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Designing Machine Learning Systems von Chip Huyen (O'Reilly). Copyright 2022 Huyen Thi Khanh Nguyen, 978-1-098-10796-3."

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 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 https://oreilly.com.

Wie du uns kontaktierst

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/designing-machine-learning-systems aufrufen .

Schreib eine E-Mail an , um Kommentare oder technische Fragen zu diesem Buch zu stellen.

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Finde uns auf LinkedIn: https://linkedin.com/company/oreilly-media

Folge uns auf Twitter: https://twitter.com/oreillymedia

Schau uns auf YouTube: https://youtube.com/oreillymedia

Danksagungen

Es hat zwei Jahre gedauert, dieses Buch zu schreiben, und viele weitere Jahre, um es vorzubereiten. Wenn ich zurückblicke, bin ich gleichermaßen erstaunt und dankbar für die enorme Hilfe, die ich beim Schreiben dieses Buches erhalten habe. Ich habe mein Bestes getan, um die Namen aller, die mir geholfen haben, hier aufzuführen, aber aufgrund der Unzulänglichkeiten des menschlichen Gedächtnisses habe ich zweifellos viele vergessen zu erwähnen. Wenn ich vergessen habe, deinen Namen zu erwähnen, dann bitte ich dich, mich daran zu erinnern, damit ich das so schnell wie möglich nachholen kann!

Zuallererst möchte ich mich bei den Kursleitern bedanken, die mir bei der Entwicklung des Kurses und der Materialien, auf denen dieses Buch basiert, geholfen haben: Michael Cooper, Xi Yin, Chloe He, Kinbert Chou, Megan Leszczynski, Karan Goel und Michele Catasta. Ich möchte mich bei meinen Professoren Christopher Ré und Mehran Sahami bedanken, ohne die es den Kurs gar nicht erst geben würde.

Ich möchte mich bei einer langen Liste von Rezensenten bedanken, die mich nicht nur ermutigt, sondern das Buch auch um viele Größenordnungen verbessert haben: Eugene Yan, Josh Wills, Han-chung Lee, Thomas Dietterich, Irene Tematelewo, Goku Mohandas, Jacopo Tagliabue, Andrey Kurenkov, Zach Nussbaum, Jay Chia, Laurens Geffert, Brian Spiering, Erin Ledell, Rosanne Liu, Chin Ling, Shreya Shankar, und Sara Hooker.

Ich möchte mich bei allen Lesern bedanken, die die Vorabversion des Buches gelesen und mir Anregungen gegeben haben, wie ich das Buch verbessern kann, darunter Charles Frye, Xintong Yu, Jordan Zhang, Jonathon Belotti und Cynthia Yu.

Natürlich wäre das Buch ohne das Team bei O'Reilly nicht möglich gewesen, insbesondere ohne meine Entwicklungsredakteurin Jill Leonard und meine Produktionsredakteure Kristen Brown, Sharon Tripp und Gregory Hyman. Ich möchte Laurence Moroney, Hannes Hapke und Rebecca Novack danken, die mir geholfen haben, dieses Buch von einer Idee zu einem Vorschlag zu machen.

Dieses Buch ist schließlich eine Sammlung unschätzbarer Lektionen, die ich im Laufe meiner bisherigen Karriere gelernt habe. Diese Lektionen verdanke ich meinen äußerst kompetenten und geduldigen Mitarbeitern und ehemaligen Mitarbeitern bei Claypot AI, Primer AI, Netflix, NVIDIA und Snorkel AI. Jede Person, mit der ich zusammengearbeitet habe, hat mir etwas Neues darüber beigebracht, wie man ML in die Welt bringt.

Ein besonderer Dank geht an meinen Mitgründer Zhenzhong Xu, der die Feuer in unserem Startup löscht und mir ermöglicht, Zeit für dieses Buch zu haben. Danke, Luke, dass du mich immer bei allem unterstützt, was ich tun will, egal wie ehrgeizig es ist.

Get Maschinelle Lernsysteme entwerfen 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.