MLOps in Microsoft Azure | ML-Vorgänge auf Microsoft Azure

Inhalt

Dieser Artikel wurde im Rahmen der Data Science Blogathon

Lernworkflows. Maschinelles Lernen ist heutzutage ein großes Schlagwort. Jeder scheint heutzutage in die ML springen zu wollen. Viele Startups und Startups setzen Machine-Learning-Projekte auf vielfältige Weise um. Aber nur ein Teil dieser Produkte kann auf Dauer funktionieren und gewartet werden.

Was ist DevOps??

Die Software muss richtig erstellt und ausgeführt werden. Dann, Wie ist der komplette Lebenszyklus eines Softwareprodukts?

Gut, DevOps macht den gesamten Softwarebetriebsprozess nahtlos. Es besteht aus einer Reihe von Praktiken und Prozessen, die zusammenarbeiten, um den gesamten Softwareentwicklungsprozess zu automatisieren und zu integrieren.

43170devops-3746085

Bildquelle

DevOps vereinheitlicht den Softwareentwicklungsprozess (Dev) und Softwarebedienung (Ops). DevOps macht Automatisierung einfach, die Überwachung und den reibungslosen Ablauf der Kreation, die Entwicklung, die Integration, Tests, die Umsetzung, der Start, Wartung, Skalierung, die Wartung und das Management der Software-Infrastruktur.

Einige wichtige DevOps-Ziele sind kurze Entwicklungszyklen, flüssig und schnell, schnelle Umsetzung, stabile Releases und Geschäftsziele richtig verfolgen. DevOps-Befürworter und Fachleute nutzen die Kunst der Endlosschleife (hoch) um den DevOps-Zyklus darzustellen und zu zeigen, wie sich die einzelnen Prozesse aufeinander beziehen. Dies zeigt auch, dass Softwareentwicklung und -betrieb eine ständige Rolle spielen.. Sie benötigen ständige Zusammenarbeit und Verbesserung während des gesamten Zyklus.

Die richtige DevOps-Implementierung ermöglicht es Unternehmen, mehr zu tun. Kontinuierliche Integration (DORT) und kontinuierliche Lieferung (CD) helfen Organisationen, eine effizientere Entwicklung und eine höhere Häufigkeit der Bereitstellung zu sehen. Reparaturzeiten werden verkürzt, Cybersicherheitsmängel können leicht erkannt werden und erleichtern das Experimentieren und Testen.

Deswegen, Wir können sagen, dass DevOps den gesamten Software-Engineering-Prozess einfacher zu implementieren und zu warten macht.

MLOps: DevOps für maschinelles Lernen

MLOps übernimmt viele der DevOps-Prinzipien, um den gesamten ML-Zyklus effizienter und einfacher zu gestalten.. Das Hauptziel von MLOps besteht darin, automatisierte ML-Pipelines zu erstellen und Zeiten und andere Metriken zu verfolgen. Pipelines werden während des gesamten AA-Projektlebenszyklus für mehrere Iterationen verwendet.

35182mlops-1563661

Bildquelle

MLOps besteht aus:

  1. Design
  2. Entwicklungsmodell
  3. Betrieb

Die Designphase besteht aus Requirements Engineering, Priorisierung von ML-Anwendungsfällen, Datenverfügbarkeitsprüfung und andere Schritte.

Modellentwicklung umfasst Machine Learning Engineering, Modellieren, Data Engineering und Modelltests und -validierung.

Operations befasst sich mit der Implementierung von Modellen, CI-Pipelines / CD- und Modellüberwachung und -wartung.

Sehen wir uns nun an, wie das allgemeine MLOps-Szenario für Azure MLOps aussieht.

Microsoft Azure MLOps

Azure MLOps verfolgt die Ziele von:

  • Schnellere Modellentwicklung und -experimente
  • Schnellere Bereitstellung von Modellen in der Produktion
  • Qualitätskontrolle und Abstammungsverfolgung von Anfang bis Ende

Las herramientas MLOps ayudan a realizar un seguimiento de los cambios en la Datenquelle o las canalizaciones de datos, der Code, SDK-Modelle, etc. Der Lebenszyklus wird durch Automatisierung einfacher und effizienter, wiederholbare Workflows und Assets, die immer wieder verwendet werden können.

Azure Machine Learning-Dienste ermöglichen es uns, reproduzierbare Machine Learning-Pipelines zu erstellen. Softwareumgebungen für Modelltraining und -bereitstellung sind ebenfalls wiederverwendbar. Diese Pipelines ermöglichen es uns, Modelle zu aktualisieren, Testen Sie neue Modelle und implementieren Sie kontinuierlich neue AA-Modelle.

Der typische AA-Prozess

Der typische Prozess des maschinellen Lernens besteht aus:

1. Datensammlung

2. Trainingsmodell

3. Modell einpacken

4. Validieren Sie das Modell

5. Modell bereitstellen

6. Monitormodell

7. Trainieren Sie das Modell neu

Aber in vielen Fällen, der Prozess muss verfeinert werden. Neue Daten sind verfügbar und der Code wurde geändert. Mehrere Prozesse laufen, jede davon beinhaltet eine große Menge an Daten.

Wie gewöhnlich, Viele der Daten sind desorganisiert. Rohdaten müssen auch aufbereitet werden.

Wie können MLOps helfen?

MLOps besteht aus mehreren Elementen. Einige bemerkenswerte Elemente sind die Automatisierung der Bereitstellung, Überwachung, Rahmentest, Datenversionskontrolle, etc. MLOps versucht, DevOps-Konzepte zu übernehmen und den gesamten maschinellen Lernprozess zu verbessern.

Die gesamte Azure Machine Learning-Architektur sieht so aus:

74542mlops-integriertes-Muster-1309921

Bildquelle

MLOps soll einen koordinierten Prozess durchführen, der den Fluss des gesamten Prozesses erleichtern und auch CI-Umgebungen unterstützen kann / Großformatige CD.

MLOps können bei der Automatisierung helfen, Erleichterung von Code-Implementierungen. Die Validierung wird auch durch die besten Qualitätskontrollverfahren von SWE erleichtert. En el caso del Ausbildung von Modellen, wenn wir denken, dass unser Modell eine Umschulung braucht, wir können jederzeit zurückgehen und das Modell umschulen.

Azure Machine Learning verfügt über viele domänenspezifische vortrainierte Modelle, wie man:

Sicht, spricht, Sprache, Suche, etc.

Wenn wir darüber reden, Was genau sind Azure ML Services?, ist eine Suite von Azure Cloud Services zusammen mit einem Python Software Development Kit / R, das erlaubt uns, Daten aufzubereiten, Modelle bauen, Modelle verwalten, Zugmodelle, Experimente verfolgen und Modelle implementieren.

Es sind viele Elemente beteiligt, lass uns einige von ihnen sehen.

Datensätze: die Daten aufzeichnen

Experimente: Trainingsrennen

Rohrleitungen: Schulungsworkflow

Modelle: Registrierte Modelle

Endpunkte: bereitgestellte Modelle und Endpunkte für Trainingsworkflows

Berechnung: Managed Computing

Umgebungen: Definierte Umgebungen der Bildung und Schlussfolgerung.

Azure-Dienste sind so aufgebaut, dass sie DevOps-konform sind und alles ordnungsgemäß funktioniert.

Die Verwaltung des Lebenszyklus des maschinellen Lernens mit MLOps ist ein Kinderspiel. Modelle müssen überwacht und umgeschult werden. MLOps-Prozesse ermöglichen echte Geschäftsergebnisse und, Daher, ermöglichen eine schnellere Markteinführung und Implementierung für ML-basierte Lösungen. Sie verbessern auch die Zusammenarbeit und Abstimmung zwischen Teams.

