Verglichen mit Software-Entwicklung sind wir mehrere Jahre zurück
Wir sind uns aber bewusst: Google löst andere Probleme als die meisten von uns
Customer Churn / Conversion
Wie verhält sich jemand, der später Kunde wird / kündigt?
Ein Punkt für das Erfüllen eines Test-Kriteriums
Ein weiterer falls die Erfüllung automatisiert ist
Vier Kategorien mit jeweils maximal 14 Punkten
1 Punkt!
Noch ein Punkt! Es sind jetzt schon zwei!
Wie teuer ist die Beschaffung? Wie viele Ressourcen belegt es im Modell?
Ist das Feature immer verfügbar und von konstanter Qualität?
https://www.heise.de/newsticker/meldung/DSGVO-Folterfragebogen-im-Selbsttest-3974512.html
str(hashlib.sha512(license)).hexdigest())[:8] + '@example.com'
Zwei Punkte, da das hier automatisiert ist! Vier insgesamt!
Wie schnell kann reagiert werden?
Auch so simpler, aber extrem wichtiger, zentraler Code braucht Unit-Tests
4 von 14 Punkten
3-4 points: There’s been first pass at basic productionization, but additional investment may be needed.
Zwei Punkte
Wenn sich der Test-Score erhöht, kann man dann eine Auswirkung auf relevante Business-Größen ferstellen? Kaufen mehr Leute? Sind Kunden zufriedener?
Wie für jedes Feature wollen wir das überprüfen, dies ist bisher aber nicht geschehen
Kein Punkt
Systematische Untersuchung von Hyper-Parametern kann zu deutlich besseren Ergebnissen führen
Parameter-Raum ist zu groß und Laufzeit für Training zu lang für Grid-Search, wir nehmen Random-Search
Zwei Punkte
Verhält sich das Modell mit Daten von dieser Woche anders als das von letztem Jahr?
Besteht noch nicht lang genug, um das sicher sagen zu können
Kein Punkt
Wenn ja, mit welchem Aufwand erreichen wir das bessere Ergebnis? Lohnt sich das eigentlich?
Unser Baseline-Modell ist ein von Hand kodiertes stochastisches Modell
Unser ML Modell ist auf Testdaten 20% besser und passt sich an die Daten an
Ein Punkt!
Betrachtung z.B. nach Land kann Schwächen zeigen, die im Gesamtmodell untergehen
Decken die Trainingsdaten alle realistischen Szenarien ab
Wir wissen sicher, dass wir Bias in den Trainingsdaten haben
Dazu gibt es von bestimmten Daten viel und von anderen weniger Datensätze
Kein Punkt!
5 von 14 Punkten
5-6 points: Reasonably tested, but it’s possible that more of those tests and procedures may be automated.
Liefern Modelle, die auf denselben Trainingsdaten trainiert werden dieselben Ergebnisse?
Ist gewährleistet
Ramdom Seeds fest gesetzt
Initiale Weights immer gleich geladen
Zwei Punkte
Geht Loss beim Training tatsächlich herunter? Kann man nach einem Crash wieder aufsetzen? Funktioniert Early-Stopping? Sind Checkpoints brauchbar?
Loss wird über das TensorBoard überprüft (manuell)
Early Stopping Callbacks wenn Validation Loss nicht mehr herunter geht
Checkpoints werden geschrieben
Ein Punkt, keine automatische Überprüfung
Funktioniert das Modell besser als ein vorheriges? Werden bekannte Ergebnisse richtig vorhergesagt?
Accuracy aller Test-Daten wird automatisch berechnet
Ausgewählte Datensätze werden nur manuell überprüft
Ein Punkt (bekannte Ergebnisse könnten Unit-Tests sein)!
Kann man das Verhalten nachvollziehen wenn man es nur mit einem Datensatz füttert?
Was passiert wenn man einen kleinen Trainingsdatensatz füttert?
Hat man irgendeinen Einblick in die internen Abläufe des Modells?
Bei Convolutional Layers nutzen wir die bekannten Strategien
Manuell überprüfen wir Aktivierungen von Feature Channels, Activation Maps, und welche Feature Channels pro Bild angesprochen werden
Fully Connected Layers sind allerdings komplett intransparent
Ein Punkt!
Nur so kann man sicher stellen, dass System-Änderungen aus dem Training auch in Produktion Funktionieren
Auf Google Cloud ML ist ein Modell mit einer bestimmten Version default
Diese Versionsnummer kann jederzeit umgesetzet werden
Ein Punkt!
Manuell, aber auch dafür ist Google Clound ML gut geeignet
Produzierte Modelle werden aber auch im Git mitversioniert
Ein Punkt!
7 von 14 Punkten
7-10 points: Strong levels of automated testing and monitoring, appropriate for missioncritical systems.
Das kann sich auf regelmäßiges (Nach-)Training beziehen und sich auf die Trainingszeiten auswirken
0 von 14 Punkten
0 points: More of a research project than a productionized system.
Hier muss noch viel passieren
Das Minimum eines Ergebnisses jeder Kategorie
Das bedeutet leider insgesamt 0 Punkte
0 points: More of a research project than a productionized system.
Wie gut ist dein Machine-Learning-Modell?
Oliver Zeigermann /
@DJCordhose
http://bit.ly/m3-ml-quality