Vor ein paar Monaten erschien ein sehr alberner Weblog-Beitrag Die Entbündelung des Luftstroms. Ich habe den Artikel nicht vollständig gelesen, aber ich habe seinen Titel gesehen und ihn genug überflogen, um zu glauben, dass das Argument vielleicht zu dürftig struggle, um stichhaltig zu sein, aber gerade stark genug, um die VC-Welt mit dem Wort „Entbündelung“ anzulocken gleichzeitig Cunninghams Gesetz Die Datenwelt. Es gab sicherlich ein Twitter Diskurs.

Man sagt, Nachahmung sei die aufrichtigste Type der Schmeichelei, aber ich weiß nicht, ob das hier zutrifft. Dennoch lesen Sie gerade einen Weblog-Beitrag über Datensachen, der wahrscheinlich falsch ist und das Wort „unBündelung“ darin.

Das Bündelungsargument, das ich in diesem Beitrag vorbringen werde, interessiert mich eigentlich nicht so sehr. Ehrlich gesagt möchte ich das nur argumentieren Characteristic-Shops, MetrikebenenUnd Überwachung des maschinellen Lernens Bei allen Instruments handelt es sich um Abstraktionsschichten auf denselben zugrunde liegenden Konzepten, und 90 % der Unternehmen sollten diese „Anwendungen“ einfach in SQL zusätzlich zu Streaming-Datenbanken implementieren.

Im Grunde möchte ich das argumentieren Materialisieren Zitat-Tweet von Josh Wills‘ zweiter viraler Tweet:

Und ich Wille argumentiere das. Sie müssen sich jedoch zunächst mit meiner Bündelungsthese auseinandersetzen, damit ich mein Nischenargument etwas grandioser und vordenkerhafter formulieren kann.

Obwohl ich das Argument der Entbündelung von Airflow nicht wirklich teile, gebe ich zu, dass es für Airflow nicht so intestine aussieht, und das ist großartig! In diesem goldenen Zeitalter der Developer Expertise™ fühlt sich Airflow wie das DMV an. Ein toller Airflow-Killer dbt. Anstatt knorrige, nicht testbare und spröde Airflow-DAGs für die Verwaltung Ihres Knowledge Warehouse zu entwickeln, dbt ermöglicht es Ihnen, Ihre DAG rein in SQL zu erstellen. Natürlich müssen Sie möglicherweise einen Termin vereinbaren dbt läuft mit Airflow, aber Sie müssen sich nicht mit dem Chaos auseinandersetzen, das die Airflow-Orchestrierung mit sich bringt.

Wenn überhaupt, dbt hat alle benutzerdefinierten, hackigen DAGs gebündelt, die SQL, Python, Bash, YAML, XCom und alle möglichen anderen Dinge in reines SQL gemischt haben, das die Berechnung in die Datenbank verlagert. Das ist eine schöne Bündelung, und die Leute sind es eindeutig sehr glücklich darüber. Darüber hinaus verfügen wir jetzt über den Fashionable Knowledge Stack™, was bedeutet, dass wir über Konnektoren wie … verfügen Fivetran Und Stich die uns helfen, alle möglichen unterschiedlichen Daten hineinzuschieben Schneeflockedas Cloud Knowledge Warehouse des Tages.

Mein Weblog (und ich) neigen dazu, ziemlich stark auf maschinelles Lernen zu setzen. Für diejenigen, die es nicht kennen: Alles, was ich beschrieben habe, stellt die wundervolle neue Welt von Analytics Engineering™ dar, und es ist wirklich eine fantastische Zeit, ein Analytics Engineer zu sein. Es gibt einen klar definierten Stack, Greatest Practices und eine einzelne Particular person kann bei einem jungen Startup ein enorm skalierbares Knowledge Warehouse aufbauen. Das passt perfekt dazu BeratungÜbrigens.

Und dann ist da noch die Welt der maschinellen Lerntechnik oder MLOps™, wie sie leider genannt wird. Ich kann mit Sicherheit sagen, dass es keinen modernen ML-Stack gibt. Dieses Feld ist ein Cluster-Fick, der sicherlich etwas gebündelt werden muss, additionally schlage ich vor, dass wir damit fahren dbt trainieren und in der Datenbank konsolidieren.

Die Landschaft des maschinellen Lernens, der KI und der Daten (MAD) im Jahr 2021

