HBase
 sql >> Datenbank >  >> NoSQL >> HBase

Erstellen eines offenen Standards:Machine Learning Governance mit Apache Atlas

Maschinelles Lernen (ML) ist heute zu einer der wichtigsten Fähigkeiten für moderne Unternehmen geworden, um zu wachsen und wettbewerbsfähig zu bleiben. Von der Automatisierung interner Prozesse bis hin zur Optimierung der Design-, Erstellungs- und Marketingprozesse hinter praktisch jedem konsumierten Produkt haben ML-Modelle fast jeden Aspekt unserer Arbeit und unseres Privatlebens durchdrungen – und für Unternehmen war der Einsatz noch nie so hoch. Wenn ML nicht als Kernkompetenz eingeführt wird, entstehen erhebliche Wettbewerbsnachteile, die die nächsten Marktführer definieren werden.

Aus diesem Grund müssen Geschäfts- und Technologieführer ML-Modelle in ihrer gesamten Organisation implementieren und ein breites Spektrum an Anwendungsfällen abdecken. Dieses Gefühl der Dringlichkeit schafft jedoch in Verbindung mit der zunehmenden regulatorischen Kontrolle neue und einzigartige Governance-Herausforderungen, die derzeit schwer zu bewältigen sind. Zum Beispiel:Wie wirken sich meine Modelle auf die Dienstleistungen für Endkunden aus? Bin ich immer noch konform mit behördlichen und internen Vorschriften? Wie werden meine Sicherheitsregeln auf Modelle in der Produktion übertragen?

Abgesehen von regulatorischen oder rechtlichen Bedenken gibt es eine Reihe von Gründen für Governance-Prozesse und -Verfahren für maschinelles Lernen. Beispiele sind Möglichkeiten zur Steigerung der Produktivität (wie die Wiederverwendung von Assets wie Modellen und Funktionen), die Kontrolle und Wartung von Modellen über viele verschiedene Geschäftsbereiche hinweg, um sicherzustellen, dass geschäftskritische Anwendungen das tun, was sie tun sollen (oder diejenigen finden, die dies nicht tun). , und sehen Sie sich einen Verlauf von Modellen und Vorhersagen einschließlich veralteter Assets an.

Bei der Bewältigung dieser Herausforderungen lohnt es sich, zu definieren, was Modelle und Funktionen konzeptionell sind (siehe Abbildung 1). Es gibt viele verschiedene Definitionen, aber im Allgemeinen ist ein Modell ein in sich geschlossenes Paket, das aus Eingabedaten berechnete Funktionen verwendet und eine Vorhersage (oder Bewertung) und Metadaten erstellt. Dieses Paket kann viele Formen annehmen, enthält aber immer eine mathematische Darstellung, Code, Geschäftslogik und Trainingsdaten. Die Vorhersagen des Modells werden nachgelagert von Systemen oder Benutzern verarbeitet.

Viele Unternehmen betreiben ML-Modellinfrastrukturen in unterschiedlichen Größen und Reifegraden, sodass sie Tools benötigen, die ihnen bei der Steuerung ihrer Modelle helfen. Letztendlich können die Anforderungen an die ML-Governance in die folgenden Schlüsselbereiche destilliert werden:Sichtbarkeit; und Modellerklärbarkeit, Interpretierbarkeit und Reproduzierbarkeit.

Abbildung 1

Sichtbarkeit von Modellen und Funktionen innerhalb von Teams und über Organisationen hinweg

Eine Grundvoraussetzung für die Modell-Governance ist es, Teams zu ermöglichen, zu verstehen, wie maschinelles Lernen in ihren Organisationen angewendet wird. Dies erfordert einen kanonischen Katalog von Modellen und Funktionen. In Ermangelung eines solchen Katalogs sind sich viele Organisationen ihrer Modelle und Funktionen nicht bewusst, wo sie bereitgestellt werden, was sie tun usw. Dies führt zu Überarbeitung, Modellinkonsistenz, Neuberechnung von Funktionen und anderen Ineffizienzen.

Erklärbarkeit, Interpretierbarkeit und Reproduzierbarkeit des Modells

Modelle werden oft als Black Box betrachtet:Daten gehen rein, etwas passiert und eine Vorhersage kommt heraus. Diese Intransparenz stellt auf mehreren Ebenen eine Herausforderung dar und wird oft durch lose verwandte Begriffe dargestellt, wie z. B.:

  • Erklärbarkeit :Beschreibung der internen Mechanik eines ML-Modells in menschlicher Sprache
  • Interpretierbarkeit :die Fähigkeit, a) die Beziehung zwischen Modelleingaben, -funktionen und -ausgaben zu verstehen und b) die Reaktion auf Änderungen der Eingaben vorherzusagen.
  • Reproduzierbarkeit :die Fähigkeit, die Ausgabe eines Modells für die gleichen Eingaben konsistent zu reproduzieren.