Azure MLOps

Azure Machine Learning bietet die folgenden MLOps-Features.

Spielbare ML-Pipelines erstellen

Wir können wiederverwendbare und wiederholbare Rohre definieren. Alle Schritte, die Datensammlung und Modellauswertung umfassen, können wiederverwendet werden.

Wiederverwendbare Softwareumgebungen

Die Softwareabhängigkeiten unserer Projekte können bei Bedarf nachverfolgt und reproduziert werden.

Registrieren, Modelle von überall aus packen und bereitstellen

Die Modellregistrierung macht die oben genannten Schritte sehr einfach zu implementieren. Modelle haben Namen und Version.

Erfassen Sie Governance-Daten für einen durchgängigen Lebenszyklus des maschinellen Lernens

Azure ML kann in Git integriert werden, um unseren Code zu verfolgen. Wir können prüfen, von welcher Filiale / Repository stammt aus unserem Code. Wir können auch verfolgen, Profil und Version unserer Daten.

Warnungen und Benachrichtigungen für Ereignisse im AA-Lebenszyklus

Azure ML listet Meilensteine ​​in Azure EventGrid auf, die für verschiedene Zwecke verwendet werden können.

Überwachung von Betriebsproblemen

Wir können die an unser Modell gesendeten Daten und die zurückgegebenen Vorhersagen verstehen. Damit wir verstehen können, wie das Modell funktioniert.

Automatisieren Sie den AA-Lebenszyklus

Azure Pipelines und Github können verwendet werden, um eine kontinuierliche, autonome Integration zu erstellen, die ein Modell trainiert. Die meisten AA-Lebenszyklusschritte können automatisiert werden.

Dann, als allgemeiner Gedanke, Wir können verstehen, dass MLOps ein Konzept ist, bei dem wir verschiedene Ressourcen verwenden, um die gesamte ML-Reise reibungslos und effizient zu gestalten.

Dann, über einen hypothetischen MLOps-Workflow nachdenken, erste, das Data-Science-Team und das Anwendungsentwicklungsteam würden zusammenarbeiten, um die Anwendung zu erstellen und auch das Modell zu trainieren. Später, die Anwendung wird getestet. parallel, das Modell wird validiert. Später, das Modell wird implementiert und die Anwendung wird gestartet.

Die Anwendung und das Modell werden überwacht. Aus dem allgemeinen Prozess der Verwaltung von Modellen und Anwendungen, Wir können Leistungsanalysen durchführen. Je nach Bedarf, wir können das Modell auch umtrainieren.

Veamos un proyecto de ML de muestra en Azure DevOps.

53703Probe1-1910462

Die verschiedenen Punkte, die wir besprochen hatten, sind hier sichtbar.

16891Probe2-9055568

Bei der Eingabe von Repos, Wir können den Code und andere Dateien überprüfen.

Zu den Rohren, Sehen wir uns an, wie eine Pipeline erfolgreich ausgeführt wurde.

37058Probe3-6569374

Wir sehen, dass alle Jobs korrekt ausgeführt wurden.

Für das AA-Projekt eines bestimmten Beispiels, Wir können die Anforderungen sehen.

76125Probe4-3444962

Wir können die Anforderungen umsetzen.

pip install azure-cli==2.0.69
pip install --upgrade azureml-sdk[kl]
pip install -r anforderungen.txt

Code zum Trainieren des Modells:

Beginnen Sie mit dem Importieren der notwendigen Dinge.

Essiggurke importieren
aus azureml.core import Workspace
aus azureml.core.run importieren Ausführen
Importieren von OS
aus sklearn.datasets import load_diabetes
von sklearn.linear_model import Ridge
aus sklearn.metrics import mean_squared_error
aus sklearn.model_selection import train_test_split
von sklearn.externals importiere Joblib
numpy als np importieren
json importieren
Unterprozess importieren
von der Eingabe von Import Tuple, Aufführen
# run_history_name="devops-ai"
# the.makedirs('./outputs', exist_ok=Wahr)
# #ws.get_details()
# Beginnen Sie mit der Aufzeichnung der Ergebnisse in AML
# run = Run.start_logging(Arbeitsbereich = ws, history_name = run_history_name)
run = Run.get_submitted_run()

