Testing & Debugging Flashcards

1
Q

Welche 3 hauptbereiche müssen in AI-enabled Testing & Debugging abgedeckt sein

Errors and Testing Strategies

A
  1. ML-System Testing
  2. Model Testing
  3. SW System Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Nenne 5 Fragestellungen für ML System Testing

Errors and Testing Strategies

A

Are the steps correctly implemented?
Are the steps correctly connected?
Is the order correct?
Are all steps actually executed?
Are caches invalidated if needed?

Data Pipeline

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Nenne 4 Fragestellungen für Model Testing

Errors and Testing Strategies

A

Is the model capable of learning the target? Is the model improving on more data?
Are the features expressive enough?
Is there data leakage in the model?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nenne 4 Fragestellungen zum SW System Testing

Errors and Testing Strategies

A

Does the model achieve the goal?
Is the generalization error close to the validation error?
Are there similar classes than for training?
Is the feedback loop working?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Definiere Testen

Errors and Testing Strategies

A

Prozess der Überprüfung, ob die Anwendung bestimmte Eigenschaften oder eine Spezifikation erfüllt; Ziel ist es, das Vertrauen in die korrekte/erwartete Funktionsweise der Anwendung zu stärken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definiere Debugging

Errors and Testing Strategies

A

Prozess der Fehlersuche und -behebung

Im Wesentlichen zielen Tests darauf ab, das Debuggen überflüssig zu machen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Beschreibe die Best Practice für Pipeline / ML System Testing

Errors and Testing Strategies

A
  1. Starte mit wenigen Samples
  2. Gehe alle steps durch
  3. Trainiere das Model

Verifiziere:
- Ingested Data ist korrekt transformiert
- Das Model kann die Input Daten verarbeiten
- Das Modell improved nach Training (Overfitting)

An jedem Schritt:
- Inspiziere & visualisiere Daten
- Habe eine klare Erwartung an jeden Schritt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche drei Hauptfehlerarten können bei Pipeline Testing entstehen?

Gehe auf Feinheiten ein.

Errors and Testing Strategies

A

Datenfehler
- Format
- Non-Normalized, während Normalisierung erforderlich
- Falsche Feature Extraction
- 0-Values, Dropped Data, Wrong Replacements

Pipeline Errors
- Veraltete Daten (ohne mitzubekommen)
- Datenquellen nicht erreichbar
- Server nicht erreichbar
- Non-Functional Properties nicht erfüllt

Evolutionary Changes
- Formatänderung nicht geupdated
- Alte Hyperparameter
- Feedback-Cycle nicht angepasst nach UI Änderungen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nenne Data Testing Elemente

Errors and Testing Strategies