All dies erfordert gemeinsame Funktionalität, einschließlich einer Verknüpfung mit Quelldaten, ein klares Verständnis der Interna der Modelle wie Code und Trainingsdaten und andere Methoden, um Modelle selbst zu untersuchen und zu analysieren.

Modell-Metadaten mit einem Beispiel

Um die oben definierten Governance-Probleme anzugehen, lassen Sie uns zunächst über ein Beispiel nachdenken. Betrachten Sie eine Website für Lebensmittellieferungen. Das Unternehmen möchte maschinelles Lernen nutzen, um die Lieferzeit abzuschätzen.

Der Trainingsdatensatz besteht aus den Ereignisprotokollen früherer Lieferungen, die die Lieferzeiten für jede in der Vergangenheit erfolgte Lieferung enthalten. Diese Daten werden verwendet, um ein Modell zu trainieren, um zukünftige Lieferzeiten abzuschätzen.

Ein Ereignisprotokoll könnte etwa so aussehen:

Eine Bestellung wurde um 10:00 Uhr aufgegeben, dass Essen von loc1 abgeholt und an loc2 geliefert werden sollte. Der Kurier holte es um 10:15 Uhr im Restaurant ab und lieferte es um 10:55 Uhr, was von der Bestellung bis zur Lieferung insgesamt 55 Minuten dauerte

Angenommen, loc1 und loc2 sind Straßenadressen. Dies wird hier abgekürzt, um es kurz und leicht lesbar zu halten.

Die Ereignisprotokolle werden in HBase gespeichert. Die technische Architektur für die Modellentwicklung sieht wie folgt aus:

  1. Datentechniker identifizieren das Zeitfenster der Ereignisprotokolle, das zur Lösung des Problems verwendet werden soll. Eine neue strukturierte Hive-Tabelle wird erstellt, indem die rohen Ereignisprotokolle mit dem identifizierten Zeitfenster analysiert werden.
  2. Feature Engineers (dies könnte eine Rolle innerhalb von Data Scientists oder ML-Ingenieuren sein) identifizieren und entwickeln neue Features:
    • Rush-Hour-Funktion:Eine Funktion zum Erkennen, ob Rush-Hour-Bedingungen für einen Ort und eine Uhrzeit vorliegen.
    • Funktion „Beschäftigtheit“ im Restaurant:Eine Funktion, um anhand historischer Daten festzustellen, ob ein bestimmtes Restaurant lange Wartezeiten hat. Diese historischen Daten werden separat gesammelt.
  3. Die oben identifizierten Funktionen werden dann als Python-Bibliothek zur Wiederverwendung erstellt.
  4. Diese Bibliothek wird verwendet, um die Funktion auf die strukturierte Hive-Tabelle anzuwenden, um eine neue Tabelle zu erstellen, die der endgültige Trainingsdatensatz sein wird. Eine Zeile in der neuen Tabelle sieht folgendermaßen aus:

    Angenommen, loc1 und loc2 sind Straßenadressen. Dies wird hier abgekürzt, um es kurz und leicht lesbar zu halten.

  5. Data Scientists führen eine lineare Regression auf dem Trainingsdatensatz durch, um die Zeit für die Bereitstellung vorherzusagen. An diesem Punkt müssen sie dieselbe Merkmalsbibliothek verwenden, die zum Extrahieren der Merkmale im Trainingsdatensatz verwendet wurde.
  6. Das Modell wird als Function-as-a-Service (FaaS)-Endpunkt bereitgestellt, der von der Webanwendung verwendet wird, um die Lieferzeit vorherzusagen.

Beachten Sie, dass das Modell die Merkmale für die Vorhersage in Echtzeit berechnen muss. Diese Features sind Bibliotheken, die intern vom Modell verwendet werden. Eine Visualisierung der verschiedenen durchgeführten Aktivitäten und generierten Artefakte in diesem Beispiel könnte wie folgt aussehen:

Die blauen Kästchen stellen ML-Entitäten (Substantive) wie Code, Projekt, Builds, Bereitstellungen usw. dar. Die grünen Kästchen stellen Prozesse (Verben) dar, die auf Entitäten wirken und andere Entitäten erzeugen.

Die Visualisierung und die Beziehungen, die die Transformationen der Datenstruktur definieren, werden zusammenfassend als Herkunft bezeichnet . In der Datenbankwelt ändert das Hinzufügen einer neuen Spalte zu einer Tabelle ihre Herkunft. In der Welt des maschinellen Lernens ändert das Neutrainieren eines Modells durch das Verwenden von Features und Datensätzen die Herkunft. Um die Frage „Gibt es einen Unterschied zwischen der Merkmalsextraktion während des Trainings vs. der Bewertung“ zu beantworten, benötigen wir für die Essensliefer-Website die Herkunftsinformationen. Dies ist nur ein Beispiel für die Nützlichkeit von Abstammungsmetadaten in der Welt des maschinellen Lernens.

