main Image

Metadatenmanagement

   Data

Gruppe C

Gruppe C

12/30/2021

Informationen über jede Ausführung der ML-Pipeline werden aufgezeichnet, um die Herkunft der Daten und Artefakte, die Reproduzierbarkeit und Versionierung zu erleichtern. Außerdem helfen Metadaten bei der Suche nach Fehlern und Anomalien (vgl. Google Cloud, o.D.).

Metadaten werden in diesem Fall generell in der Datenbank unter der jeweiligen User-ID gespeichert. Entweder 'On-The-Fly' während der Ausführung oder man sammelt die Daten während des Prozesses beispielweise in einer JSON-Datei, um diese nach Beendigung der Ausführung dann in die Datenbank zu speichern.

Benötigte Metadaten

Bei jeder Ausführung der Pipeline werden folgende Metadaten gespeichert:

  • Pipeline- und Komponentenversionen, die ausgeführt wurden, dazu zählen die Programmbibliotheken und deren Versionen sowie die verwendete Python-Version.

  • Start- und Enddatum, die Uhrzeit sowie die Dauer, die die Pipeline für die Ausführung der einzelnen Schritte benötigt hat.

  • Der Ausführer der Pipeline, in unserem Fall der Admin (MLOps-User).

  • Die Speicherorte, an denen die einzelnen Schritten der Pipeline erzeugt bzw. ausgeführt wurden. Somit kann die Pipeline ab einem bestimmten Schritt fortgesetzt werden, falls es zu einem Fehler kommt.

  • Vorherige, trainierte Modelle, falls man zu einer anderen Modellversion zurückkehren muss oder Bewertungsmetriken für eine frühere Modellversion erstellt werden müssen.

  • Bewertungsmetriken werden während der Bewertung der Modelle für Trainings- und Testdaten erstellt. Mit diesen Daten kann die Leistung der Modelle verglichen werden. Die Erfolgsmessung kann in diesem Projekt, durch beispielsweise abgeschlossene Konzertkartenkäufe oder Messungen wie häufig der User unsere userspezifisch erstellte Playlist aufgerufen hat, erfasst werden.

  • Berechtigungen, mit denen beispielsweise verschiedene Nutzerrollen oder Zugriffsberechtigungen verteilt werden können.

  • Die Quellen der verwendeten Daten, die sich in diesem Fall aus der Spotify- und der Ticketmaster-Query zusammensetzen.

Priorisierung der Metadaten

Nach dem Bestimmen, der für dieses Projekt benötigten Metadaten, wurde eine Tabelle erstellt, in der die einzelnen Metadaten nach Wichtigkeit priorisiert und nach einzelnen Pipeline-Abschnitten kategorisiert wurden.

Metadaten-Tabelle

Priorisierung und Kategorisierung der Metadaten

Metadaten in unserem Deltalake

Eine der angepriesenen Funktionalitäten des Deltalakes ist die Konfiguration und Einsicht von den Metadaten der Tabellen, sowie ein eingebettetes Versionierungssystem. Diese Komponenten zielen darauf ab, Überblick über die Daten und die Datenpipeline zu gewährleisten sowie Tabellen reproduzierbar zu machen.

Mit jeder Aufsetzung und Änderung der Tabelle können Commit-Messages mitgegeben werden. Wir nutzen Commit-Messages unter anderem, um die durch Airflow-Orchestrierung automatisch bearbeiteten Tabellen von den händisch angepassten Tabellen zu unterscheiden. Zu unseren Metadaten gehören neben den standardmäßg erfassten Deltalake-Informationen noch einige personalisierte Metadaten:

  • Ein Verweis auf unser yaml-env-File

  • Die verwendete Python-Version

  • Die Phase die der Tabelle zugeordnet ist (Bronze, Silver, Gold, Platinum)

  • Der Elternknoten dieser Tabelle

  • Komponenten zu Datenaugmentierung

  • Name & Typ der Pipeline

  • Der Speicherort des DAGs

  • Im Falle eines API Aufrufs, wird die Query abgespeichert

  • Eine kurze Beschreibung des DAGs

Die Metadaten, die in jeder Tabelle enthalten sind, werden anschließend separat auf einer dedizierten Metadatentabelle abgespeichert, die eine Übersicht aller Metadaten beinhaltet.

Metadaten in TFX

TFX speichert seine Metadaten in einem metadata.db-File, welcher beispielsweise von SQLite aufgerufen werden kann. Darin sind Informationen zu den Artefakten der TFX-Komponenten hinterlegt.

Die Metadaten können entweder serverless über SQLite oder alternativ über eine Server-Verbindung mit anderen DBMS, wie MySQL eingelesen werden.

Quellen:

MLOps: Continuous delivery and automation pipelines in machine learning. (o. D.). Google Cloud. Abgerufen am 15. November 2021, von https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning