Warum ML-Tests die Zukunft von Data Science-Karrieren sein könnten

Home Wissen Warum ML-Tests die Zukunft von Data Science-Karrieren sein könnten

In diesem Artikel geht es hauptsächlich um das Testen als separate Karriereoption in Data Science und maschinellem Lernen (ML). Es bietet einen Überblick über Arbeitsabläufe und Prüfprozesse. Es beschreibt auch die hochrangigen Fachkenntnisse und Fähigkeiten, die ein Tester besitzen muss, um eine ML-Anwendung zu testen.

Data-Science-Tests: Erweiterungsmöglichkeiten

Es besteht eine große Chance, Test- und Qualitätssicherungsmöglichkeiten im Bereich Data Science und maschinelles Lernen (ML) zu erkunden und zu erweitern.

Das Spielen mit Trainingsdaten, Algorithmen und Modellierung in der Datenwissenschaft kann eine komplexe, aber interessante Aktivität sein, aber das Testen dieser Anwendungen ist es nicht weniger.

Es wird viel Zeit für Tests und Qualitätssicherungsaktivitäten aufgewendet. Experten und Forscher schätzen, dass 20-30 % der gesamten Entwicklungszeit für das Testen der Anwendung aufgewendet wird; und 40-50 % der Gesamtkosten eines Projekts werden für Tests ausgegeben.

Darüber hinaus beschweren sich Data-Science-Experten und Praktiker oft darüber, dass sie produktionsreife Data-Science-Modelle, etablierte Endpunkte und Berichtsvorlagen haben, aber keine Teams, die ihnen beim Testen helfen. Dies erschließt das Potenzial von Data-Science-Testing als eigenständige Karriereoption. (Lesen Sie auch: Das Leben nach der Pandemie in der Tech-Welt sieht ziemlich gut aus.)

Tests können in Data Science in einem völlig neuen Kontext und Ansatz implementiert werden. Aber für solche Systeme verbraucht dieser neue Hintergrund noch mehr Zeit, Mühe und Geld als andere Legacy-Systeme zur Hand.

Um diese Komplexität zu verstehen, müssen wir zunächst die Mechanismen hinter maschinellen Lernsystemen verstehen.

Wie Machine-Learning-Systeme funktionieren

Beim maschinellen Lernen (ML) füttert der Mensch das gewünschte Verhalten als Beispiel während der Trainingsphase durch den Trainingsdatensatz und der Modelloptimierungsprozess erzeugt die Begründung (oder Logik) für das System. (Lesen Sie auch: Die 4 größten Mythen des maschinellen Lernens aufdecken.)

Aber was fehlt, ist ein Mechanismus, um zu wissen, ob diese optimierte Logik das gewünschte Verhalten konsistent erzeugt.

Hier kommt das Testen ins Spiel.

Workflow zum Testen von maschinellen Lernsystemen

Bild des Autors.

Typischerweise wird beim maschinellen Lernen für ein trainiertes Modell automatisch ein Bewertungsbericht auf der Grundlage festgelegter Kriterien erstellt, darunter:

  • Modellleistung, basierend auf Metriken, die auf dem Validierungsdatensatz festgelegt wurden. Ein gängiges Maß ist die Genauigkeit oder der F1-Score, obwohl auch viele andere verwendet werden.
  • Eine Reihe von Grundstücken, die veranschaulicht, wie Dinge wie Präzisions-Erinnerungskurven und AUC-ROC-Kurven funktionieren. Auch diese Tabelle ist nicht vollständig.
  • das Hyperparameter verwendet, um das Modell zu trainieren.

Basierend auf dem Bewertungsbericht werden Modelle, die eine Verbesserung gegenüber dem bestehenden Modell (oder Benchmark) bieten, während sie auf demselben Datensatz laufen, gefördert und für die endgültige Aufnahme in Betracht gezogen.

Bei der Untersuchung mehrerer ML-Modelle werden Metriken und Diagramme untersucht, die die Modellleistung eines Validierungsdatensatzes zusammenfassen. Die Leistung zwischen mehreren Modellen wird verglichen, um relative Urteile zu treffen, aber auf dieser Grundlage kann nicht sofort ein angemessenes Modellverhalten charakterisiert werden.

Nehmen wir zum Verständnis ein Beispiel.

Fallstudie: Ein hypothetisches Data-Science-Projekt

Stellen Sie sich ein Projekt vor, bei dem Trainingsdaten zur Entwicklung von Modellen verwendet werden. Die Leistung der entwickelten Modelle wird an einem Validierungsdatensatz getestet und Bewertungsberichte werden auf der Grundlage der Genauigkeit als Metrik erstellt.

