Reading order experiments
Generated: 2026-07-02T21:56:08.956143+00:00
Current pipeline
The reference experiment is current_panel_then_in_panel_ranker: panel ranking,
worker-equivalent Borda pair aggregation, ground-truth panel membership, then
in-panel bubble ranking. current_worker_assignment_gt_boxes uses the same
ground-truth boxes but runs the browser assignment strategy before in-panel
ranking, which isolates assignment mistakes from detector mistakes.
Protocol
- Split source:
C:\Users\remis\Documents\Projet Git\projet-one-piece-indexer\docker_scripts\train_panel_detector\dataset\manifest.json - Development pages: 126
- Train pages: 101
- Validation pages: 25
- Test pages: 31
- Candidate selection uses validation metrics only. The test split is reported as a holdout and is not used for hyperparameter choice. Train metrics are used only as a tie-breaker when validation metrics are identical.
- Real YOLO detector simulation: not_available
Experiments
| Experiment | Runtime | Test full | Pairwise | Position | Exact |
|---|---|---|---|---|---|
| global_bubble_reranker_v1__sklearn-logistic__borda-vertical-repair | yes | 0.9677 | 0.9993 | 0.9932 | 30/31 |
| global_bubble_reranker_v1__pure-logistic__borda-vertical-repair | yes | 0.9677 | 0.9993 | 0.9932 | 30/31 |
| assignment_aware_global_reranker__sklearn-logistic__borda-vertical-repair | yes | 0.9355 | 0.9986 | 0.9863 | 29/31 |
| assignment_aware_global_reranker__hist-gradient-boosting__borda-vertical-repair | no | 0.9355 | 0.9986 | 0.9863 | 29/31 |
| global_bubble_reranker_v1__sklearn-logistic__borda | yes | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| global_bubble_reranker_v1__sklearn-logistic__topological | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| global_bubble_reranker_v1__sklearn-logistic__stable-local | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__sklearn-logistic__topological | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__sklearn-logistic__stable-local | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| global_bubble_reranker_v1__pure-logistic__borda | yes | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| global_bubble_reranker_v1__pure-logistic__bradley-terry | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| global_bubble_reranker_v1__pure-logistic__topological | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__pure-logistic__borda-vertical-repair | yes | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| global_bubble_reranker_v1__hist-gradient-boosting__borda-vertical-repair | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__hist-gradient-boosting__borda | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__hist-gradient-boosting__bradley-terry | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__hist-gradient-boosting__topological | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| assignment_aware_global_reranker__hist-gradient-boosting__stable-local | no | 0.9032 | 0.9979 | 0.9795 | 28/31 |
| current_panel_then_in_panel_ranker | yes | 0.8710 | 0.9971 | 0.9726 | 27/31 |
| current_worker_assignment_gt_boxes | yes | 0.8710 | 0.9971 | 0.9726 | 27/31 |
Selection
- Selected by validation:
global_bubble_reranker_v1__sklearn-logistic__stable-local - Selected runtime candidate:
global_bubble_reranker_v1__sklearn-logistic__borda-vertical-repair - Runtime decision: enabled_by_metrics
- Reason: Selected runtime-compatible candidate beat the current baseline.
Selected model metrics
| Split | Full | Pairwise | Position | Exact | Inversions |
|---|---|---|---|---|---|
| train | 0.8812 | 0.9972 | 0.9736 | 89/101 | 13 |
| validation | 0.9600 | 0.9985 | 0.9844 | 24/25 | 2 |
| test | 0.9677 | 0.9993 | 0.9932 | 30/31 | 1 |
Baseline comparison
- Baseline:
current_panel_then_in_panel_ranker - Candidate:
global_bubble_reranker_v1__sklearn-logistic__borda-vertical-repair - Compared split: test (31 pages)
- Delta page_full_accuracy: +0.0968
- Delta page_exact_matches: +3
- Delta global_pairwise_accuracy: +0.0021
- Delta bubble_position_accuracy: +0.0205
- Delta inversion_count_total: -3
- Corrected pages: 381, 459, 496
- Regressed pages: none
- Still wrong pages: 356
- Changed but still wrong pages: none
Corrected pages
- page 381: inversions 1 -> 0, assignment errors 0 -> 0, outside-panel bubbles 0 -> 0
- page 459: inversions 1 -> 0, assignment errors 0 -> 0, outside-panel bubbles 0 -> 0
- page 496: inversions 1 -> 0, assignment errors 0 -> 0, outside-panel bubbles 0 -> 0
Regressed pages
- none
Remaining wrong pages
- page 356: inversions 1 -> 1, assignment errors 0 -> 2, outside-panel bubbles 0 -> 0
Artifacts
- Metrics:
docker_scripts/train_reading_order/metrics/reading_order_benchmark.json - Predictions:
docker_scripts/train_reading_order/predictions/benchmark_page_orders.json - Optional ONNX:
docker_scripts/train_reading_order/models/global_bubble_order.onnx
Reproduction
python docker_scripts/train_reading_order/train_reading_order.py
python docker_scripts/train_reading_order/benchmark_reading_order.py
python docker_scripts/package_one_shot_models/prepare_and_upload.py
cd frontend
npm run lint
npm run build