Die Landschaft des maschinellen Lernens, der KI und der Daten (MAD) im Jahr 2021

Wenn ich aus den Wolken der hochfliegenden Vordenker komme, werde ich die ML-Überwachung als meine Strohmann-Fallstudie auswählen, da dies ein Bereich ist, an dem ich persönlich interessiert bin und der unspektakulär ist fehlgeschlagen vor ein paar Jahren ein Startup in diesem Bereich zu starten. Für diesen Blogbeitrag umfasst die ML-Überwachung die Überwachung von Leistung oder Qualität Ihres maschinellen Lernmodells. Im Kern prognostizieren ML-Modelle Dingeund später finden wir Informationen darüber heraus Dinge. Ein Anzeigenranking-Modell kann vorhersagen, dass ein Nutzer auf eine Anzeige klickt, und wir lösen später ein Ereignis aus, wenn der Nutzer darauf geklickt hat. Ein Prognosemodell kann die Anzahl der Einheiten vorhersagen, die im nächsten Monat verkauft werden, und am Ende des nächsten Monats berechnen wir, wie viele Einheiten verkauft wurden. Die Modellleistung hängt davon ab, wie genau die Vorhersagen mit den Endergebnissen übereinstimmen, oder Grundwahrheit.

Die meisten ML-Überwachungstools funktionieren so, dass Sie ihnen Ihre Modellvorhersagen und Ihre Grundwahrheit senden müssen. Die Instruments berechnen dann verschiedene Leistungsmetriken wie Genauigkeit, Präzision und Erinnerung. Sie erhalten oft einige schöne Diagramme dieser Metriken, Sie können sie entlang verschiedener Dimensionen aufteilen, Warnungen einrichten usw…

Das ist zwar alles schön und intestine und es gibt viele davon Firmen erziehen Millionen von Greenback Um dies zu erreichen, würde ich argumentieren, dass Normal-ML-Leistungsmetriken (die oben erwähnte Genauigkeit, Präzision, Rückruf usw.) gelten nicht Die besten Kennzahlen zum Messen. Im Idealfall ist es Ihr ML-Modell die Welt beeinflussen in irgendeiner Weise, und was du Genau genommen Wichtig sind einige Geschäftskennzahlen, die entweder mit dem Modell in Zusammenhang stehen oder ihm nachgelagert sind. Für ein Betrugserkennungsmodell möchten Sie möglicherweise Ihre falsch-positiven und falsch-negativen Ergebnisse nach Kosten oder finanziellen Verlusten gewichten. Um diese anderen Geschäftskennzahlen zu überwachen, müssen Sie diese Daten in das ML-Überwachungssystem übertragen. Und das ist ärgerlich.

Für jedes ML-Modell, das ich jemals bereitgestellt habe, schreibe ich am Ende komplexes SQL, das über viele Tabellen hinweg verknüpft. Möglicherweise muss ich sogar mehrere Datenbanken abfragen und die Ergebnisse dann mit Python zusammenfügen. Ich möchte nicht alle meine Daten an ein Drittanbieter-Software senden müssen; Mir wäre es lieber, wenn das Software zu meinen Daten kommt.

Ich lief a Umfrage Vor ein paar Jahren haben viele Leute ihre ML-Modelle entweder manuell überwacht oder eine SQL-Abfrage oder ein Skript automatisiert. Wenn das der Fall ist, warum sollte man dann ein SaaS-Unternehmen für die Überwachung beauftragen?

Sie könnten argumentieren, dass ein ML-Überwachungstool eine einheitliche Möglichkeit zur Überwachung von ML-Modellen bietet, sodass Sie nicht für jedes neue Modell, das Sie bereitstellen, SQL-Abfragen neu schreiben und das Rad neu erfinden müssen. Weißt du, viele Fashions, viele Probleme.

Ich glaube nicht, dass darin der Wert liegt, und ich denke nicht, dass Sie das tun sollten. Für jeden neuen Typ von Modell-„Anwendungsfall“, den Sie einsetzen, sollten Sie wahrscheinlich gründlich über die Metriken nachdenken, die für die Messung der Geschäftsauswirkungen des Modells wichtig sind, anstatt sich auf den Lorbeeren des bloßen F1-Scores auszuruhen.

Ich würde behaupten, dass der wahre Vorteil von ML-Überwachungstools darin besteht, dass sie eine fortschrittliche Infrastruktur bereitstellen, die es Ihnen ermöglicht, die Leistung in Echtzeit zu überwachen. Dies ist eine Voraussetzung für Modelle, die Echtzeitvorhersagen generieren und ein ausreichendes Risiko bergen, sodass Sie das Modell schneller als nach einem festen Zeitplan überwachen müssen. Für eine nahezu „Echtzeit“-Überwachung benötigen Sie ein System, das zwei spezifische Aufgaben mit geringer Latenz erledigt:

  1. Deduplizieren und verknüpfen Sie Schlüssel mit hoher Kardinalität für Daten, die aus unterschiedlichen Quellen stammen und zu unterschiedlichen Zeitpunkten eintreffen.
  2. Berechnen Sie aggregierte Statistiken über bestimmte Zeitfenster.

Lassen Sie mich konkreter werden. Stellen Sie sich vor, ich erstelle ein Conversion-Prognosemodell für mein SaaS-Unternehmen. Benutzer landen auf der Zielseite, geben mir ihre E-Mail-Adresse und einige kaufen dann ein Abonnement, andere nicht. Ich kann die E-Mail-Adresse eines Leads in Postgres speichern, ich prognostiziere, ob er konvertieren und ein Ereignis in meinem Eventing-System auslösen wird, und dann zeichne ich seine Conversion-Informationen in Postgres auf.

Wenn ich die Genauigkeit meines Conversion-Vorhersagemodells berechnen möchte, muss ich die Daten jedes Leads zwischen Postgres und dem Ort, an dem meine Ereignisse stattfinden, zusammenführen. Die Konvertierungsinformationen können viel später als die Lead- oder Vorhersageinformationen erfolgen. Anschließend muss ich diese Daten über einen bestimmten Zeitraum hinweg aggregieren, um die Modellgenauigkeit zu berechnen.

In SQL würde die nachfolgende 3-Stunden-Genauigkeit ungefähr so ​​aussehen

SELECT
  -- Depend Distinct leads since we are going to may hearth 
  -- duplicate prediction occasions.
  COUNT(DISTINCT 
    IFF(
        -- True Constructive
        (predictions.label = 1 AND conversions.lead_id IS NOT NULL)
        -- True Detrimental
        OR (predictions.label = 0 AND conversions.lead_id IS NULL)
        , leads.id
        , NULL
    )
  )::FLOAT / COUNT(DISTINCT leads.id) AS accuracy
FROM leads
-- Predictions might come from some occasion system, whereas 
-- leads + conversions could also be within the OLTP DB.
JOIN predictions ON predictions.lead_id = leads.id
LEFT JOIN conversions ON conversions.lead_id = leads.id
WHERE
  leads.created_at > NOW() - INTERVAL '3 hours'
  -- NOTE: we're ignoring the bias incurred by current leads 
  -- which possible haven't had time to transform since we're 
  -- assuming that they didn't convert. When the dearth of a 
  -- prediction label is a label, time performs an necessary function!

Ja, ich kann alle meine Daten in Snowflake verschieben und dazu eine Abfrage ausführen. Allerdings kann ich dies nicht für aktuelle Daten tun, deren Latenz so niedrig ist, dass es sich wie eine Echtzeitberechnung anfühlt. ML-Überwachungstools erledigen dies für Sie.

Wenn wir auf andere Bereiche zurückblicken, die ich zuvor in diesem Beitrag erwähnt habe, wie z. B. Characteristic-Shops und Metrikebenen, können wir erkennen, dass sie dieselben zwei Anforderungen haben wie ein ML-Überwachungssystem.

Stellen Sie sich vor, wir erstellen in unserem Characteristic Retailer eine Funktion für das Conversion-Vorhersagemodell, das „die nachlaufende 3-Stunden-Conversion-Fee für von Fb vermittelte Leads“ darstellt. Hierbei handelt es sich um eine aggregierte Statistik über ein Zeitfenster von 3 Stunden. Für Trainingsdaten in unserem Characteristic-Retailer müssen wir diesen Characteristic-Wert zum Zeitpunkt früherer Vorhersagen berechnen. Sie möchten verhindern, dass zukünftige Daten in die Vergangenheit gelangen. Dies ist bei der Berechnung der Conversion-Raten einfach, da Conversions einige Zeit nach dem Vorhersagezeitpunkt erfolgen. Für die Bereitstellung der Funktion in Echtzeit müssen wir die berechnen aktuell Wert dieser Funktion mit geringer Latenz.

