feature(notes): add final l5 notes
This commit is contained in:
@@ -460,3 +460,128 @@ sns.boxplot(x=scores)
|
|||||||
- **mean** → durchschnittliche Performance.
|
- **mean** → durchschnittliche Performance.
|
||||||
- **std** → **Stabilität** des Learners: wie stark hängt die Performance von der zufälligen Datenaufteilung (random_state) ab.
|
- **std** → **Stabilität** des Learners: wie stark hängt die Performance von der zufälligen Datenaufteilung (random_state) ab.
|
||||||
- **kleine std = stabileres** Resultat der Methode.
|
- **kleine std = stabileres** Resultat der Methode.
|
||||||
|
|
||||||
|
# ML OPs (Foliensatz 15)
|
||||||
|
|
||||||
|
## Hauptaufgaben
|
||||||
|
|
||||||
|
1. Entwicklung der Modelle
|
||||||
|
2. Vorbereitung für die Produktion
|
||||||
|
3. Bereitstellen in der Produktion
|
||||||
|
4. Überwachungs- und Rückkopplungsschleife
|
||||||
|
5. Modellsteuerung
|
||||||
|
|
||||||
|
## Modelle Entwickeln
|
||||||
|
|
||||||
|
- Ein ML-Modell ist eine Projektion der Realität
|
||||||
|
- Partielle und annähernde Darstellung einer realen Sache oder Prozesses
|
||||||
|
- ML-Modelle reduzieren sich nach dem Training auf eine mathematische Formel
|
||||||
|
- liefert bei Eingabe bestimmter Parameter ein Ergebnis
|
||||||
|
- ein ML-Modell ist
|
||||||
|
- Die Menge der Parameter die zum Wiederaufbau und zur Anwendung der Formel erforderlich sind
|
||||||
|
- Zustandslos und determisnistisch
|
||||||
|
|
||||||
|
### Erforderliche Komponenten
|
||||||
|
|
||||||
|
- Trainingsdaten
|
||||||
|
- Datensatz fürs Modelltraining
|
||||||
|
- Leistungskennzahl
|
||||||
|
- Was versucht das Modell zu optimieren?
|
||||||
|
- ML-Algorithmus
|
||||||
|
- Priorität auf Leistung, Stabilität, Interpretierbarkeit und Rechenkosten
|
||||||
|
- Hyperparameter
|
||||||
|
- Konfigurationen für die ML-Algorithmen, quasi das Feintuning
|
||||||
|
- Auswertungsdaten
|
||||||
|
- Unterscheided sich vom Trainingsdatensatz und wird verwendet um zu bewerten
|
||||||
|
|
||||||
|
### MLOps Überlegungen nach Alorithmustyp
|
||||||
|
|
||||||
|
> Wichtig ist sich den Limitationen aller Algorithmen bewusst zu sein
|
||||||
|
|
||||||
|
- Linear
|
||||||
|
- Regression (linear und logistisch)
|
||||||
|
- Tendiert zu Overfitting!
|
||||||
|
- Baumbasiert
|
||||||
|
- Entscheidungsbaum
|
||||||
|
- kann instabil sein, kleine Anpassungen führen zu grossen Veränderungen
|
||||||
|
- Random Forest
|
||||||
|
- vorhersagen können schwer verständlich sein, und sind langsam
|
||||||
|
- Gradientenboosting
|
||||||
|
- auch schwer verständlich, sensitiv auf kleine Änderungen im Modell
|
||||||
|
- Tiefgründiges lernen
|
||||||
|
- Neuronale Netzwerke
|
||||||
|
- nahezu unmöglich zu versthen, training extrem langsam
|
||||||
|
|
||||||
|
### Versionverwaltung
|
||||||
|
|
||||||
|
- Unerlässlich, besonders für Audits
|
||||||
|
- Es muss auch später klar sein wann welches Modell wo im Einsatz war
|
||||||
|
- Modelle müssen reproduzierbar sein!
|
||||||
|
- Daher muss klar nachvollziehbar sein wie ein Modell zu stande kam
|
||||||
|
- Ergebnisse
|
||||||
|
- Implementierung
|
||||||
|
- Umgebung
|
||||||
|
|
||||||
|
## Vorbereitung für die Produktion
|
||||||
|
|
||||||
|
### Laufzeitumgebung
|
||||||
|
|
||||||
|
- Modell Pipeline
|
||||||
|
- Werkzeuge müssen während der Modellentwicklung eingerichtet werden
|
||||||
|
- Reproduzierbarkeit und Versionskontrolle beachten!
|
||||||
|
|
||||||
|
### Modellrisikobewertung
|
||||||
|
|
||||||
|
- Was wenn sich das Modell auf die denkbar schlechteste Weise verhält?
|
||||||
|
- Worst Case Szenario abbilden
|
||||||
|
- Was wenn es dem Benutzer gelingt die Trainingsdaten oder die interne Logik zu extrahieren?
|
||||||
|
- Risikoabschätzung, im Wesentlichen folgendes
|
||||||
|
- Fehler, Irrtümer beim Entwurf oder Training
|
||||||
|
- Fehler im Laufzeit-Framework
|
||||||
|
- Geringe Qualität der Trainingsdaten
|
||||||
|
- Unterschied Trainingsdaten und Produktionsdaten (zu gross)
|
||||||
|
- Missbrauch des Modells
|
||||||
|
- Gegnerische Angriffe
|
||||||
|
- Rechtliches Risiko
|
||||||
|
|
||||||
|
## Bereitstellunge in der Produktion
|
||||||
|
|
||||||
|
### CI/CD Pipelines
|
||||||
|
|
||||||
|
1. Modell erstellen
|
||||||
|
- Artefakte erstellen
|
||||||
|
- ins Artifactory pushen
|
||||||
|
- Überprüfungen (Rechtliches etc.)
|
||||||
|
2. Bereitstellung in Testumgebung
|
||||||
|
- Tests durchführen, ML Leistung und Rechenleistung validieren
|
||||||
|
- Manuelle Validierung
|
||||||
|
3. Bereitstellung in Produktion
|
||||||
|
- Modell vollständig implementieren
|
||||||
|
|
||||||
|
### Überwachungs und Rückkopplungsschleife
|
||||||
|
|
||||||
|
- Wie oft sollten Modelle neu trainiert werden?
|
||||||
|
- kommt aufs Modell drauf an
|
||||||
|
- Entscheidungsgrundlagen
|
||||||
|
- Bereich
|
||||||
|
- In Cybersicherheit und Echtzeitverarbeitung regelmässig aktualisieren
|
||||||
|
- Spracherkennung bspw. stabiler
|
||||||
|
- Kosten
|
||||||
|
- Lohnt es sich?
|
||||||
|
- Leistungsfähigkeit des Modells
|
||||||
|
|
||||||
|
### Modellverschlechterung
|
||||||
|
|
||||||
|
- Sobald das Modell in Produktion ist gibt es zwei wichtige Kennzahlen
|
||||||
|
- Bewertung der Realität
|
||||||
|
- man wartet einfach bis was passiert
|
||||||
|
- berechnung der Leistung des Modells auf basis tatsächlicher Werte
|
||||||
|
- wenn Differenz den Schwellenwert überschreitet, muss das Modell neu trainiert werden
|
||||||
|
- Eingangsdrifterkennung
|
||||||
|
- Eine Abweichung der Datenverteilung zwischen Trainings- und Testphase
|
||||||
|
- Problem: Leistung des Modells in Produktion nicht gleich wie in Training
|
||||||
|
- Mögliche Ursachen:
|
||||||
|
- Verzerrung durch Stichprobenauswahl
|
||||||
|
- Saisonalität
|
||||||
|
- Nicht-Stationäre Umgebgung
|
||||||
|
- Erkennung: Mit statistischen Tests
|
||||||
|
|||||||
Reference in New Issue
Block a user