Testing & Debugging Flashcards
Welche 3 hauptbereiche müssen in AI-enabled Testing & Debugging abgedeckt sein
Errors and Testing Strategies
- ML-System Testing
- Model Testing
- SW System Testing
Nenne 5 Fragestellungen für ML System Testing
Errors and Testing Strategies
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
Nenne 4 Fragestellungen für Model Testing
Errors and Testing Strategies
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?
Nenne 4 Fragestellungen zum SW System Testing
Errors and Testing Strategies
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?
Definiere Testen
Errors and Testing Strategies
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.
Definiere Debugging
Errors and Testing Strategies
Prozess der Fehlersuche und -behebung
Im Wesentlichen zielen Tests darauf ab, das Debuggen überflüssig zu machen
Beschreibe die Best Practice für Pipeline / ML System Testing
Errors and Testing Strategies
- Starte mit wenigen Samples
- Gehe alle steps durch
- 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
Welche drei Hauptfehlerarten können bei Pipeline Testing entstehen?
Gehe auf Feinheiten ein.
Errors and Testing Strategies
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
Nenne Data Testing Elemente
Errors and Testing Strategies
- 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
Was ist das Ziel von Pipeline Testing innerhalb von ML System Testing?
Errors and Testing Strategies
Goal: Increase confidence in the correctness of the whole training process
Was zählt alles unter ML System Testing? Zähle auf was getestet werden muss.
7
Errors and Testing Strategies
Alle Komponenten des ML-Systems
- preprocessing
- storage
- labelling
- feature store
- model server
- pipeline
- experiment
Wie wird Pipeline Testing im Best Practice Falls ausgeführt.
5
Errors and Testing Strategies
- 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
Was ist “Data Racing” und für was ist es eine Gefahr?
Errors and Testing Strategies
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.
Nenne 3 Methoden, Tests reproduzierbar zu machen
Errors and Testing Strategies
- Fixe Seeds
- Minimiere Data Races
- Definiere Initialisierungs Reihenfolge von Daten eindeutig
Was ist Canary Deployment?
Errors and Testing Strategies
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.
ML System Testing: Pipeline Testing
Was sollte getestet werden?
Nenne Beispiele
Errors and Testing Strategies
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