Apache Atlas als Governance-Tool

Es ist offensichtlich, dass der Aufbau einer vollständigen End-to-End-Linie für ML-Workflows – von Trainingsdatensätzen bis hin zu Modellbereitstellungen – zu einer Schlüsselvoraussetzung wird, um die identifizierten Governance-Probleme anzugehen. Die Integration von Datenmanagement und maschinellem Lernen muss Erklärbarkeit, Interpretierbarkeit und Reproduzierbarkeit ermöglichen.

Die Erfassung, Speicherung und Visualisierung von ML-Metadaten erfordert ein Standard-Backend-Softwaresystem. Eine offene und erweiterbare Metadatendefinition ermöglicht die Standardisierung von Governance-Vorgängen, unabhängig davon, wo die Modelle entwickelt oder bereitgestellt werden. Der offensichtliche Kandidat für Cloudera (und unsere Kunden) ist Apache Atlas.

Apache Atlas ist bereits eine Reihe weit verbreiteter Governance-Tools mit vordefinierten Metadatentypen für die Datenverwaltung. Im Kontext der ML-Governance ist es gut geeignet, um die für maschinelle Lernkonzepte erforderlichen Metadaten zu definieren und zu erfassen. Darüber hinaus bietet Apache Atlas erweiterte Funktionen wie Klassifizierungen, Integration mit Apache Ranger (für Autorisierung und Tagging), um nur einige zu nennen, und verfügt über ein erweiterbares Add-On-System, das es der Community ermöglicht, zusammenzuarbeiten und Integrationen mit verschiedenen anderen Tools im ML schrittweise zu definieren Platz. Es bleibt dem Leser als Übung überlassen, die Benutzeroberfläche von Apache Atlas zu erkunden und zu sehen, wie diese Funktionen verwendet werden.

ML-Metadatendefinition in Apache Atlas

Das Apache Atlas Type System erfüllt alle unsere Anforderungen zur Definition von ML-Metadatenobjekten. Es ist Open Source, erweiterbar und verfügt über vorgefertigte Governance-Funktionen. Ein Typ in Atlas ist eine Definition, wie ein bestimmter Typ von Metadatenobjekt gespeichert und aufgerufen wird. Es stellt auch ein oder mehrere Attribute dar, die die Eigenschaften für das Metadatenobjekt definieren. Für die ML-Governance kann Atlas Type System verwendet werden, um neue Typen zu definieren und ML-Entitäten und -Prozesse als Atlas-Metadatenobjekte zu erfassen. Neben der Definition der Typen ist auch die Beziehung zwischen den Entitäten und Prozessen erforderlich, um den End-to-End-Abstammungsfluss zu visualisieren.

Wenn wir dies auf das zuvor beschriebene Beispiel einer Website für Lebensmittellieferungen beziehen, bietet das Atlas Type System eine gute Grundlage, um die Abstammung des maschinellen Lernens zu definieren. Ein verallgemeinertes ML-Abstammungssystem wird wie folgt visualisiert:

Wie aus dem obigen Diagramm hervorgeht, folgt die Metadatendefinition für maschinelles Lernen eng dem tatsächlichen Arbeitsablauf für maschinelles Lernen. Trainingsdatensätze sind der Ausgangspunkt für einen Modellherkunftsfluss. Diese Datensätze können Tabellen aus einem Data Warehouse oder einer eingebetteten CSV-Datei sein. Sobald ein Datensatz identifiziert wurde, folgt die Abstammung dem Trainieren, Erstellen und Bereitstellen des Modells.

Die Entwicklung von ML-Features ist eine parallele und spezialisierte Aktivität, die als Feature-Engineering bezeichnet werden kann (anders als Modell-Engineering). Heutzutage werden in vielen Fällen die beiden Aktivitäten (Modell-Engineering und Feature-Engineering) von derselben Person oder demselben Team durchgeführt. Mit der Demokratisierung und Industrialisierung von Features könnte sich dies in Zukunft ändern, mit spezialisierten Teams für Modellentwicklung und Featureentwicklung.

Das ML-Typsystem kann jetzt durch die folgenden neuen Typen definiert werden:

„Projekt für maschinelles Lernen erstellen“ und „Projekt für maschinelles Lernen“

Ein einzelnes Machine Learning-Projekt repräsentiert einen einzelnen geschäftlichen Anwendungsfall. Das Machine Learning Project repräsentiert den Container mit Dateien und anderen eingebetteten Assets. Die Projektmetadaten enthalten mindestens:

  • Liste der im Modell verwendeten Dateien
  • Historische Version aller Dateien
    • Die einfachste Implementierung wäre, das Projekt als Git-Repository zu verwalten, das sich auf Git verlässt, um den Verlauf aller Dateien zu verwalten.