A
  • Datenschema (Genaue Schemaangabe, Format-Test, Range-Test, Verteilungstest)
  • Feature Independece (Variation-Inflation-Factor, Correlations
  • Maintainance (inference Time, RAM, …)
  • Privacy & Fairness Tests
  • tests for Deletion Requests
  • every feature must contain a test, which checks if it is correctly constructed from raw-data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist das Ziel von Pipeline Testing innerhalb von ML System Testing?

Errors and Testing Strategies

A

Goal: Increase confidence in the correctness of the whole training process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was zählt alles unter ML System Testing? Zähle auf was getestet werden muss.

7

Errors and Testing Strategies

A

Alle Komponenten des ML-Systems

  • preprocessing
  • storage
  • labelling
  • feature store
  • model server
  • pipeline
  • experiment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie wird Pipeline Testing im Best Practice Falls ausgeführt.

5

Errors and Testing Strategies

A
  • Modularisieren des Trainingsprozesses in verschiedenen Schritten (oder Module), um modulares Denken, modulares Testen und die Fehlerlokalisierung zu verbessern
  • Schreiben Sie Unit-Tests für jeden Schritt und simulieren der Eingaben anderer Schritte (sorgen Sie für korrektes, deterministisches Eingabe-Ausgabe-Verhalten)
  • Verwenden Sie für das Training einen kleinen Trainingssatz mit sehr begrenzter Trainingszeit und Ressourcen und überprüfen Sie den Prozess
  • Verwenden Sie für die Reproduzierbarkeit ein festes Szenario (d. h. Startwerte für beliebige zufällige Eingaben) und überprüfen Sie, ob das Ergebnis gleich bleibt
  • Führen Sie diese Tests häufig in Continous-Integration Step aus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist “Data Racing” und für was ist es eine Gefahr?

Errors and Testing Strategies

A

Data Races (Datenrennen) treten in parallelen oder mehrthreadigen Programmen auf, wenn mehrere Threads gleichzeitig auf denselben Speicherbereich zugreifen, und mindestens einer der Zugriffe ein Schreibvorgang ist, ohne dass eine ordnungsgemäße Synchronisation zwischen den Threads gewährleistet ist. Das führt dazu, dass der Endzustand der Daten unvorhersehbar ist, da die Reihenfolge der Ausführungen von Lese- und Schreiboperationen nicht bestimmt werden kann.

Es gefährdet die Reproduzierbarkeit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Nenne 3 Methoden, Tests reproduzierbar zu machen

Errors and Testing Strategies

A
  • Fixe Seeds
  • Minimiere Data Races
  • Definiere Initialisierungs Reihenfolge von Daten eindeutig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist Canary Deployment?

Errors and Testing Strategies

A

Veröffentlichung der neuen Version für einen kleinen Benutzeranteil: Die neue Version wird nur für einen kleinen Teil der Benutzer (z.B. 5-10%) bereitgestellt, während die Mehrheit weiterhin die alte Version verwendet.
Überwachung: Die Leistung der neuen Version wird sorgfältig überwacht, um sicherzustellen, dass sie wie erwartet funktioniert.
Schrittweise Erhöhung: Wenn keine Probleme festgestellt werden, wird der Anteil der Benutzer, die die neue Version nutzen, schrittweise erhöht.
Rollback bei Problemen: Falls Probleme erkannt werden, kann der neue Release schnell zurückgenommen werden, und die Mehrheit der Benutzer bleibt davon unberührt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

ML System Testing: Pipeline Testing

Was sollte getestet werden?
Nenne Beispiele

Errors and Testing Strategies

A

Reproduzierbare Resultate:
Teste einen gegebenen Pipeline-Run und nutze deterministische Metriken

Teste Bibliotheken
Implementiere Unit-Tests, in denen nur eine einzelne Epoche trainiert wird mit zufälligen Werten -> Überprüfe auf Bugs, Crashes, Misusage

Teste Deployment
Nutze Canary Deployment oder Shadow Deployment und teste dabei, ob die Software und das Model problemlos zusammenarbeiten (interoperabel sind)

Unit Tests der Prozesse
Für jeden Zwischenschritt sollten typische Fehler getestet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was sind typische Fehler für Zwischenschritte innerhalb des ML System Pipeline Testing

8

Errors and Testing Strategies

A
  • presence/absence of data/values/features
  • type correctness
  • format
  • data distribution
  • null values
  • normalization
  • scale
  • ranges
18
Q

Was ist Adversarial Data Attack and Data Poisoning Attacks

Wann kann sie stattfinden?

Errors and Test Strategies

A

(1) Wenn öffentliche Daten benutzt werden oder wenn pretrained Models benutzt werden, kann es sein, dass diese bewusst mit Daten trainiert wurden, die eine Backdoor zulassen.

19
Q

Was zeigt eine Kalibrationskurve in der Modellbewertung und wie kann man sie anhand eines Beispiels interpretieren?

Model Debugging

A

Eine Kalibrationskurve zeigt, wie gut die vom Modell vorhergesagten Wahrscheinlichkeiten mit den tatsächlichen Klassifikationsergebnissen übereinstimmen.

Ein gut kalibriertes Modell sollte für jede vorhergesagte Wahrscheinlichkeit (z.B. 0.7) in etwa den gleichen Anteil korrekt klassifizierter Proben (z.B. 70 %) liefern.

Das heißt: im Intervall [0.7 , 0.8] mit durchschnittlichem Wert 0.75, sollten in 100 Proben ca. 75 Proben die vorhergesagte Klasse haben und 25 Proben die nicht vorhergesagte Klasse.

20
Q

Wie kann man das Model debuggen? Nenne 7 Methoden.

Model Debugging

A
  • Calibration Curves
  • Top-K Methods
  • Clustering
  • Feature Importance
  • Black-Box Feature Importance
  • Error Analysis
  • Debug with Metrics and Indicators
21
Q

Was ist die Model Debugging Methode “Top-K Methode”?

Model Debugging

A

Inspiziere die Daten und Ergebnisse der Top-K Ergebnisse:
- Top-k Best Samples
Finde Gemeinsamkeiten in der Verteilung, Feature Ausprägungen, …

- Top-k Worst Samples
Finde konfidente aber fehlerhafte Vorhersagen, überprüfe auf falsche Trainingsdaten oder Minderheitengruppen

- Top-k Most Uncertain Samples (0.5)
Nutze Calibration Curves, vergleiche mit anderen Daten -> Falsche Trainingsdaten? Sehr schwierig zu lösende Fälle?

22
Q

Was ist innerhalb des Model Debuggings die Methode “Feature Importance”?

Model Debugging

A

Es soll herausgefunden werden, welche Features besonderen Einfluss auf die Performance haben. Dafür lässt man gewisse Features aus und evaluiert / vergleicht

Sind manche Features wichtiger?
Gibt es versteckt Data Leackage?

23
Q

Was ist innerhalb des Model Debuggings die Methode “Black-Box Feature Importance”?

Model Debugging

A

Local Interpretable Model-Agnostic Explanations (LIME)

-> Funktioniert vielleicht besser, ist aber Black-Box

24
Q

Was ist innerhalb des Model Debuggings die Methode “Error Analysis”?

Model Debugging

A

Bereichere die Ausgabe Daten mit relevanten Informationen / Indikatoren, welche beim Debugging relevant sein könnten:

Beispiele:
Images: resolution, saturation, …
Code: Method Calls, statements, loops, ..
Recommender: demographics, product category

Analysiere dann, welche Indikatoren zu falschen Ergebnissen führen

25
Q

Fokussiere Debugging für Improvement:

Wie kann gewährleistet werden, dass auch am richtigen Punkt versucht wird zu debuggen?

Model Debugging

A

Fokussiere auf Fehlerkategorien mit größter Verbesserung:

Fokussiere dich auf Fehlerkategorien, die viel Raum für Improvement haben. Achte dabei auch auf:
- Wichtigkeit der Kategorie
- Geschätzter Aufwand für Verbesserung

Beispiel:
Speech Recognition:
Background Noise: 89% Accuracy & 10% of Data
Low Audio Quality: 72% Accuracy & 25% of Data

-> Low Audio Quality könnte relevanter zu debuggen sein, da es häufiger vorkommt und weniger Accuracy hat
-> Geschätzter Aufwand unbekannt

26
Q

Erkläre wie man eine schlechte Accuracy debuggen könnte

4 Schritte + Alternative

Model Debugging

A
  1. Erkunde N zufällige FP & FN
  2. Dokumentiere die Gründe für Fehlklassifikation (Kategorisiere sie)
  3. Schreibe Anzahl pro Grund auf
  4. Gehe in den Trainingsdatensatz zurück und verstehe die Fehler

Alternative: Gehe auf die Worst FP & FN statt random

27
Q

Wie kann sichergestellt werden, dass das Model auch mit echten Daten gut performt

Testing

A

Nutze einen Hold-out Testset, welcher nicht für das Training / Validation oder Evaluation innerhalb der Trainingsphase verwendet wird.

28
Q

Welche Annahmen muss ein Hold-out Testset erfüllen

3

Testing

A
  • Datenverteilung stimmt mit der gesamten Population überein
  • Evaluationsmetriken ähneln dem Real-World Impact auf das Model
  • Wir wissen, wie wir das Model evaluieren können (Tiefe Verständnis des Kontextes und des Systems wichtig - Anderseits wissen wir nicht, wie ein Hold-out Testset aufgebaut sein muss)
29
Q

Welche Tools / Methoden können verwendet werden, um herauszufinden, welche problematischen Teilmengen besonders fehleranfällig sind?

Testing

A
  • What-If Tool von Google zum interaktiven Untersuchen von Teilmengen
  • SliceFinder zum Finden von problematischen Teilmengen mit schlechter Performance
30
Q

Wann ist der durchschnittliche Fehler ungeeignet?

Testing

A

Wenn es innerhalb der Daten, wichtigere und unwichtigere Teilmengen gibt (Krebs)

31
Q

Was gilt es bei geschützten Attributen wie Geschlecht, Alter, etc. zu beachten?

Testing

A

Über alle geschützten Attribute sollte die Fehlerrate gleich sein, sodass keine Unfairness entsteht.
siehe: KI für Behandlungsempfehlung Amerika

32
Q

Nenne Methoden, um unfaire Performances über geschützte Attritbute (Alter, Geschlecht, ..) und generell ungleich verteilte Performance über verschiedene Teilmengen der Daten zu beheben.

2

Testing

A
  • Nutze Fehlerverstärkung für wichtige Proben
  • Wende Over- & Undersampling an
33
Q

Was ist das Problem bei stark verzerrten Datendomains? (e.g. 99% No, 1% Yes)

Testing

A

Ein sehr guter Klassifikator für solch ein Problem wäre ein Model, welches immer “Nein” zurückgibt, da es dann eine 99% Accuracy hätte.

Daher muss hier verstärkt mit Under- / Oversampling und gesonderten Penalties für wichtige Proben gearbeitet werden.

34
Q

Was sind Behavior Tests und welche 3 Möglichkeiten gibt es?

Testing

A

Behavior Tests testen auf erwartete Invarianzen.

Invarianztests: Überprüfen Sie, dass sich das Modell nicht ändert, wenn sich die Eingabe leicht ändert, ohne dass ein semantischer Unterschied auftritt

Directional Test: Negativieren des Inputs sollte den Output auch ändern.

Funktionalitätstest: Teste, ob ein vorher definierter Input, einen erwarteten Output erzeugt.

35
Q

Was ist Model Robustness Testing? Welche vier Anwendungsmöglichkeiten gibt es?

Testing

A

How robust / sensitive is the model, when there variables or data changes in certain situations.

Against Features: Test performance while some features are out of range

Against Staleness: Test performance while data gets outdated

Against Drift Sensitivity: Test different data distributions

Against Adversial Attacks: Test against adversial examples

36
Q

Nenne 8 Unit Test Best Practice für das SW System

Testng

A

Independence: Unit-Tests sollen unabhängig voneinander ausführbar sein, ohne Abhängigkeiten zu anderen Tests.

Repeatability: Ein Test soll ohne Vorwissen oder Kenntnis des Systemzustands ausgelöst werden können.

Automation: Tests sollen so geschrieben werden, dass sie in eine Automatisierungspipeline integriert werden können.

Isolation: Abhängige Komponenten/Module sollen durch Mocking mit festen Werten ersetzt werden, um nur die zu testende Einheit zu prüfen.

Informative: Tests dokumentieren den Code und beschreiben, wie er verwendet wird. Informative Namen und Kommentare sind wichtig.

Comprehensive: Nicht nur häufige Anwendungsfälle testen, sondern auch Randfälle und Grenzwerte.

Performant: Unit-Tests sollen schnell ausführbar sein, um sie häufig und in großer Zahl auszuführen.

Behavior format: Verwende für deine Tests die Struktur: “Given a context, When event/condition, Then test property/result”.

37
Q

Was ist das Ziel eines Integrationstest. Beschreibe den generellen Approach dabei.

Testing

A

Erhöhe die Konfidenz, dass der Code für die SW keine Bugs beinhaltet oder die Performance des Models verschlechtert

Approach:
1. Schreibe Unit Tests für das umliegende System
2. Nutze ein festes Input/Output Testszenario mit bekannten Resultat und wende es auf das Model an
3. Wenn das Resultat nicht übereinstimmt im Testlauf, muss es auf den Code zurückzuführen sein

38
Q

Was sind Simulationstests? Beschreibe Ziel und Ausführung

Testing

A

Simulationstests testen, wie die Model Performance das Software System beeinflusst.

Approach
1. Aktionen der umliegenden Software werden simuliert.
2. Die KI-Komponente wendet performt dann innerhalb dieser Simulation
3. Das SW System arbeitet weiter mit den Output der KI-Komponente

39
Q

Canary Deployment

A

Deploy the model only for a tiny subset of users (e.g., 1%) and monitor its performance and the subsequent impacts (e.g., user behavior); regularly increase the subset of users

40
Q

A/B Testing

A

Deploy a model, but activate it only for a subset of requests (generalizes canary deployment); compare results with the current model and switch to the new model only if it meets/outperforms the current model; goal is to understand the users’ reactions or the impact on the business value based on the new model

41
Q

Shadow models

A

Receive all the data of the currently deployed models, but use them only internally until one has gained enough trust in them

42
Q

Was versteht man unter SW System Auditing

A

Revisiere das SW System mit KI-Komponente:

Brainstorm how the system can go wrong:
- Include all Tech
- Beachte Segmente (Gerätetypen)
- Beachte Fairness
- Beachte Data Skew
- Beachte seltene Events

Etabliere Test Cases und Metriken für extrahierte Probleme:
- Selektiere interessante Daten
- Führe dort gesonderte Tests aus