Tests

Tests fördern die Machbarkeit eines Projekts. Es sind überprüfbare und reproduzierbare Hypothesen. Ziel beim Durchführen von Tests ist es, kontinuierliche, inkrementelle Verbesserungen durch die Bewertung einer Vielzahl von Modellarchitekturen und -features vorzunehmen. Beim Experimentieren sollten Sie Folgendes tun:

  • Ermitteln Sie die Basisleistung. Legen Sie zuerst einen Baseline-Messwert fest. Die Baseline dient als Messstock zum Vergleich der Tests.

    In einigen Fällen kann die aktuelle Nicht-ML-Lösung den ersten Referenzmesswert liefern. Wenn derzeit keine Lösung vorhanden ist, erstellen Sie ein ML-Modell mit einer einfachen Architektur und einigen Features und verwenden Sie seine Messwerte als Grundlage.

  • Nehmen Sie einzelne kleine Änderungen vor. Nehmen Sie jeweils nur eine einzige kleine Änderung vor, z. B. an den Hyperparametern, der Architektur oder den Features. Wenn das Modell durch die Änderung verbessert wird, dienen die Messwerte dieses Modells als neue Referenz für den Vergleich zukünftiger Tests.

    Im Folgenden finden Sie Beispiele für Tests, bei denen eine einzelne kleine Änderung vorgenommen wird:

    • Funktion X enthalten.
    • und 0,5 Dropout auf der ersten verborgenen Ebene verwenden.
    • nehmen wir die Log-Transformation des Features Y.
    • in 0,001 ändern.
  • Protokollieren Sie den Fortschritt der Tests. Sehr wahrscheinlich werden Sie viele Tests durchführen müssen. Tests mit schlechter (oder neutraler) Vorhersagequalität im Vergleich zur Referenz sind dennoch hilfreich zum Nachverfolgen. Sie signalisieren, welche Ansätze nicht funktionieren. Da der Fortschritt in der Regel nicht linear ist, ist es wichtig zu zeigen, dass Sie an dem Problem arbeiten, indem Sie alle Möglichkeiten hervorheben, die nicht funktionieren. Zusätzlich zu Ihren Fortschritten bei der Steigerung der Grundqualität.

Da jedes vollständige Training für ein reales Dataset Stunden (oder Tage) dauern kann, empfiehlt es sich, mehrere unabhängige Experimente gleichzeitig durchzuführen, um den Raum schnell zu erkunden. Mit zunehmender Iteration kommen Sie dem Qualitätsniveau, das Sie für die Produktion benötigen, hoffentlich immer näher.

Rauschen in Testergebnissen

Beachten Sie, dass in Testergebnissen Rauschen auftreten kann, die nicht auf Änderungen am Modell oder den Daten zurückzuführen ist. Dadurch lässt sich nur schwer feststellen, ob eine von Ihnen vorgenommene Änderung tatsächlich verbessert wurde. Die folgenden Situationen können in den Testergebnissen zu Rauschen führen:

  • Daten-Shuffle: Die Reihenfolge, in der dem Modell die Daten präsentiert werden, kann die Leistung des Modells beeinflussen.

  • Variableninitialisierung: Die Art und Weise, wie die Variablen des Modells initialisiert werden, kann sich auch auf die Leistung auswirken.

  • Asynchrone Parallelität: Wenn das Modell mit asynchroner Parallelität trainiert wird, kann sich auch die Reihenfolge, in der die verschiedenen Teile des Modells aktualisiert werden, auf seine Leistung auswirken.

  • Kleine Bewertungs-Datasets: Wenn das Bewertungs-Dataset zu klein ist, ist es möglicherweise nicht repräsentativ für die Gesamtleistung des Modells, was zu ungleichmäßigen Schwankungen in der Modellqualität führt.

Wenn Sie einen Test mehrmals ausführen, können Sie die Testergebnisse bestätigen.

Testpraktiken festlegen

Ihr Team sollte mithilfe von definierten Praktiken und Artefakten genau verstehen, was genau ein „Experiment“ ist. Sie benötigen eine Dokumentation, die folgende Punkte enthält:

  • Artefakte: Was sind die Artefakte für ein Experiment? In den meisten Fällen ist ein Experiment eine geprüfte Hypothese, die reproduziert werden kann. Dazu werden in der Regel die Metadaten (wie die Funktionen und Hyperparameter) protokolliert, die auf die Änderungen zwischen Tests und deren Auswirkungen auf die Modellqualität hinweisen.

  • Programmierpraktiken: Werden alle Nutzer ihre eigenen experimentellen Umgebungen verwenden? Wie möglich (oder einfach) ist es, die Arbeit aller in gemeinsam genutzten Bibliotheken zu vereinheitlichen?

  • Reproduzierbarkeit und Tracking: Was sind die Standards für die Reproduzierbarkeit? Beispiel: Sollte das Team dieselbe Datenpipeline und die gleiche Versionsverwaltung verwenden oder ist es in Ordnung, nur Diagramme zu zeigen? Wie werden experimentelle Daten gespeichert: als SQL-Abfragen oder als Modell-Snapshots? Wo werden die Protokolle aus jedem Test dokumentiert: in einem Dokument, einer Tabelle oder einem CMS zur Verwaltung von Tests?