"Trainingsdatensatz"

Ein Untertyp eines DataSets in Atlas, der einen Trainingsdatensatz darstellt. Die Trainingsdatensatz-Entität wird im Modelltrainingsprozess verwendet. Es kann einem Merkmal zugeordnet werden, wenn die generierten Daten das Ergebnis der Anwendung der Merkmalsextraktion (oder -transformation) auf einen anderen Datensatz sind.

"Trainieren und Bauen"

Ein Prozess, der die Aktion des Trainierens und Erstellens eines Modells darstellt. Beinhaltet das Ausführen von Experimenten, das Tunen und das Abschließen der Auswahl eines Trainingsalgorithmus. Der Train-and-Build-Prozess könnte optional die Ausgabe eines Feature-Builds verbrauchen; zum Beispiel eine Bibliotheksfunktion, die die Merkmalsextraktion definiert, die intern vom Modell verwendet wird.

"Modellerstellung"

Das Modell wird gehärtet und versioniert, sobald ein Data Scientist das Experimentieren und Trainieren des Modells abgeschlossen hat. Diese Verarbeitung führt zu einem Model Build, bei dem es sich um ein unveränderliches Artefakt handelt, das den Baustein für die Produktion von Modellen bildet. Ein Docker-Image ist ein Beispiel für eine Model Build-Entität.

„Bereitstellungsmodell“ und „Modellbereitstellung“

Ein Modellaufbau durchläuft einen Bereitstellungsprozess, der eine Modellbereitstellung erstellt. Die Modellbereitstellung stellt eine aktive Instanziierung eines Modells dar. Ein Kubernetes-basierter REST-Dienst (Bereitstellung im FaaS-Stil) ist ein Beispiel für eine Modellbereitstellungsentität.

„Feature-Funktion“

Ein maschinelles Lernmerkmal hat zwei Interpretationen:1) Merkmalsfunktion und 2) transformierter Datensatz.

Die Feature-Funktionsentität ist eine benutzerdefinierte Funktion (in Code ausgedrückt), die definiert, wie ein identifiziertes Feature aus einer Eingabe extrahiert wird. Dies stellt den Code für Funktionen dar, ähnlich wie ML Project den Container für ML-Code darstellt.

Die Feature-Funktion wird zunächst als Bibliothek gepackt (versioniert und gehärtet). Die Bibliothek wird dann verbraucht und auf ein bestimmtes DataSet angewendet, um es in ein neues DataSet (mit den extrahierten Features) umzuwandeln. Der transformierte Datensatz wird durch die oben definierte Trainingsdatensatz-Entität dargestellt.

„Paketfunktion“ und „Funktionsaufbau“

Der Code in der Feature-Funktion ist zur gemeinsamen Nutzung (mit anderen Modellen) oder zur Laufzeitbewertung gepackt. Diese Pakete werden Feature Builds genannt. Beispielsweise kann ein Feature Build eine gepackte Bibliothek (in Python) oder eine JAR-Datei (in Java) enthalten. Dieses Paket kann während des Modellbahn- und Build-Prozesses absorbiert werden, um sicherzustellen, dass dasselbe Feature sowohl während der Extraktion als auch während der Vorhersage verwendet wird.

Probieren Sie es aus und gestalten Sie die Zukunft der ML-Metadatendefinition mit

Wir haben mit der Arbeit an ATLAS-3432 begonnen, der ersten Implementierung des Machine Learning Type System, das Cloudera Data Science Workbench (CDSW) als Pilotclient nutzt. Vielen Dank an Na Li vom Cloudera-Engineering-Team für die Leitung der Arbeit am Aufbau der CDSW-Integration. Mit ATLAS-3432 können die Modellmetadaten von einer CDSW-Instanz an eine Apache-Atlas-Instanz gepusht werden, um die Herkunft zu untersuchen. CDSW unterstützt derzeit keine Features (oder einen Feature-Store), daher ist die Abstammung in Bezug auf Features nicht verfügbar.

Wir bei Cloudera wollen dieses Problem nicht einfach für unsere Kunden lösen – wir glauben, dass ML-Metadatendefinitionen universell sein sollten, ähnlich wie Tabellen, Spalten usw. sehr Standard für Datenstrukturen sind. Wir hoffen, dass Communities zur Definition dieses Standards beitragen werden, um Unternehmen dabei zu helfen, das Beste aus ihren ML-Plattformen herauszuholen.

Haben Sie einen Anwendungsfall für Machine Learning Governance, der nicht in das Metadatenmodell passt? Beteiligen Sie sich an der Diskussion, indem Sie Ihre Vorschläge an [email protected] posten.