Unblock objective Belgian training loop
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-29 15:31:55 +02:00
parent a5980127b9
commit e8530ae476
5 changed files with 92 additions and 7 deletions
+38
View File
@@ -11747,3 +11747,41 @@ Deployment evidence:
- Repeated the live landing, guest bootstrap, map navigation and quality
navigation against `http://192.168.10.150:1202`; the inspected live flow
produced no browser-console errors.
## 2026-07-29 - V36 assessment and objective-loop repair
- Audited the current Tower evidence rather than relying on the earlier v6
checkpoint. The governed v30 rotated-holdout corpus contains 124 samples,
21,830 accepted labels, zero temporal-unknown samples, an immutable manifest
and no spatial leakage. Its split composition exceeds the frozen regional
minima and protected samples remain outside training.
- Assessed the completed YOLO11x v36 checkpoint calibration-first on the RTX
4080. At the selected threshold `0.10`, aggregate F1 is `0.552`, Brussels F1
is `0.662`, Wallonia F1 is `0.532`, and Flanders F1 is `0.265`. The candidate
failed Flanders F1/precision/recall and Wallonia precision, so test and
background evidence were not opened and the production model was unchanged.
- Built checksummed v37 failure-driven sampling from that rejection: 3,900
train entries across 94 train AOIs, with extra Flanders recall and
Flanders/Wallonia precision evidence. The sampling audit records zero
protected samples in training.
- Started the inactive v37 YOLO11x fine-tune on Tower CUDA device 0 with
deterministic seed `20260806`, `max_det=1000`, AdamW and aerial rotation
augmentation. NVIDIA process evidence confirmed GPU execution.
- Corrected a loop deadlock: an automatically clean corpus awaiting the final
human review has status `needs_human_review`, while the orchestrator formerly
required `ok`. Training now accepts that status only when the manifest is
immutable, automated failures are empty, spatial leakage is `ok`, and blank
positive-tile count is zero. Human sign-off remains a separate mandatory
final promotion gate.
Verified in this pass:
- `py -3 -m pytest -q backend/tests/test_belgium_training_loop.py backend/tests/test_belgium_training_iteration_assessment.py backend/tests/test_belgium_training_portfolio.py`
(`12 passed`).
Open:
- Let v37 finish, run calibration-only assessment, and expose protected test
and pure-background results only if every regional calibration gate passes.
- Continue failure-driven, train-only corpus iterations until all objective
gates pass; only then request the queued representative human review.