45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
# ML Training- und Evaluations-Workflow
|
|
|
|
Dieser Workflow beschreibt den aktuellen Platzhalter für Modell-Metadaten,
|
|
Evaluation und Serving. Er trainiert in Version 0.1.0 noch kein statistisches
|
|
Modell.
|
|
|
|
## 1. Daten sammeln
|
|
|
|
Alle Trainingsvektoren werden über `FeatureStore.add(...)` oder `add_batch(...)` eingepflegt. Jeder Vektor enthält eine Sensor-ID sowie ein Dictionary mit Merkmalen.
|
|
|
|
## 2. Artefakt-Metadaten erzeugen
|
|
|
|
```python
|
|
store = FeatureStore()
|
|
store.add(FeatureVector(sensor_id="sensor.kitchen", values={"temperature": 21.0}))
|
|
pipeline = TrainingPipeline(store)
|
|
artifact = pipeline.run("my_artifact")
|
|
pipeline.export("my_artifact")
|
|
```
|
|
|
|
`TrainingPipeline.run(...)` erzeugt ein `TrainedArtifact` mit den unterstützten
|
|
Sensor-IDs. Gewichte, Parameter oder ein echtes Modell werden noch nicht
|
|
berechnet.
|
|
|
|
## 3. Modell evaluieren
|
|
|
|
```python
|
|
evaluator = Evaluator(pipeline)
|
|
report = evaluator.evaluate(artifact.artifact_id, predictions)
|
|
```
|
|
|
|
Der Report enthält:
|
|
- `artifact_id`
|
|
- `sample_size`
|
|
- Metriken wie `coverage` und `unknown_rate` mit Default-Schwellenwerten
|
|
|
|
## 4. Modell registrieren
|
|
|
|
Das trainierte Artefakt kann anschließend über `ModelRegistry.register(artifact)` bereitgestellt werden. Die ML-Serving-API stellt es unter `/ml/predict` und `/ml/batch` zur Verfügung.
|
|
|
|
## Hinweise
|
|
- Für reproduzierbare Sensor-Reihenfolgen wird in `TrainingPipeline.run(...)` eine sortierte Sensor-Liste verwendet.
|
|
- Fehlende Trainingsdaten lösen `ValueError` aus; nicht registrierte Artefakte lösen `KeyError` aus.
|
|
- `coverage` zählt nur exakte Sensor-Referenzen und bleibt im Bereich 0 bis 1.
|