Ob Datenwissenschaftler oder ML-Ingenieur: Das Erlernen des Systemdesigns für maschinelles Lernen ist eine der wichtigsten Fähigkeiten, die Sie kennen müssen. Es ist die Brücke zwischen der Erstellung von Modellen und der Bereitstellung von Lösungen, die tatsächliche Geschäftsergebnisse vorantreiben.
Die Fähigkeit, ML-Ideen in Produktionssysteme umzusetzen, die Geld sparen, den Umsatz steigern und messbaren Wert schaffen, bestimmt Ihr langfristiges Karrierewachstum und Ihr Gehalt.
Ich habe Systeme für maschinelles Lernen entwickelt, mit denen Unternehmen über 1,5 Millionen US-Greenback professional Jahr einsparen können, und genau diese Fähigkeiten haben mir dabei geholfen, Stellenangebote im Wert von über 100.000 US-Greenback zu erhalten.
In diesem Leitfaden werde ich meine Meinung zum ML-Systemdesign aufschlüsseln, damit Sie dasselbe tun können.
Allgemeiner Rahmen
Nachfolgend finden Sie meinen Rahmen für den Entwurf eines maschinellen Lernsystems:
Notiz: Dies ist der häufigste Designtyp für ein angewandtes maschinelles Lernsystem in einem etablierten Technologieunternehmen. Es gibt andere, differenziertere Fälle, wie das Infrastrukturdesign und das Design von KI/ML-Forschungsexperimenten.

Wenn Sie eine PDF-Kopie dieser Vorlage wünschen, können Sie über diesen Hyperlink darauf zugreifen:
https://framework.egorhowell.com
Lassen Sie uns diese Schritte etwas detaillierter aufschlüsseln.
Geschäftsproblem
Das Ziel dieses Schrittes ist:
- Ziele klären –Was ist das Geschäfts- oder Benutzerproblem, das Sie lösen möchten, und wie können Sie es in eine Lösung für maschinelles Lernen übersetzen?
- Kennzahlen definieren –Auf welche Kennzahlen zielen wir ab: Genauigkeit, F1-Rating, ROC-AUC, Präzision/Erinnerung, RMSE usw. und wie sich dies auf die Geschäftsleistung auswirkt.
- Einschränkungen und Umfang– Wie viele Rechenressourcen stehen zur Verfügung, wollen wir Stay-Time-Vorhersagen oder Batch-Inferenz, brauchen wir überhaupt maschinelles Lernen?
- Design auf hohem Niveau— Wie wird die grobe Architektur von den Daten bis zur Schlussfolgerung aussehen?
Daten
Hier geht es um das Sammeln und Erfassen von Daten:
- Datenquellen identifizieren –Datenbanken, APIs, Protokolle oder benutzergenerierte Daten.
- Zielvariable identifizieren— Was ist die Zielvariable und wie erhalten wir sie?
- Qualitätskontrolle— In welchem Zustand befinden sich die Daten? Gibt es rechtliche Probleme bei der Verwendung der Daten?
Function-Engineering
Erstellen Sie aus den Daten neuartige Funktionen, um das spezifische Downside anzugehen:
- Wichtigkeit der Funktion— Verstehen, welche Funktionen die Zielvariable wahrscheinlich beeinflussen.
- Datenbereinigung –Behandeln Sie fehlende Werte, Ausreißer und inkonsistente Einträge.
- Function-Darstellung— One-Sizzling-Kodierung, Zielkodierung, Einbettungen und Skalierung der Daten.
- Sampling und Splits— Berücksichtigen Sie unausgeglichene Datensätze und Datenlecks und sorgen Sie für eine korrekte Aufteilung in Trainings- und Testdatensätze.
Modelldesign und -auswahl
Hier stellen Sie Ihr theoretisches Wissen über Machine-Studying-Modelle unter Beweis:
- Benchmark— Beginnen Sie mit einem einfachen „dummen“ Modell oder einer Heuristik und bauen Sie dann langsam die Komplexität auf.
- Ausbildung— Kreuzvalidierung, Hyperparameter-Tuning, frühes Stoppen.
- Kompromisse– Berücksichtigen Sie Kompromisse wie Trainingsgeschwindigkeit, Inferenzgeschwindigkeit, Latenz und Interpretierbarkeit.
Service und Bereitstellung
Verstehen, wie das Modell am besten in der Produktion bereitgestellt und bereitgestellt werden kann.
- Infrastruktur –Wählen Sie Cloud/On-Prem, richten Sie CI/CD-Pipelines ein und stellen Sie Skalierbarkeit sicher.
- Service– API-Endpunkt, Edge-Modell, Batch-Vorhersagen vs. On-line-Vorhersagen.
Auswertung & Überwachung
Der letzte Teil besteht darin, Systeme und Frameworks einzurichten, um Ihr Modell in der Produktionsumgebung zu verfolgen.
- Metriken– Welche Kennzahlen sollten mit dem „On-line“-Modell im Vergleich zum „Offline“-Modell verfolgt werden?
- Überwachung— Richten Sie ein Dashboard, ein Überwachungsnotizbuch und Slack-Benachrichtigungen ein.
- Experiment— Entwerfen Sie ein A/B-Experiment.
Was kann man lernen?
Lassen Sie mich Ihnen ein Geheimnis verraten: Bei der Entwicklung von Systemen für maschinelles Lernen geht es nicht um ein Vorstellungsgespräch oder den Aufbau von Fertigkeiten für Einsteiger.
Dies liegt daran, dass das Design maschineller Lernsysteme auf mittlerer und höherer Ebene getestet wird.
Zu diesem Zeitpunkt verfügen Sie über fundierte Kenntnisse in den Bereichen maschinelles Lernen und Software program-Engineering und werden wahrscheinlich eine Spezialisierung entwickeln.
Wenn Sie jedoch eine umfassende, aber keineswegs erschöpfende Liste wünschen, ist dies das, was Sie lernen müssen.
Theorie des maschinellen Lernens
- Überwachtes Lernen –Klassifizierung (logistische Regression, Assist-Vektor-Maschinen, Entscheidungsbäume), Regression (lineare Regression, Entscheidungsbäume. Gradientenverstärkte Bäume).
- Unüberwachtes Lernen –Clustering (k-means, DBSCAN), Dimensionsreduktion, latente semantische Analyse.
- Tiefes Lernen –Neuronale Netze, Faltungs-Neuronale Netze und wiederkehrende Neuronale Netze.
- Verlustfunktionen –Genauigkeit, F1-Rating, NDCG, Präzision/Rückruf, RMSE usw.
- Funktionsauswahl –So identifizieren Sie wesentliche Merkmale wie Korrelationsanalyse, Eliminierung rekursiver Merkmale, Regularisierung, Kreuzvalidierung und Hyperparameter-Tuning.
- Statistiken —Bayesianische Statistik, Hypothesentests und A/B-Exams.
- Fachgebiete— Zeitreihen, Pc Imaginative and prescient, Operations Analysis, Empfehlungssysteme. Verarbeitung natürlicher Sprache usw. Benötigt nur 1–2.
Systemdesign und -technik
- Wolke– Das wichtigste ist AWS, und das sollten Sie wissen S3, EC2, Lambda-FunktionenUnd ECS. Die meisten Dinge sind ohnehin lediglich Hüllen für Speicher und Rechenleistung.
- Containerisierung—Docker Und Kubernetes.
- Systemdesign— Caching, Vernetzung, Quantisierung, APIs und Speicherung.
- Versionskontrolle—CircleCI, Jenkins, Fool, MLflow, Datenhund, Gewichte und Vorurteile.
- Bereitstellungs- und Orchestrierungs-Frameworks—Argo, Metaflow, Datensteine, Luftstrom Und Kubeflow.
Ressourcen
Interviews zum ML-Systemdesign
Ich habe vor, zu einem späteren Zeitpunkt ein ausführlicheres Video zum Vorstellungsgesprächsprozess für das Systemdesign für maschinelles Lernen zu veröffentlichen. Zunächst möchte ich Ihnen jedoch einen allgemeinen Überblick und einige Tipps geben, die Ihnen bei der Vorbereitung helfen.
Interviews zum Design von Systemen für maschinelles Lernen richten sich in der Regel an Ingenieure für maschinelles Lernen auf mittlerer und höherer Ebene. In diesen Vorstellungsgesprächen werden Sie normalerweise mit einem umfassenden, offenen Downside konfrontiert, beispielsweise mit der Entwicklung eines Empfehlungssystems oder eines Spamfilters.
Wenn Ihre Rolle eine bestimmte Spezialisierung umfasst, wie zum Beispiel Pc Imaginative and prescient, wird sich die Frage im Vorstellungsgespräch oft auf diesen speziellen Bereich konzentrieren.
Eine der größten Herausforderungen bei Interviews zum Design maschineller Lernsysteme ist der Mangel an Standardisierung. Im Gegensatz zu Software program-Engineering-Interviews, die einem relativ einheitlichen Format folgen, unterscheiden sich ML-Design-Interviews stark in der Struktur. Es gibt auch viel zu besprechen: unzählige Konzepte, Kompromisse und mögliche Lösungswege.
Allerdings tendieren die meisten Personalmanager dazu, Kandidaten anhand einiger Schlüsselkriterien zu bewerten:
- Problemübersetzung –Können Sie ein Geschäftsproblem als Lösung für maschinelles Lernen formulieren?
- Entscheidungsfindung –Erkennen Sie Kompromisse und begründen Sie Ihre Designentscheidungen logisch?
- Breite und Tiefe –Zeigen Sie ein solides Verständnis der ML-Theorie, einer Vielzahl von Modellen und wie Sie diese effektiv in realen Szenarien anwenden können?
So bereiten Sie sich auf Vorstellungsgespräche vor
Was die Vorbereitungen angeht, gibt es eine wichtige Sache, die ich empfehlen kann.
Arbeiten Sie vergangene Probleme durch.
Hier sind einige Ressourcen, um solche Probleme zu finden:
Ich empfehle außerdem, sich die Blogbeiträge großer Technologieunternehmen anzusehen, um mehr darüber zu erfahren, wie Algorithmen für maschinelles Lernen in großem Maßstab eingesetzt werden:
Zuvor habe ich besprochen, wie Systemdesign-Interviews mehr als nur Ihre Modellierungsfähigkeiten testen.
Aber was sind die zugrunde liegenden Grundlagen, auf die sie wirklich testen?
Genau das beschreibe ich in einem meiner vorherigen Artikel, der Sie durch alles führt, was Sie wissen müssen, zusammen mit den besten Ressourcen.
Die ultimative AI/ML-Roadmap für Anfänger
Eine andere Sache!
Ich biete 1:1-Teaching-Gespräche an, bei denen wir uns über alles unterhalten können, was Sie brauchen – ob es sich um Projekte, Karriereberatung oder einfach nur darum, Ihren nächsten Schritt herauszufinden. Ich bin hier, um Ihnen zu helfen, voranzukommen!
1:1 Mentoring-Gespräch mit Egor Howell
Berufsberatung, Arbeitsberatung, Projekthilfe, Überprüfung des Lebenslaufstopmate.io