Falsche Vorhersagen

Kein Modell aus der realen Welt ist perfekt. Wie geht Ihr System mit falschen Vorhersagen um? Denken Sie frühzeitig darüber nach, wie Sie damit umgehen können.

Eine Best-Practices-Strategie fordert Nutzer auf, falsche Vorhersagen korrekt zu kennzeichnen. In E-Mail-Apps werden beispielsweise falsch klassifizierte E-Mails erfasst, indem die E-Mails protokolliert werden, die Nutzer in den Spamordner verschieben und umgekehrt. Wenn Sie Ground-Truth-Labels von Nutzern erfassen, können Sie automatisierte Feedbackschleifen für die Datenerhebung und das erneute Trainieren von Modellen entwerfen.

Obwohl in UI eingebettete Umfragen Nutzerfeedback erfassen, sind die Daten in der Regel qualitativ und können nicht in die Daten für das erneute Trainieren integriert werden.

End-to-End-Lösung implementieren

Während Ihr Team mit dem Modell experimentiert, empfiehlt es sich, mit dem Aufbau von Teilen der endgültigen Pipeline zu beginnen (sofern Sie über die entsprechenden Ressourcen verfügen).

Wenn Sie verschiedene Teile der Pipeline einrichten, z. B. die Datenaufnahme und das erneute Trainieren von Modellen, ist es einfacher, das endgültige Modell in die Produktion zu bringen. Eine End-to-End-Pipeline zur Aufnahme von Daten und zur Bereitstellung von Vorhersagen kann dem Team beispielsweise dabei helfen, das Modell in das Produkt zu integrieren und erste Nutzertests durchzuführen.

Fehlerbehebung bei angehaltenen Projekten

Sie befinden sich möglicherweise in Szenarien, in denen der Fortschritt eines Projekts ins Stocken geraten ist. Vielleicht hat Ihr Team an einem vielversprechenden Experiment gearbeitet, hatte aber seit Wochen keinen Erfolg bei der Verbesserung des Modells. Was solltet ihr tun? Hier sind einige mögliche Ansätze:

  • Strategic (strategische Phase). Möglicherweise müssen Sie das Problem neu formulieren. Nachdem Sie einige Zeit in die Testphase investiert haben, verstehen Sie das Problem, die Daten und die möglichen Lösungen wahrscheinlich besser. Mit besseren Kenntnissen des Fachgebiets können Sie das Problem wahrscheinlich genauer formulieren.

    Vielleicht wollten Sie ursprünglich die lineare Regression verwenden, um einen numerischen Wert vorherzusagen. Leider waren die Daten nicht gut genug, um ein realisierbares lineares Regressionsmodell zu trainieren. Möglicherweise ergibt eine weitere Analyse, dass das Problem durch Vorhersage gelöst werden kann, ob ein Beispiel über oder unter einem bestimmten Wert liegt. Auf diese Weise können Sie das Problem als binäre Klassifizierung umformulieren.

    Wenn der Fortschritt langsamer ist als erwartet, geben Sie nicht auf. Inkrementelle Verbesserungen im Laufe der Zeit sind möglicherweise die einzige Möglichkeit, das Problem zu lösen. Wie bereits erwähnt, sollten Sie nicht von Woche zu Woche dieselbe Fortschritte erwarten. Das Abrufen einer produktionsreifen Version eines Modells erfordert oft viel Zeit. Die Modellverbesserung kann unregelmäßig und unvorhersehbar sein. Auf Phasen mit langsamem Fortschritt können Spitzen bei der Verbesserung folgen oder umgekehrt.

  • Technisch Nehmen Sie sich Zeit, falsche Vorhersagen zu diagnostizieren und zu analysieren. In einigen Fällen können Sie das Problem finden, indem Sie einige falsche Vorhersagen isolieren und das Verhalten des Modells in diesen Instanzen diagnostizieren. So können Sie z. B. Probleme mit der Architektur oder den Daten aufdecken. In anderen Fällen können mehr Daten hilfreich sein. Möglicherweise erhalten Sie ein klareres Signal, das darauf hinweist, dass Sie auf dem richtigen Weg sind, oder es erzeugt mehr Rauschen, was auf andere Probleme bei der Herangehensweise hindeutet.

    Wenn Sie an einem Problem arbeiten, bei dem Datasets mit menschlichen Labels erforderlich sind, ist es möglicherweise schwierig, ein Dataset mit Labels zur Modellbewertung abzurufen. Finden Sie Ressourcen, um die Datasets zu erhalten, die Sie für die Bewertung benötigen.

Vielleicht ist keine Lösung möglich. Setzen Sie einen Ansatz für einen Ansatz ein und halten Sie an, wenn Sie innerhalb des Zeitrahmens keine Fortschritte gemacht haben. Eine gute Problembeschreibung ist jedoch wahrscheinlich eine Lösung.