BDGERS: Untersuchung der Robustheit künstlicher Intelligenz durch Fehlerinjektion
Wie testet man KI-Systeme und warum können schlechte Daten helfen? In diesem Blogbeitrag spricht unser KI-Experte Dr. Julien Siebert nutzt Bug-Injection mit unserer Badgers-Bibliothek, um KI-Systeme zu testen.
Folgen schlechter Datenqualität
Datenqualitätsprobleme sind eine zentrale Herausforderung bei der Entwicklung und Bereitstellung von KI- und ML-Anwendungen. Ungenaue, unvollständige oder inkonsistente Daten können zu falschen Ergebnissen führen. Daher ist es wichtig, dass das System in der Lage ist, mit diesen Unzulänglichkeiten umzugehen. Fehlerinjektion, also die bewusste Einführung von Fehlern in ein System zur Bewertung seiner Robustheit, ist eine wichtige Methode zur Bewertung, wie gut KI/ML-Anwendungen mit realen Datenproblemen umgehen.
Fehlerinjektionspotenzial
Die Bedeutung der Fehlerinjektion liegt in ihrer Fähigkeit, potenzielle Schwachstellen in KI-/ML-Systemen aufzudecken, bevor sie in kritischen Umgebungen eingesetzt werden. Und nur ein methodischer Ansatz kann dazu beitragen, die Zuverlässigkeit und Stabilität dieser Systeme unter widrigen Bedingungen sicherzustellen. Es ist jedoch eine schwierige Herausforderung, Fehler zu erzeugen, die die Komplexität der realen Welt genau widerspiegeln. Es erfordert ein tiefes Verständnis der spezifischen Domäne und Funktionalität des Systems, das die Daten erzeugt.
Ursache für Datenqualitätsprobleme
Datenqualitätsprobleme können bei der Datenerfassung oder im System selbst auftreten. Messungen können ungenau sein, Daten können verloren gehen oder verändert werden und Einschränkungen bei der Datenerfassung können zu unvollständigen Datensätzen führen. Das System selbst kann ausfallen, die Umgebung kann sich ändern oder es können Unterschiede in der Art und Weise der Systemnutzung auftreten.
Erstellen Sie Probleme mit der Datenqualität
Fehler, die sich aus dem Datenerfassungsprozess ergeben, können relativ leicht generiert werden, da sie weitgehend unabhängig vom Systembetrieb sind. Grundsätzlich können solche Fehler zu bestehenden Daten hinzugefügt werden. Also zum Beispiel B. weißes Rauschen hinzugefügt werden, oder Werte zufällig gelöscht werden.
Fehler, die aus Änderungen am System selbst resultieren, sind schwieriger zu generieren, da sie ein Verständnis der Funktion und Datengenerierung des Systems erfordern. Dieses Verständnis des zugrunde liegenden Systems kann von Fachexperten oder aus der Theorie (dh der Physik des Systems) stammen. Das Problem besteht darin, dass auf ML/KI basierende Softwarekomponenten genau dann zum Einsatz kommen, wenn dieses tiefe Verständnis fehlt. Dann gibt es nur Daten, aber keine/wenig Theorie darüber, wie die Daten entstanden sind (siehe auch unseren Blogbeitrag zu diesem Thema: Datenqualität und Kausalität).
Dachse: AlsoD DTür GeIch werdeRs
Unsere Open-Source-Badgers-Bibliothek (Code: Dokumentation) dient zwei Hauptzwecken:
- Erfassen Sie den Status der Generierung von Datenqualitätsmängeln und stellen Sie ihn über eine einfache API zur Verfügung.
- Bieten Sie eine einfache Möglichkeit, systematische ML-basierte Komponentenrobustheitstests durchzuführen.
Das Grundprinzip der Badgers-Bibliothek besteht darin, vorhandene Daten durch die Einführung von Datenqualitätsfehlern wie Ausreißern, Rauschen, fehlenden Werten, Drift usw. zu transformieren.
Das Herzstück der Badgers-Bibliothek sind die sogenannten Objektgeneratoren. Sie sind nach Datentyp (Modalität) und Datenqualitätsproblem geordnet. Jeder Generator implementiert eine Generierungsfunktion generate(X,y)
Merkmale X
und Tags (oder Ziele) y
übernimmt als Eingabe und geänderte Daten X_transformed
und Etiketten y_transformed
zurückkehren
Der folgende Code zeigt beispielsweise, wie Ausreißer aus Tabellendaten erstellt werden:trf = LowDensitySamplingGenerator(n_outliers=10, threshold_low_density=0.25)
outliers, _ = trf.generate(X.copy(), y, max_samples=100)
Die Bibliothek befindet sich derzeit im Aufbau. Einfache, aber wirksame Rezepte zur Erstellung von Qualitätsproblemen in verschiedenen Modalitäten (tabellarische Daten, Zeitreihen, Text, Grafiken) sind bereits etabliert. Mehrere Tutorials sind hier verfügbar:
Mehr zum Thema Kausalität und Datenqualität:
Referenzen
Siebert, Julien et al. „Badger: Mit Python Datenqualitätsdefizite erzeugen.“ arXiv-Vorabdruck arXiv:2307.04468 (2023).
Siebert, Julien et al. „Aufbau eines qualitativen Modells für maschinelle Lernsysteme.“ Zeitschrift für Softwarequalität 30.2 (2022): 307-335.
Siebert, Julien et al. „Auf dem Weg zu Richtlinien zur Bewertung der Qualitäten maschineller Lernsysteme“. Qualität in Informations- und Kommunikationstechnologien: 13. Internationale Konferenz, QUATIC 2020, Faro, Portugal, 9.–11. September 2020, Tagungsband 13. Springer International Publishing House, 2020.