Wie führen wir diese Berechnungen durch? Wir können für jeden Anwendungsfall (ML-Überwachung, Characteristic Retailer, Metrikebene usw.) separate Anbieter verwenden. Wir könnten auch versuchen, selbst ein allgemeines System aufzubauen, obwohl es im Second ehrlich gesagt nicht ganz einfach ist. Datenbanken der nächsten Era wie ClickHouse Und Druide sind Optionen. Ich freue mich besonders darüber Materialisieren. Es ist einfach wie Postgres, es lässt sich leicht in verschiedene Datenquellen integrieren, und sie unternehmen derzeit Schritte dorthin horizontal skalieren. Damit Sie nicht glauben, ich sei nur ein Spinner, hat Materialise kürzlich einen geschrieben Blogeintrag (und bereitgestellt Code) über einen Proof-of-Precept-Characteristic-Retailer, der auf Materialise basiert (dies beweist jedoch nicht, dass ich es bin). nicht eine Kurbel).

Um es klar zu sagen: Ich versuche nicht, ein „Erstellen Sie Ihre eigene Dropbox“. Alle diese Anbieter bieten sicherlich einen erheblichen Mehrwert. Materialise wird wahrscheinlich nicht in der Lage sein, die Latenzanforderungen einiger Groups zu erfüllen, es gibt komplizierte Probleme rund um ACLs und PII, intelligente Alarmierung ist schwierig, es gibt intelligente Dinge, die Sie zusätzlich zu diesen Systemen tun können, wie z. B. Modellerklärbarkeit usw… Mein Argument ist, dass es wahrscheinlich eine beträchtliche Anzahl von Unternehmen gibt, die damit auskommen Alles intestine mit dem Aufbau eines eigenen Programs auf einer leistungsstarken Datenbank. Nur ein kleiner Teil der Unternehmen muss diese Nischenprobleme lösen, und ein noch kleinerer Teil hat strengere Anforderungen, als eine Streaming-Datenbank lösen kann.

Wenn eine Streaming-Datenbank zum Substrat für den Aufbau von Dingen wie ML-Überwachung und Characteristic-Shops wird, wie sollten wir dann solche Instruments erstellen? Wenn Sie den Infrastrukturteil herausnehmen, der derzeit ein zentraler Bestandteil der Lösungen der Anbieter ist, was bleibt dann übrig? Ich vermute, dass größtenteils noch Software program übrig ist? Anbieter können (und werden) diese Software program bereitstellen, aber das verringert ihr Wertversprechen.

Sie können Ihren eigenen Code schreiben, um Ihr eigenes ML-Überwachungssystem zu verwalten. Ich denke, dieses Szenario scheint reif für ein Open-Supply-Framework zu sein. Ich würde gerne einen Meinungsrahmen zum Erstellen eines ML-Überwachungstools in SQL sehen. Sorgen Sie dafür, dass ich mich mit Greatest Practices ausstatte, und erlaube mir, einige Muster zu vermeiden. Ich denke, Sie können Geld verdienen, indem Sie eine verwaltete Lösung anbieten, wenn Sie es wirklich brauchen. Das tue ich nicht, additionally werde ich vielleicht versuchen, etwas Open-Supply-Code dort unterzubringen, wo mein Mund ist.

Anmerkungen des Autors:

  • Ich sollte beachten, dass ich das noch nie getan habe Genau genommen gebraucht dbt. Als ein ehemaliger PhysikerIch bin jedoch zuversichtlich, dass ich diesen Bereich außerhalb meines Fachwissens intestine genug verstehe, um dazu Stellung zu nehmen.
  • Apropos unbegründetes Vertrauen: Sie werden feststellen, dass ich mich nicht wirklich mit den Metrikebenen befasst habe. Ich weiß nicht viel über sie, aber es scheint, als ob sie demselben Paradigma entsprechen wie Characteristic Shops und ML-Überwachungstools? Außerdem ist die Welt der Analysetechnik viel größer als die ML-Welt, sodass die Erwähnung von Metrikebenen den oberen Rand meines Weblog-Trichters vergrößert.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert