90 lines
No EOL
3.7 KiB
Markdown
90 lines
No EOL
3.7 KiB
Markdown
# Drift Alarm Analysis
|
||
|
||
## Überblick
|
||
Das Experiment **drift_alarm_analysis** untersucht die Warnquote bei Drift-Checks innerhalb von Continuous Integration-Pipelines basierend auf historischen Daten. Ziel ist die nachvollziehbare Quantifizierung und Interpretation von Abweichungen (Drift) in automatisierten Modellerneuerungsprozessen.
|
||
|
||
**Link zum Artikel:** [Drift-Alarm: Einmal rückwärts gerechnet – welche Warnquote ist normal?](https://donau2space.de/tag-133-1713-drift-alarm-einmal-rueckwaerts-gerechnet-welche-warn-quote-ist-normal/)
|
||
|
||
**Git Repository:** [https://git.donau2space.de/Mika/drift_alarm_analysis](https://git.donau2space.de/Mika/drift_alarm_analysis)
|
||
|
||
### Hinweis
|
||
Alle Inhalte wurden per KI generiert.
|
||
|
||
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
|
||
|
||
## Inhalt des Repositories
|
||
Das Repository enthält drei Python-Skripte, die gemeinsam die Sammlung, Analyse und Berichterstellung zur Drift-Warnquote realisieren.
|
||
|
||
### 1. drift_analysis
|
||
- **Art:** Python-Skript
|
||
- **Zielsystem:** Linux-Userspace
|
||
- **Sprache:** Python
|
||
- **Zweck:** Analyse der Warnquote bei Drift-Checks basierend auf sogenannten Frozen-Runs.
|
||
|
||
**API-Funktionen:**
|
||
- `calculate_warn_rate(frozen_runs, threshold)` – Berechnet die Anzahl der Warnungen und die Gesamtzahl der Runs.
|
||
|
||
**Datenstrukturen:**
|
||
- `FrozenRun` (JSON) – Felder: run_id, status, is_pinned
|
||
|
||
### 2. report_generator
|
||
- **Art:** Python-Skript
|
||
- **Zielsystem:** Linux-Userspace
|
||
- **Sprache:** Python
|
||
- **Zweck:** Erzeugt einen Bericht über Warn- und Fehlerraten basierend auf Analyseergebnissen.
|
||
|
||
**API-Funktionen:**
|
||
- `generate_report(warn_count, total_runs, threshold)` – Erstellt einen Berichtspfad und gibt diesen zurück.
|
||
|
||
### 3. drift_data_collection
|
||
- **Art:** Python-Skript
|
||
- **Zielsystem:** Linux-Userspace
|
||
- **Sprache:** Python
|
||
- **Zweck:** Sammelt historische Frozen-Run-Daten für die Analyse.
|
||
|
||
**API-Funktionen:**
|
||
- `collect_frozen_runs(run_ids)` – Liest und aggregiert historische Laufdaten.
|
||
|
||
## Installation & Nutzung
|
||
Für den Einsatz ist eine Linux-Umgebung mit installiertem Python 3 erforderlich.
|
||
|
||
### Installation
|
||
1. Repository klonen:
|
||
- `git clone https://git.donau2space.de/Mika/drift_alarm_analysis`
|
||
2. In das Projektverzeichnis wechseln:
|
||
- `cd drift_alarm_analysis`
|
||
3. Abhängigkeiten installieren (falls vorhanden, z. B. in requirements.txt definiert):
|
||
- `pip install -r requirements.txt`
|
||
|
||
### Nutzung
|
||
Die Skripte werden direkt über die Kommandozeile ausgeführt.
|
||
|
||
#### Beispielausführung
|
||
- Daten sammeln:
|
||
- `python drift_data_collection.py --run-ids 1001 1002 1003`
|
||
- Analyse durchführen:
|
||
- `python drift_analysis.py --input frozen_runs.json --threshold 0.05`
|
||
- Bericht generieren:
|
||
- `python report_generator.py --analysis drift_results.json`
|
||
|
||
## Typische Use-Cases
|
||
- Überwachung der Stabilität von ML-Modellen in CI/CD-Umgebungen.
|
||
- Rückblickende Analyse von Drift-Ereignissen in Experimentreihen.
|
||
- Automatische Berichterstellung zur Modellgüte über Zeitverläufe.
|
||
|
||
## Struktur & Erweiterbarkeit
|
||
Das Repository ist modular aufgebaut:
|
||
|
||
- **Datenebene:** Sammlung von Frozen-Runs (`drift_data_collection`)
|
||
- **Analyseebene:** Warnquotenberechnung (`drift_analysis`)
|
||
- **Reporting-Ebene:** Ergebniszusammenfassung und Berichtsgenerierung (`report_generator`)
|
||
|
||
### Erweiterungspotenzial
|
||
- Integration weiterer Kennzahlen (z. B. Metriken zur Modellgüte).
|
||
- Anbindung an CI-Systeme zur automatischen Auswertung.
|
||
- Erweiterung des Reportgenerators um visuelle Ausgaben (Diagramme, HTML-Berichte).
|
||
|
||
## Lizenz
|
||
Dieses Projekt steht unter der **MIT Lizenz**.
|
||
|
||
Alle Inhalte wurden automatisch per KI generiert. Nutzung auf eigene Gefahr. |