{"id":3685,"date":"2022-05-31T10:07:44","date_gmt":"2022-05-31T08:07:44","guid":{"rendered":"https:\/\/devstage.bix-consulting.com\/?p=3685"},"modified":"2023-05-24T09:42:53","modified_gmt":"2023-05-24T07:42:53","slug":"machine-learning-with-databricks-on-azure","status":"publish","type":"post","link":"https:\/\/www.bix-consulting.com\/en\/machine-learning-with-databricks-on-azure\/","title":{"rendered":"Machine Learning with Databricks on Azure"},"content":{"rendered":"\n\n[et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<h4><span style=\"color: #ff9900;\"><strong>Einf\u00fchrung<\/strong><\/span><\/h4>[\/et_pb_text][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Machine Learning ist \u00e4u\u00dferst wichtig, wenn es darum geht, den vollen Nutzen aus Daten zu ziehen. Fortgeschrittene Machine Learning Algorithmen k\u00f6nnen daf\u00fcr verwendet werden, eine gro\u00dfe Vielfalt von Informationen aus Daten unterschiedlichster Quellen zu extrahieren. Allerdings ist der Prozess der Datenerfassung, -umwandlung und des Trainings von Modellen sehr aufwendig und langwierig. Dementsprechend ist es ein vollst\u00e4ndiger Machine-Learning-Lebenszyklus ein beeindruckendes Konstrukt, insbesondere dann, wenn daf\u00fcr eine einzige Plattform verwendet werden kann, die jeden Schritt dieses Lebenszyklus auf einmal abbilden kann. Bei dieser Plattform handelt es sich um Databricks.<\/p>\n<p>Databricks ist eine Cloud-Umgebung in der Data Engineers (Dateningenieure), Data Scientists (Datenwissenschaftler) und Data Analysts (Datenanalysten) gemeinsam arbeiten k\u00f6nnen. Sie kann mit verschiedenen Cloud-Anbietern, wie Azure oder AWS verwendet werden. Die Data Engineers arbeiten haupts\u00e4chlich mit Spark, die Data Scientists mit MLFlow und Python und die Data Analysts mir SQL. Somit erschlie\u00dft sich, dass die Mittel vorhanden sind, um ganze Lebenszyklen von Datenanalysen in Databricks abzubilden, allerdings kann es hierbei zu einer Schwierigkeit kommen. Die Rechenleistung wird in Databricks von sogenannten Clustern zur Verf\u00fcgung gestellt. Diese Cluster ben\u00f6tigen etwa drei bis f\u00fcnf Minuten, um zu starten und k\u00f6nnen bei einem dauerhaften Betrieb (24\/7 hochgefahren) recht teuer werden. Das ist in den meisten Anwendungsf\u00e4llen, in denen Daten in Sch\u00fcben verarbeitet und ausgewertet werden, kein Problem. Allerdings k\u00f6nnen immer erreichbare Services auf diese Weise nur \u00e4u\u00dferst ineffizient zur Verf\u00fcgung gestellt werden.<\/p>\n<p>In diesem Blog-Beitrag wird ein Experiment dargestellt, in dem ein Machine-Learning-Projekt durchgef\u00fchrt wird, das Databricks zur Durchf\u00fchrung und azureml zur Bereitstellung verwendet. Das Ziel des Projekts ist es, auf Basis von Daten eines Team-gegen-Team-Videospiels vorherzusagen, welches von zwei Teams in Runden dieses Videospiels gewinnen wird. In dem gew\u00e4hlten Videospiel spielen zwei Teams, bestehend aus je f\u00fcnf Spielern, gegeneinander. Das Ziel ist es, die Basis des Gegners zu eliminieren, indem vorher eine Reihe andererZiele zerst\u00f6rt werden. Dabei verbessern sich die Charaktere der Spieler im Laufe des Spiels und k\u00e4mpfen auch mit den Charakteren der Gegner. F\u00fcr die Vorhersage dar\u00fcber, welches Team eine Runde gewinnen wird, sollen nur die Daten der ersten zehn Minuten verwendet werden. Offensichtliche Ma\u00dfe daf\u00fcr, wie gut ein Team gerade steht, sind beispielsweise die St\u00e4rke der individuellen Charaktere zu bestimmten Zeitpunkten oder wie viele gegnerische Ziele bereits ausgeschaltet wurden.<\/p>\n<p>Das ausgew\u00e4hlte Fallbeispiel mag eventuell ungew\u00f6hnlich im Kontext der sonst von biX behandelten Themen erscheinen, allerdings werden die Themen von Fallbeispielen meist frei von den Zust\u00e4ndigen ausgew\u00e4hlt. In diesem Fall wurde ein Videospiel f\u00fcr das Experiment aus Gr\u00fcnden des generellen Interesses, Verf\u00fcgbarkeit der Daten und Komplexit\u00e4t des Fallbeispiels ausgew\u00e4hlt.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<h4><span style=\"color: #ff9900;\"><strong>Datenextraktion und -transformation<br \/><\/strong><\/span><\/h4>[\/et_pb_text][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Die Daten f\u00fcr das Experiment werden aus einer API extrahiert. Die Extraktion ist in einem Databricks Notebook gecodet. Dabei wird ma\u00dfgeblich die requests Bibliothek von Python verwendet. Nach der Extraktion werden die Daten, bei denen es direkt m\u00f6glich ist, in Spark Dataframes umgewandelt, die restlichen Daten werden mithilfe der pandas.json_normalize Funktion und anderen manuelleren Wegen der Umwandelung in Tabellenform abgeflacht. Dieser Schritt ist n\u00f6tig, da die Daten im JSON-Format extrahiert werden. Wenn alle Daten als Dataframe vorliegen, werden sie als Delta Table im Azure Blob Storage persistiert (df.write.format(\u2018delta\u2019).write(&lt;file path&gt;)). Das ausgew\u00e4hlte Format der Delta Tables hat hierbei den Vorteil, dass sie wie Tabellen aus relationalen Datenbanken verwendet werden k\u00f6nnen (inklusive Data-Warehouse-Funktionen, wie Change Data Capturing) und das, obwohl sie in einem Cloud Blob Storage liegen.<\/p>\n<p>Nat\u00fcrlich werden die Daten ausf\u00fchrlich untersucht, bevor irgendwelche Aggregationen durchgef\u00fchrt werden: Welche Spannen decken die Werte verschiedener Spalten ab? Welche Datentypen haben die Spalten? Korrelieren die Spalten miteinander? Welche Spalten werden ben\u00f6tigt und welche sind obsolet? Diese Fragen k\u00f6nnen alle beantwortet werden, indem die Daten in ein Databricks Notebook importiert werden und dort eine investigative Datenanalyse mit Spark, herk\u00f6mmlichen Python oder SQL initiiert wird. Hierf\u00fcr ist die einfache aber auch sehr n\u00fctzliche display() Funktion ein passendes Mittel zur Visualisierung.<\/p>\n<p>Im Machine Learning k\u00f6nnen selten die frisch extrahierten Daten direkt verwendet werden. Meistens m\u00fcssen sie zun\u00e4chst analysiert, aggregiert und vorbereitet werden. In dem pr\u00e4sentierten Fallbeispiel wird ma\u00dfgeblich Folgendes unternommen: Viele Spalten werden mit Aggregationen auf ein Maximum kombiniert und anderen Spalten wird wiederum ein Gewicht (ein Faktor) hinzugef\u00fcgt, um ihren Einfluss auf das sp\u00e4ter trainierte Modell zu erh\u00f6hen. Ein konkretes Beispiel zu den Gewichten: Die Werte der Spielercharaktere sind in den ersten Minuten weniger ausschlaggebend f\u00fcr den sp\u00e4teren Verlauf des Spiels als die Werte, die zum Beispiel bei der zehn-Minuten-Marke bestehen. Demensprechend werden Werte gr\u00f6\u00dfer gewichtet, je sp\u00e4ter sie erfasst werden. Alle angewandten Aggregationen sind unkompliziert mit der Spark Dataframe API umzusetzen.\u00a0<\/p>\n<p>Am Ende der Vorverarbeitung m\u00fcssen die Daten gut zug\u00e4nglich als Delta Table abgelegt werden. Zus\u00e4tzlich werden die transformierten Daten allerdings auch in Databricks im Feature Store hinterlegt. Das hat Vorteile, da zum Beispiel aus Notebooks heraus auf hinterlegte Daten im Feature Store zugegriffen werden kann, womit Trainingsdatens\u00e4tze f\u00fcr das Training eines Modells gebildet werden k\u00f6nnen. Die Daten im Feature Store enthalten eine versionierte Version des Codes, mit dem sie hergeleitet wurden, was eine R\u00fcckverfolgbarkeit f\u00fcr sp\u00e4tere Zeitpunkte garantiert. Au\u00dferdem m\u00fcssen mit dem Feature Store keine aufwendigen Code-Abschnitte f\u00fcr den Import von Daten geschrieben werden, da diese einfach zug\u00e4nglich und fertig verarbeitet vorliegen.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<h4><span style=\"color: #ff9900;\"><strong>Machine Learning<br \/><\/strong><\/span><\/h4>[\/et_pb_text][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Um mit dem Machine Learning anzufangen, wird zun\u00e4chst die Beladung der transformierten Daten in ein neues Notebook vorgenommen. Wie bereits beschrieben, wird der Feature Store f\u00fcr diesen Schritt verwendet, damit die Beladung einfach replizierbar ist. Hierf\u00fcr wird zun\u00e4chst eine Instanz des feature_store erstellt. Danach wird mlflow autolog aktiviert, um die Parameter und Trainingsmetriken des sp\u00e4ter verwendeten Algorithmus zu erfassen. Daraufhin wird das mlflow Experiment gestartet, was bedeutet, dass die gesamte nachstehende Logik f\u00fcr das Machine Learning in der Experimente-Sektion von Databricks einsehbar und wiederverwendbar ist.<\/p>\n<p>Innerhalb des Experiment-Verlaufs werden die definierte Beladung aus dem Feature Store ausgef\u00fchrt, die frisch geladen Daten in Trainings- und Testdaten aufgeteilt, die Parameter f\u00fcr den Algorithmus festgelegt, das Modell trainiert und die Zuverl\u00e4ssigkeit des Modells ermittelt: Die Beladung aus dem Feature Store erfolgt \u00fcber den create_training_set() Befehl. Danach wird die sklearn Funktion train_test_split() verwendet, um die Daten in einen Trainings- und Testanteil zu unterteilen. Die Parameter f\u00fcr den Algorithmus werden als n\u00e4chstes definiert, in verschiedenen Durchl\u00e4ufen werden diese stetig ver\u00e4ndert, um eine optimale Performance zu erreichen. Gl\u00fccklicherweise werden s\u00e4mtliche Parameter von mlflow erfasst, wodurch die Nachverfolgung der bestfunktionierenden Parameter sp\u00e4ter kein Problem mehr darstellt. Mit nur einer Zeile wird das Machine Learning Modell initialisiert und trainiert. Nat\u00fcrlich wird dieser Schritt in verschiedenen Durchl\u00e4ufen abge\u00e4ndert, da Parameter und Art des Algorithmus angepasst werden. In diesem Fall werden Decision Trees, Random Forests und Support Vector Machines getestet. Am Ende des Experiments wird das neu trainierte Modell getestet. Die Testergebnisse werden erfasst und mit dem Befehl mlflow.log_metrics() gespeichert.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/Bild1.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Der Screenshot zeigt die Metriken der Testl\u00e4ufe f\u00fcr den Random Forest, Decision Tree und Support Vector Machine in genannter Reihenfolge.<\/p>\n<p>Obwohl viele Experimente durchgef\u00fchrt werden, ist es dennoch sehr einfach, das beste Modell darunter auszuw\u00e4hlen, da in MLFlow Experimente nach unterschiedlichen Kriterien gefiltert und sortiert werden k\u00f6nnen. So kann in diesem Fall f\u00fcr die drei Arten der verwendeten Algorithmen zeitnah der jeweils beste Vertreter ausgesucht werden. Unter den drei Algorithmen hat der Random Forest am besten abgeschnitten (alle drei Arten liegen jedoch nahe beieinander), jedoch eignet sich der Decision Tree beispielsweise dennoch sehr gut daf\u00fcr, zu visualisieren, wie wichtig unterschiedliche Kriterien in dem Datensatz f\u00fcr die Algorithmen sind. So zeigen genannte Visualisierungen, dass das Gold, welches durch das Ausschalten von feindlichen Charakteren und Zielen erhalten wird, ein sehr bedeutender Faktor ist. Je mehr Gold, desto besser. Auch der physische Schaden, der an Feinde verteilt wird, ist von gro\u00dfer Bedeutung. Das l\u00e4sst sich daran ablesen, dass beide Faktoren vom Entscheidungsbaum am ehesten daf\u00fcr verwendet werden, um Spiele in Sieg oder Niederlage einzuordnen. Dies klingt zun\u00e4chst offensichtlich, wenn manmit solchen Spielen vertraut ist. Dies ist es jedoch nicht, wenn man bedenkt, dass es pro Spiel tausende Faktoren zu beachten gibt. Der Einfluss, oder zumindest die Korrelation der genannten Faktoren mit dem Sieg eines Teams, ist im Folgenden zu sehen:<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8220;1_2,1_2&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;1_2&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning2.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8220;1_2&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelerning3.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Die Wahrscheinlichkeit zu gewinnen steigt signifikantmit der H\u00f6he der gezeigten Werte. Wie beschrieben, gibt es pro Partie eine gro\u00dfe Zahl an spielbeeinflussenden Faktoren. Daher ist es umso \u00fcberraschender, \u00a0eine so deutliche Korrelation zwischen bestimmten Werten und der Siegeschance zu sehen.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<h4><span style=\"color: #ff9900;\"><strong>Modellbereitstellung<\/strong><\/span><\/h4>[\/et_pb_text][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Um das gerade erstellte Modell zug\u00e4nglich zu machen, muss es ansprechbar gemacht werden. Nat\u00fcrlich w\u00e4re eine Methode, das Modell auf einem Databricks Cluster zur Verf\u00fcgung zu stellen. Hierbei ergeben sich allerdings zwei Probleme: ein Databricks Cluster rund um die Uhr laufen zu lassen ist extrem teuer. Hinzu k\u00e4me, dasswenn das Cluster flexibel starten soll, statt dauerhaft zu laufen, es etwa drei bis f\u00fcnf Minuten ben\u00f6tigen w\u00fcrde. Diese Faktoren machen eine Bereitstellung \u00fcber Databricks sehr ineffizient.<\/p>\n<p>Um die genannten Probleme zu umgehen, wird das Modell stattdessen \u00fcber azureml zu Verf\u00fcgung gestellt. azureml ist ein Service, der \u00fcber Azure verf\u00fcgbar ist. \u00dcber diesen ist es m\u00f6glich, das Modell permanent \u00fcber einen Service bereitzustellen, ohne daf\u00fcr viel zu bezahlen. Der Code zum Starten des Service kann allerdings problemlos in Databricks geschrieben werden. Als erstes werden alle notwendigen azureml Funktionen importiert:<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning4.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Im Anschluss wird der Workspace definiert, indem der Service laufen soll. Bei diesem werden Informationen mitgetragen, wie beispielsweise die Form des Azure Abonnements, in dem der Service laufen soll:<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning5.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p style=\"text-align: justify;\">Daraufhin wird das Machine Learning Modell in azureml registriert:<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning6.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Anschlie\u00dfend folgt ein sehr interessanter Part: Code-Teile f\u00fcr die Initialisierung und den Aufruf des Service k\u00f6nnen definiert werden. In diesen Code-Teilen kann beispielsweise angegeben werden, auf welche Weise die Eingangsdaten verarbeitet werden, bevor sie vom Modell zur Vorhersage benutzt werden. Durch diesen benutzerdefinierten Code wird der Service sehr flexibel, da er extrem anpassbar ist:<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning7.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Folglich m\u00fcssen die Bedingungen zum Starten des Service erf\u00fcllt werden. Die Umgebung, in der der Service l\u00e4uft, wird definiert (welche Pakete und Funktionen werden ben\u00f6tigt):<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning8.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p style=\"text-align: justify;\">Die Konfiguration f\u00fcr die Vorhersage \u00fcber das Modell wird angegeben (Pfad zum Code, frisch definierte Code-Teile und Workspace):<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning9.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p style=\"text-align: justify;\">Die Konfiguration des Webservice wird erstellt (Anzahl der zu verwendenden CPU-Kerne, RAM):<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning10.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p style=\"text-align: justify;\">Zuletzt wird der Webservice erstellt (Name, Konfiguration, Informationen zum Modell):<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2022\/05\/machinelearning11.png&#8220; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.17.3&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p>Wenn alle Anforderungen definiert sind und der Webservice ausgef\u00fchrt wird, kann ein API-Schl\u00fcssel generiert werden, um auf den Service zuzugreifen. Dann k\u00f6nnen neue, zu analysierende Daten, an den Service geschickt werden , sodass eine Antwort ausgegeben wird, welches Team siegen wird.<\/p>\n<p>Zusammengefasst bietet Databricks viele komfortable Features f\u00fcr das Machine Learning. Mit dem Feature Strore und mlflow k\u00f6nnen Experimente versioniert, repliziert und kontrolliert eingesetzt werden. Die Bereitstellung kann problemlos aus Databricks heraus mit azureml durchgef\u00fchrt werden. Hierbei sorgt der flexible Code f\u00fcr reichlich Freiraum bei der Implementierung. Dazu kommt, dass Machine Learning, Data Engineering und Data Analysis gemeinsam in Databricks durchgef\u00fchrt werden k\u00f6nnen, wodurch es Teams erm\u00f6glicht wird, schnittstellenfrei miteinander zu arbeiten.<\/p>\n<p>Jetzt bleiben endlich weder die Siege unserer Lieblingsteams, noch die Effizienz unserer Machine Learning Services dem Zufall \u00fcberlassen.<\/p>\n<p>Sollten Sie Fragen zum Machine Learning oder Databricks-Funktionen, wie dem Feature Store, haben, k\u00f6nnen Sie sich jederzeit gerne bei uns melden. Wir freuen uns auf Sie.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font=&#8220;Roboto|300|||||||&#8220; text_font_size=&#8220;30px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<p style=\"text-align: center;\"><span style=\"color: #000000;\">Ansprechpartner<\/span><\/p>[\/et_pb_text][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2020\/08\/Oliver-Ossenbrink-e1598705178874.png&#8220; align=&#8220;center&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; transform_translate=&#8220;-4px|22px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font=&#8220;Roboto|300|||||||&#8220; text_font_size=&#8220;16px&#8220; transform_translate=&#8220;-3px|30px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<div class=\"elementor-element elementor-element-d95ca40 elementor-widget elementor-widget-heading\" data-id=\"d95ca40\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<h3 class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\">Oliver Ossenbrink<\/h3>\n<\/div>\n<\/div>\n<div class=\"elementor-element elementor-element-c4afb6c elementor-widget elementor-widget-heading\" data-id=\"c4afb6c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<p class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\">Gesch\u00e4ftsf\u00fchrung Vertrieb und HR<\/p>\n<\/div>\n<\/div>[\/et_pb_text][et_pb_social_media_follow _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; transform_scale_linked=&#8220;off&#8220; transform_translate=&#8220;0px|35px&#8220; transform_translate_linked=&#8220;off&#8220; text_orientation=&#8220;center&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_social_media_follow_network url=&#8220;mailto:oliver.ossenbrink@bix-consulting.de?cc=vertrieb@bix-consulting.de&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; background_image=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2020\/08\/E-Mail.png&#8220; background_enable_image=&#8220;on&#8220; background_size=&#8220;contain&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;][\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n\n","protected":false},"excerpt":{"rendered":"<p>The many comfortable features of Databricks for Machine Learning are described in this blog. Further, the blog describes how it enables teams to work together interface-free.<\/p>","protected":false},"author":6,"featured_media":3686,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","_lmt_disableupdate":"","_lmt_disable":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"iawp_total_views":10,"footnotes":""},"categories":[18],"tags":[154,231,39,26,34,225,235,234,232,227,226,233,229,228,230],"class_list":["post-3685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-ai","tag-azure","tag-big-data","tag-bix","tag-data","tag-databricks","tag-databricks-machine-learning","tag-databricks-ml","tag-databricks-on-azure","tag-machine","tag-machine-learning","tag-machine-learning-azure","tag-ml","tag-ml-flow","tag-mlflow"],"modified_by":"admin","_links":{"self":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts\/3685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/comments?post=3685"}],"version-history":[{"count":0,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts\/3685\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/media\/3686"}],"wp:attachment":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/media?parent=3685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/categories?post=3685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/tags?post=3685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}