Über Verivox
Verivox ist eines der führenden Vergleichsportale in Deutschland. Seit 1998 macht das Unternehmen Märkte in den Bereichen Energie, Mobilfunk, Internet, Finanzen und Versicherungen transparent. Die Expertinnen und Experten von Verivox recherchieren und analysieren Daten zu Preis- und Marktentwicklungen und ermöglichen so einen umfassenden Tarifvergleich. Aus rund 30.000 Tarifen findet Verivox das beste Angebot und hilft so Haushalten, Zeit und Geld zu sparen. Mehr als 8 Millionen Menschen haben mit Hilfe von Verivox bereits über 2 Milliarden Euro gespart.
Die Herausforderung
Da die Algorithmen in der Vergangenheit in der Sprache R programmiert waren und auf On-Premises Servern liefen, hat sich das Data Science Team dazu entschlossen, ihren Tech-Stack zu modernisieren. Zum einen wird die Codebasis auf Python umgestellt (welches die führende Programmiersprache im Data Science ist) und zum anderen sollen die ML-Modelle zukünftig in AWS laufen.
Dieses Vorhaben sollte vom Data Science Team umgesetzt werden. Das Team hat bereits einigen Code in Python umgeschrieben und erste Erfahrungen mit einigen AWS-Tools sammeln können. Nach eingehender Recherche hat sich das Team schließlich auf eine Kombination aus Amazon SageMaker, AWS Lambda und AWS Cloud Development Kit (CDK) geeinigt und sich mit diesen Services bereits tiefer auseinandergesetzt.
Da diese Aufgabe neben Data Science viel Wissen im Bereich MLOps, Data Engineering und DevOps erfordert, entschied sich Verivox Unterstützung von PCG zu holen, um Best Practices und Industriestandards sicherzustellen.
Die Lösung
Die Zusammenarbeit von PCG und Verivox bestand daraus, gemeinsam ein zuvor ausgewähltes ML-Model nach Best Practices auf AWS in Produktion zu bringen. Dazu gehörten unter anderem getestete ETL-Pipelines sowie das Trainieren, Evaluieren, Deployen und Monitoren des ML-Models. Die Lösung sollte DevOps Best Practices folgen und sowohl CI/CD als auch Infrastructure as Code (IaC) beinhalten.
Der Code sollte einerseits als Grundgerüst für zukünftige maschinelle Lernmodelle fungieren und andererseits so gestaltet sein, dass das Projekt problemlos um weitere Modelle erweitert werden kann, ohne jedes von neuem zu beginnen.
Nach einer Analyse des Problems und des bereits existierenden Codes haben wir uns auf eine serverlose Architektur geeinigt, um möglichst viele Maintenance-Aufgaben von AWS-Services erledigen zu lassen. Es wurden mehrere kleine Teams gebildet, die anfangs unabhängig voneinander an verschiedenen Themen arbeiten konnten. Der PCG-Consultant sollte abwechselnd mit den verschiedenen Teams zusammenarbeiten, um ihnen ausreichend Zeit zu geben, eigenständig Fortschritte zu erzielen oder sich in die Problemstellungen einzuarbeiten. Zudem wurde neues Wissen in Code-Reviews, täglichen Meeting und Knowledge Sharing Session geteilt. Mit der Zeit wurde die Arbeit der Teams verzahnter und zum Ende hin sollte jedes Teammitglied das fertige Modell deployen können und ein grobes Verständnis über alle Komponenten der Lösung haben.
Resultate und Vorteile
Das ML-Modell berechnet die Wahrscheinlichkeit für Kunden einen Kredit von verschiedenen Banken zu erhalten. Das Produkt sollte ein ML-Model sein, welches per API angesprochen werden konnte und zurückgibt, wie hoch die Wahrscheinlichkeit für einen Kunden ist von der Bank angenommen zu werden.
Die Rohdaten für das Trainieren des Modells liegen in einem Snowflake Data Warehouse und sollen im Anschluss mit Amazon SageMaker vorverarbeitet werden. Mit den aufbereiteten Daten werden mehrere Modelle trainiert, evaluiert und das Beste schließlich deployed. Die Modelle müssen im Live-Betrieb kontinuierlich überwacht werden, sowohl technisch (kommen die Events richtig an? Wird die Vorhersage schnell genug berechnet?), als auch von der Güte des Modells. Sollte ein Modell später nicht die gewünschten Ergebnisse liefern, ist beispielsweise die Accuracy zu niedrig, so soll es auch die Möglichkeit geben, wieder auf ein vorheriges Modell zurückzugehen. Wegen der Reproduzierbarkeit und der Erklärbarkeit eines Models ist es notwendig, alle Datensätze und Encoder, die zu einem Modell gehören, zusammen mit dem Modell abzuspeichern. All diese Features, bis hin zum Deployment mehrerer Endpoints und deren Verwaltung, werden von SageMaker Pipeline unterstützt, welches einen von AWS speziell entwickelten CI/CD-Service für Machine Learning darstellt.
In der späteren Anwendung werden die User Events per Kong API an AWS Lambda Funktionen gesendet, welche die Events für das ML-Modell vorverarbeiten. Diese gelangen weiter an den SageMaker Endpoint und kommen dann mit der vom Modell berechneten Wahrscheinlichkeit zurück. Im letzten Schritt werden sie dann von der Lambda Funktion nachbearbeitet und wieder an Kong API weitergeleitet.
Um die Lösung einfach wartbar zu gestalten, wurden überwiegend serverlose Services benutzt, welche selbständig skalieren können und lediglich Kosten verursachen, wenn sie benutzt werden.
Ein weiterer Fokus bei diesem Projekt war eine vollständige Automatisierung. So wurde eine Jenkins CI/CD Pipeline entwickelt, die verschiedene Linter und Tests ausführt, sowie via dem IaC-Framework AWS CDK schließlich deployed. Deployments wurden von Bitbucket getriggert, wobei abhängig vom Branch die Infrastruktur in verschiedene Accounts ausgerollt wurde. Final wurden beim Mergen in den Master die Testumgebungen automatisch wieder aufgeräumt.
Summary
Verivox und PCG haben die Lösung so implementiert, dass sie einfach auf weitere ML-Modelle ausweitbar ist und viele Teile des Codes, wie die CI/CD Pipeline, ohne Änderungen auch zukünftige Produkte abdecken. Da das Team von Verivox an allen Stellen selbst programmiert hat, sind sie in der Lage, ihre restlichen ML-Modelle zu modernisieren und in AWS auszurollen.
Verivox hat es mit der Hilfe von PCG geschafft, in wenigen Wochen ein ML-Modell in Produktion zu setzen, das sowohl DevOps als auch MLOps Best Practices befolgt, skalierbar ist und dessen Performance überwacht werden kann.
Über PCG
Die Public Cloud Group (PCG) unterstützt Unternehmen bei ihrer digitalen Transformation durch den Einsatz von Public Cloud-Lösungen.
Mit einem Portfolio, das darauf ausgerichtet ist, Unternehmen aller Größe auf ihrer Cloud Journey zu begleiten, sowie der Kompetenz von zahlreichen zertifizierten Expert:innen, mit denen Kunden und Partner gerne zusammenarbeiten, positioniert sich PCG als verlässlicher und vertrauenswürdiger Partner der Hyperscaler.
Als erfahrener Partner der drei relevanten Hyperscaler (Amazon Web Services (AWS), Google Cloud und Microsoft Cloud) hält PCG die höchsten Auszeichnungen der jeweiligen Anbieter und berät Sie als unsere Kunden in Ihrer Cloud Journey unabhängig.