Hier sind die Ergebnisse:

Tabelle 1

Modell

Genauigkeit (%)
1 85
2 80
3 95.4
4 98.8
5 90.15

Welches Modell ist also das beste? Um dies zu bestimmen, müssen wir uns das Verhalten des Modells ansehen, was bedeutet, dass das Testen des Modells zu einer Priorität wird.

Es wird empfohlen, Verhaltenstests zu erstellen, um das Modell für jede seiner identifizierten Fähigkeiten zu bewerten und das Modell auszuwählen, das in Bezug auf diese Fähigkeiten die beste Punktzahl erzielt.

Angenommen, dies ist beispielsweise ein Sentiment Analysis Project (NLP) und die möglichen Features sind Vokabular, Linguistik, Negation, Named Entity Recognition (NER) und News . Das bedeutet, dass die Leistung des Modells mit Ausnahme von Bewertungsmetriken und Diagrammen/Kurven für jedes dieser Merkmale getestet werden sollte.

Sehen wir uns die folgende Tabelle an, um das zu verstehen.

Tabelle 2

Kapazitäten identifiziert
Wortschatz
Sprachlich
Negation
TNS

Modell

Bewertung basierend auf identifizierten Kapazitäten (%)

1

70

2

50

3

90

4

80

5

75

Die obige Tabelle zeigt, dass Modell 4 zwar am genauesten war (98,8 %), aber schlechter abschneidet (80 % bei den Fähigkeiten (was sich in Verhaltenskonsistenz niederschlägt). Stattdessen Modell 3, das eine geringere Genauigkeit (95,4 %), aber eine höhere hat Capability Score (90 %) wird für den weiteren Einsatz in der Produktion berücksichtigt.

Auch hier erfordert die Entscheidung, welche Modelle basierend auf Modellbewertung und Modelltests aufgenommen werden sollen, dass diese beiden Testkategorien gleichzeitig und mit den Erwartungen und Bedürfnissen der Kunden koordiniert werden.

Dies ist die Essenz von Data-Science-Tests, die bei der Entscheidung helfen, welches Modell in die endgültige Produktion und Bereitstellung aufgenommen werden soll.

Was nun?

Eine Übersicht über Machine-Learning-Tests

Das Allheilmittel dafür besteht darin, eine ausreichende Anzahl von Verhaltenstests für das betrachtete Modell zu erstellen, die eine 100-prozentige Abdeckung in Bezug auf die optimierte Logik und die Fähigkeiten der Software bieten sollten. Außerdem ist es ratsam, diese Tests unter verschiedenen Fähigkeiten zu gruppieren, um nichts zu verpassen und Ihre Vorgehensweise leicht nachvollziehen zu können.

Herkömmliche Softwaretests haben Metriken wie Lines of Code (LOC), Software Lines of Code (SLOC) oder McCabe-Komplexität. Für die Parameter eines maschinellen Lernmodells wird es jedoch schwieriger, Abdeckungsmetriken zu definieren.

Die einzige praktikable Lösung besteht in diesem Zusammenhang darin, die Protokolle und Fähigkeiten des Modells zu verfolgen und den Bereich zu quantifizieren, der von jedem Test um diese Ausgabeschichten herum für alle Testläufe abgedeckt wird. Die vollständige Rückverfolgbarkeit zwischen Verhaltenstestfällen und Modellprotokollen und -fähigkeiten muss erfasst werden.

Dennoch fehlt es in dieser Hinsicht branchenweit an einer etablierten Konvention. Und das Testen für maschinelle Lernsysteme befindet sich in einem so unausgereiften Zustand, dass Fachleute die Testabdeckung immer noch nicht ernst nehmen.

Die zwei Haupttypen von Machine-Learning-Tests

Unter Berücksichtigung der obigen Szenarien leiten wir zwei große Kategorien von Tests in maschinellen Lernanwendungen ab.

  1. Modellbewertungdie Metriken und Kurven/Diagramme darstellt, die die Modellleistung in einem Validierungs- oder Testdatensatz explizit definieren
  2. ModelltestDies beinhaltet explizite Überprüfungen der Verhaltensweisen, denen das Modell folgen soll.

Für diese Systeme sollten Modellbewertung und Modelltest parallel durchgeführt werden, da beides erforderlich ist, um qualitativ hochwertige Modelle zu erstellen.

In der Praxis verwenden die meisten Experten eine Kombination aus beidem, bei der die Bewertungsmetriken automatisch berechnet werden und ein gewisses Maß an „Testen“ des Modells manuell durch den Fehleranalyseprozess erfolgt (z. B. über Fehlermodus- und Auswirkungsanalyse). Aber das ist nicht genug.

Tester, die früh in der Phase eingreifen und Modelltests für maschinelle Lernsysteme umfassend entwickeln, können einen systematischen Ansatz anbieten, nicht nur zur Fehleranalyse, sondern auch zur vollständigen Abdeckung und Automatisierung des gesamten Ansatzes.

Erforderliche Fähigkeiten für ein Data Science-Testteam

Ein gutes Testteam sollte die Modellergebnisse validieren, um sicherzustellen, dass es wie erwartet funktioniert. Das Modell wird sich weiterentwickeln, wenn Kundenanforderungen entstehen oder Änderungen und Implementierungen vorgenommen werden, aber je mehr das Team das Modell optimiert, desto besser werden die Ergebnisse sein. Dieser Zyklus der Verfeinerung und Modifikationen wird gemäß den Anforderungen des Kunden fortgesetzt.

Daher sind hier die Mindestanforderungen, die ein Data-Science-Testteam erfüllen sollte (Lesen Sie auch: 5 grundlegende Fähigkeiten, die für erfolgreiche KI-Einsätze erforderlich sind.):

  1. Verstehen Sie das Muster innen und außen. Das Team sollte mit Datenstruktur, Parametern und Schemata vertraut sein. Dies ist sehr wichtig, um die Ergebnisse und Ergebnisse des Modells zu validieren.
  2. Verstehen Sie die Parameter, mit denen sie arbeiten. Parameter helfen uns zu wissen, was im Datensatz enthalten ist, damit wir Muster und Trends basierend auf den Kundenanforderungen finden können. Das Muster ist ein zufälliger Ansatz mehrerer Algorithmen, die Informationen liefern und die besten Ergebnisse aus dem Datensatz hervorheben.
  3. Verstehe, wie die Algorithmen Arbeit. Algorithmen sind das Herzstück der Modellentwicklung. Es ist daher entscheidend, sie zu verstehen (und unter welchen Umständen sie verwendet werden können).
  4. Arbeiten Sie eng zusammen. Die Zusammenarbeit hilft einem Testteam, besser zu verstehen, was jeder seiner Kollegen tut, um Testfälle für jede Funktion zu erstellen. Es hilft auch, explorative Tests und Regressionstests für neue Funktionen durchzuführen, ohne den Rest aufzuschlüsseln (d. h. die Basisergebnisse aufzuschlüsseln). Es ist eine Möglichkeit zu verstehen, wie sich Modellparameter mit verschiedenen Datensätzen verhalten, und hilft bei der Bildung einer Eingabe für die Erstellung von Testplänen.
  5. Wissen, ob die Ergebnisse korrekt sind. Um die Ergebnisse des Modells zu validieren, ist es wichtig, einen definierten Schwellenwert festzulegen. Weichen die Werte über den Schwellenwert hinaus, liegt eine Ungenauigkeit vor. Einige Bereiche eines Modells können zufällig sein. Um diese Zufälligkeit – oder den Grad der Abweichung – zu kontrollieren, wird daher ein Schwellenwert angewendet. Das bedeutet, dass das Ergebnis nicht falsch ist, solange es innerhalb des Schwellenwerts in Prozent liegt.

Top-Fähigkeiten, die jeder Data-Science-Tester haben sollte

Während die oben genannten Fähigkeiten für ein Data-Science-Testteam als Ganzes wichtig sind, sollte jeder Tester über eine Reihe von Fähigkeiten verfügen. Individuell Kapazitäten. (Lesen Sie auch: Top 5 der bestbezahlten IT-Zertifizierungen und wie man sie erhält.)

Hier ist, was ein Data-Science-Tester braucht, um „den optimalen Punkt zu finden“:

Fazit

Systeme für maschinelles Lernen sind schwierig zu testen, da Entwickler und Tester die Systemlogik nicht explizit schreiben (sie wird durch Optimierung generiert).

Tester können dieses Problem lösen, da sie bereits mit großen Datensätzen umgehen und diese optimal zu nutzen wissen. Darüber hinaus sind Tester Experten für die kritische Überprüfung von Daten und kümmern sich weniger um Code als vielmehr um Daten und Domänenwissen. All dies hilft Testern dabei, Data Science und maschinelles Lernen einfach zu nutzen – für sie ist es nur eine Frage des Umlegens des Hebels und der Feinabstimmung des Motors für eine neue Route auf ihrer aktuellen Reise.