Abrufen der Daten.

x, y = load_diabetes(return_X_y=Wahr)
Spalten = ["Alter", "Geschlecht", "bmi", "bp", "s1", "s2", "s3", "s4", "s5", "s6"]
X_Zug, X_test, y_train, y_test = train_test_split(x, Ja, test_size=0.2, random_state=0)
Daten = {"Bahn": {"x": X_Zug, "Ja": y_train}, "Prüfung": {"x": X_test, "Ja": y_test}}

Dann, Ausbildung.

# Zufälliges Bild Alpha
alphas = np.arange(0.0, 1.0, 0.05)
alpha = alphas[np.zufällige.Auswahl(alphas.shape[0], 1, Ersetzen=Falsch)][0]
drucken(Alpha)
run.log("Alpha", Alpha)
reg = Ridge(alpha = alpha)
reg.fit(Daten["Bahn"]["x"], Daten["Bahn"]["Ja"])
preds = reg.vorhersagen(Daten["Prüfung"]["x"])
run.log("mse", mittlere quadratische Fehler(Preds, Daten["Prüfung"]["Ja"]))
# Modell als Teil des Laufverlaufs speichern
model_name = "sklearn_regression_model.pkl"
# model_name = "."
mit offen(Modellname, "wb") als Datei:
    joblib.dump(Wert=reg, Dateiname=Modellname)
# Laden Sie die Modelldatei explizit in Artefakte hoch
run.upload_file(name="./Ausgänge/" + Modellname, path_or_stream=model_name)
drucken("Habe das Modell hochgeladen {} experimentieren {}".Format(Modellname, run.experiment.name))
dirpath = os.getcwd()
drucken(dirpath)
# registriere das Modell
# run.log_model(file_name = model_name)
# drucken('Registrierte das Modell {} Geschichte laufen lassen {}'.format(Modellname, run.history.name))
drucken("Folgende Dateien werden hochgeladen ")
drucken(run.get_file_names())
run.complete()

Es gibt viele wesentliche Unterschiede in der Art und Weise, wie wir hier arbeiten.

Mir, ein Student sein, Ich hatte nicht gerade einen Business Case oder die finanziellen Ressourcen, um an einem vollständigen ML-Projekt in Azure DevOps zu arbeiten. Die obige Arbeit wird als Referenz verwendet.

Besuchen Sie dieses Repo als Referenz: DevOpsForAI

Fazit

MLOps können viele Probleme im Zusammenhang mit dem Lebenszyklus des maschinellen Lernens lösen. Deswegen, viele der allgemeinen Herausforderungen sind auch gelöst.

MLOps ist ein sehr überzeugendes Angebot für Unternehmen, ihre ML-Modelle auszuführen. MLOps macht die Arbeit zwischen Teams super einfach und unkompliziert.

Dies sind einige der Referenzen, die ich verwendet habe, um Wissen für diesen Artikel zu sammeln. Lesen Sie.

Verweise:

1.https://docs.microsoft.com/en-us/azure/machine-learning/concept-model-management-and-deployment#create-reproducible-ml-pipelines

2. https://docs.microsoft.com/en-us/learn/modules/start-ml-lifecycle-mlops/1-introduction

3. https://docs.microsoft.com/en-us/azure/architecture/example-scenario/mlops/mlops-technical-paper

4. https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/ai/mlops-python

Über mich:

Prateek Majumder

Datenwissenschaft und Analytik | Spezialist für digitales Marketing | SEO | Inhaltserstellung

Verbinde dich mit mir auf Linkedin.

Meine anderen Artikel zu DataPeaker: Verknüpfung.

Vielen Dank.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher