From c7d53646ce15c2d85582a47b957ecc6928b44650 Mon Sep 17 00:00:00 2001 From: jungfrau Date: Fri, 2 Oct 2026 13:30:10 +0200 Subject: [PATCH] small cluster model re-gated on the Spark in one environment: gate_passed against v3; comparison after cycle 4 Co-Authored-By: Claude Fable 5.1 --- .../gold_report.json | 177 +++++++--- runs/2026-09-30_v3-s-640px/metrics.json | 94 ++++- runs/2026-09-30_v3-s-640px/run.json | 18 +- runs/README.md | 7 +- runs/clean_gold_comparison.json | 332 +++++++++--------- 5 files changed, 382 insertions(+), 246 deletions(-) diff --git a/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json b/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json index 0cc3d83..53e3029 100644 --- a/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json +++ b/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 185, - "fp": 18, - "fn": 7, - "precision": 0.9113300492610837, - "recall": 0.9635416666666666, - "f1": 0.9367088607594936, - "mean_mask_iou": 0.8785916632633505, - "n_matched": 185 + "tp": 187, + "fp": 13, + "fn": 5, + "precision": 0.935, + "recall": 0.9739583333333334, + "f1": 0.9540816326530612, + "mean_mask_iou": 0.8972832445017794, + "n_matched": 187 }, "pin": { - "tp": 135, - "fp": 14, - "fn": 11, - "precision": 0.9060402684563759, - "recall": 0.9246575342465754, - "f1": 0.9152542372881356, - "mean_mask_iou": 0.9152912872176714, - "n_matched": 135 + "tp": 137, + "fp": 9, + "fn": 9, + "precision": 0.9383561643835616, + "recall": 0.9383561643835616, + "f1": 0.9383561643835615, + "mean_mask_iou": 0.9256249811346701, + "n_matched": 137 }, "crystal": { - "tp": 37, - "fp": 15, - "fn": 29, - "precision": 0.7115384615384616, - "recall": 0.5606060606060606, - "f1": 0.6271186440677966, - "mean_mask_iou": 0.7501433709356009, - "n_matched": 37 + "tp": 41, + "fp": 24, + "fn": 25, + "precision": 0.6307692307692307, + "recall": 0.6212121212121212, + "f1": 0.6259541984732825, + "mean_mask_iou": 0.7914623790036597, + "n_matched": 41 }, "loop_face": { - "tp": 143, - "fp": 26, - "fn": 29, - "precision": 0.8461538461538461, - "recall": 0.8313953488372093, - "f1": 0.8387096774193549, - "mean_mask_iou": 0.8332595270145433, - "n_matched": 143 + "tp": 157, + "fp": 31, + "fn": 15, + "precision": 0.8351063829787234, + "recall": 0.9127906976744186, + "f1": 0.8722222222222221, + "mean_mask_iou": 0.8674352308419995, + "n_matched": 157 }, "ice": { - "tp": 3, - "fp": 5, - "fn": 37, - "precision": 0.375, - "recall": 0.075, - "f1": 0.12499999999999999, - "mean_mask_iou": 0.7736919879138792, - "n_matched": 3 + "tp": 5, + "fp": 3, + "fn": 35, + "precision": 0.625, + "recall": 0.125, + "f1": 0.20833333333333334, + "mean_mask_iou": 0.7441614535204797, + "n_matched": 5 }, "needle": { "tp": 0, @@ -62,14 +62,14 @@ } }, "overall": { - "tp": 503, - "fp": 78, - "fn": 114, - "precision": 0.8657487091222031, - "recall": 0.8152350081037277, - "f1": 0.8397328881469115, - "mean_mask_iou": 0.8654796710328908, - "n_matched": 503 + "tp": 527, + "fp": 80, + "fn": 90, + "precision": 0.8682042833607908, + "recall": 0.8541329011345219, + "f1": 0.8611111111111112, + "mean_mask_iou": 0.8860734064254818, + "n_matched": 527 }, "dataset": { "gold_images": 203, @@ -77,17 +77,82 @@ "missing_predictions": 0, "iou_threshold": 0.5 }, + "environment": { + "host": "mx-spark-01", + "ultralytics": "8.4.160", + "torch": "2.14.0+cu130" + }, "gate": { - "baseline": "/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", - "f1_delta": 0.0024, - "mask_iou_delta": -0.0492, - "mask_score": 0.7056, + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": 0.0238, + "mask_iou_delta": 0.0021, + "mask_score": 0.7568, "mask_score_baseline": 0.7547, - "matched_only_iou_delta": -0.0215, + "matched_only_iou_delta": -0.0009, "class_f1_delta": { - "loop_all": -0.003, - "pin": -0.0104 + "loop_all": 0.0144, + "pin": 0.0127 }, - "pass": false + "pass_point_rule": true, + "rule": "paired bootstrap", + "bootstrap": { + "frames": 203, + "draws": 2000, + "f1": { + "delta": 0.0238, + "lo": 0.0038, + "hi": 0.044, + "win": 0.987 + }, + "mask_score": { + "delta": 0.0021, + "lo": -0.0105, + "hi": 0.0142, + "win": 0.628 + }, + "per_class": { + "crystal": { + "f1": { + "delta": 0.0334, + "lo": -0.0377, + "hi": 0.1081, + "win": 0.821 + }, + "mask_score": { + "delta": 0.0047, + "lo": -0.0673, + "hi": 0.0765, + "win": 0.552 + } + } + } + }, + "pass": true, + "environment_note": "verdict computed on mx-spark-01 with candidate and baseline in one environment; the cluster's own verdict (pass=False, F1 0.8397) compared its measurement with a baseline measured on the Spark" + }, + "cluster_report": { + "overall": { + "tp": 503, + "fp": 78, + "fn": 114, + "precision": 0.8657487091222031, + "recall": 0.8152350081037277, + "f1": 0.8397328881469115, + "mean_mask_iou": 0.8654796710328908, + "n_matched": 503 + }, + "gate": { + "baseline": "/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": 0.0024, + "mask_iou_delta": -0.0492, + "mask_score": 0.7056, + "mask_score_baseline": 0.7547, + "matched_only_iou_delta": -0.0215, + "class_f1_delta": { + "loop_all": -0.003, + "pin": -0.0104 + }, + "pass": false + } } } diff --git a/runs/2026-09-30_v3-s-640px/metrics.json b/runs/2026-09-30_v3-s-640px/metrics.json index d1c02bf..850fd38 100644 --- a/runs/2026-09-30_v3-s-640px/metrics.json +++ b/runs/2026-09-30_v3-s-640px/metrics.json @@ -1,26 +1,61 @@ { "overall": { - "tp": 503, - "fp": 78, - "fn": 114, - "precision": 0.8657487091222031, - "recall": 0.8152350081037277, - "f1": 0.8397328881469115, - "mean_mask_iou": 0.8654796710328908, - "n_matched": 503 + "tp": 527, + "fp": 80, + "fn": 90, + "precision": 0.8682042833607908, + "recall": 0.8541329011345219, + "f1": 0.8611111111111112, + "mean_mask_iou": 0.8860734064254818, + "n_matched": 527 }, "gate": { - "baseline": "/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", - "f1_delta": 0.0024, - "mask_iou_delta": -0.0492, - "mask_score": 0.7056, + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": 0.0238, + "mask_iou_delta": 0.0021, + "mask_score": 0.7568, "mask_score_baseline": 0.7547, - "matched_only_iou_delta": -0.0215, + "matched_only_iou_delta": -0.0009, "class_f1_delta": { - "loop_all": -0.003, - "pin": -0.0104 + "loop_all": 0.0144, + "pin": 0.0127 }, - "pass": false + "pass_point_rule": true, + "rule": "paired bootstrap", + "bootstrap": { + "frames": 203, + "draws": 2000, + "f1": { + "delta": 0.0238, + "lo": 0.0038, + "hi": 0.044, + "win": 0.987 + }, + "mask_score": { + "delta": 0.0021, + "lo": -0.0105, + "hi": 0.0142, + "win": 0.628 + }, + "per_class": { + "crystal": { + "f1": { + "delta": 0.0334, + "lo": -0.0377, + "hi": 0.1081, + "win": 0.821 + }, + "mask_score": { + "delta": 0.0047, + "lo": -0.0673, + "hi": 0.0765, + "win": 0.552 + } + } + } + }, + "pass": true, + "environment_note": "verdict computed on mx-spark-01 with candidate and baseline in one environment; the cluster's own verdict (pass=False, F1 0.8397) compared its measurement with a baseline measured on the Spark" }, "training": { "epochs_run": 228, @@ -34,5 +69,30 @@ "mAP50-95(M)": 0.4995 }, "version": "yolo26s-seg-v3-s-640px-2026-10-01", - "measured_at": "2026-10-01T04:18:50" + "measured_at": "2026-10-02T13:29:54", + "cluster": { + "overall": { + "tp": 503, + "fp": 78, + "fn": 114, + "precision": 0.8657487091222031, + "recall": 0.8152350081037277, + "f1": 0.8397328881469115, + "mean_mask_iou": 0.8654796710328908, + "n_matched": 503 + }, + "gate": { + "baseline": "/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": 0.0024, + "mask_iou_delta": -0.0492, + "mask_score": 0.7056, + "mask_score_baseline": 0.7547, + "matched_only_iou_delta": -0.0215, + "class_f1_delta": { + "loop_all": -0.003, + "pin": -0.0104 + }, + "pass": false + } + } } diff --git a/runs/2026-09-30_v3-s-640px/run.json b/runs/2026-09-30_v3-s-640px/run.json index f1a1636..0c59ea5 100644 --- a/runs/2026-09-30_v3-s-640px/run.json +++ b/runs/2026-09-30_v3-s-640px/run.json @@ -2,7 +2,7 @@ "id": "2026-09-30_v3-s-640px", "dataset": "dataset/2026-09-29_v3", "base_weights": "models/base/yolo26s-seg.pt", - "status": "gate_failed", + "status": "gate_passed", "created": "2026-09-30T07:17:45", "created_by": "jungfrau@mx-spark-01", "hyperparams": { @@ -24,11 +24,11 @@ }, "version": "yolo26s-seg-v3-s-640px-2026-10-01", "metrics": { - "f1": 0.8397328881469115, - "mean_mask_iou": 0.8654796710328908, - "gate_pass": false, - "baseline": "/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", - "measured_at": "2026-10-01T04:18:50" + "f1": 0.8611111111111112, + "mean_mask_iou": 0.8860734064254818, + "gate_pass": true, + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "measured_at": "2026-10-02T13:29:54" }, "history": [ { @@ -60,6 +60,12 @@ "at": "2026-10-01T04:18:50", "by": "duan_j@gpu102", "note": "{\"baseline\": \"/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json\", \"f1_delta\": 0.0024, \"mask_iou_delta\": -0.0492, \"mask_score\": 0.7056, \"mask_score_baseline\": 0.7547, \"matched_only_iou_delta\": -0.0215, \"class_f1_delta\": {\"loop_all\": -0.003, \"pin\": -0.0104}, \"pass\": false}" + }, + { + "status": "gate_passed", + "at": "2026-10-02T13:29:54", + "by": "jungfrau@mx-spark-01", + "note": "re-gated on the Spark in one environment against yolo26n-seg-v3-noflip-mask1-2026-09-30 (the cluster verdict compared two environments); not promoted: four times the parameters, needs a latency check at a beamline" } ], "job": 232023, diff --git a/runs/README.md b/runs/README.md index 7e3c036..7b9dc8d 100644 --- a/runs/README.md +++ b/runs/README.md @@ -17,7 +17,7 @@ Generated by `python tools/ledger.py render`; do not edit by hand. | 2026-09-29_v3-recipeA | gate_passed | dataset/2026-09-29_v3 | models/base/yolo26n-seg.pt | yolo26n-seg-v3-recipeA-2026-09-29 | 0.831 | 0.881 | yes | 2026-09-29T23:42 | | 2026-09-30_v3-n-1024px | exported | dataset/2026-09-29_v3 | models/base/yolo26n-seg.pt | - | - | - | - | 2026-09-30T07:17 | | 2026-09-30_v3-s-1024px | exported | dataset/2026-09-29_v3 | models/base/yolo26s-seg.pt | - | - | - | - | 2026-09-30T07:17 | -| 2026-09-30_v3-s-640px | exported | dataset/2026-09-29_v3 | models/base/yolo26s-seg.pt | - | - | - | - | 2026-09-30T07:17 | +| 2026-09-30_v3-s-640px | gate_passed | dataset/2026-09-29_v3 | models/base/yolo26s-seg.pt | yolo26s-seg-v3-s-640px-2026-10-01 | 0.861 | 0.886 | yes | 2026-10-02T13:29 | | 2026-10-01_v4-noflip-mask1 | promoted | dataset/2026-10-01_v4 | models/base/yolo26n-seg.pt | yolo26n-seg-v4-noflip-mask1-2026-10-02 | 0.852 | 0.891 | yes | 2026-10-02T13:25 | | 2026-10-01_v4-recipeA | gate_failed | dataset/2026-10-01_v4 | models/base/yolo26n-seg.pt | yolo26n-seg-v4-recipeA-2026-10-02 | 0.832 | 0.884 | no | 2026-10-02T04:12 | @@ -120,6 +120,11 @@ States: exported → queued → training → measured → gate_passed → gate_f ## 2026-09-30_v3-s-640px - 2026-09-30T07:17:45 · exported · jungfrau@mx-spark-01 — cluster: capacity lever, small model at 640 px, default recipe +- 2026-10-01T01:30:13 · queued · duan_j@gpu102 +- 2026-10-01T01:30:13 · training · duan_j@gpu102 — train_run.py +- 2026-10-01T04:18:50 · measured · duan_j@gpu102 +- 2026-10-01T04:18:50 · gate_failed · duan_j@gpu102 — {"baseline": "/data/user/duan_j/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", "f1_delta": 0.0024, "mask_iou_delta": -0.0492, "mask_score": 0.7056, "mask_score_baseline": 0.7547, "matched_only_iou_delta": -0.0215, "class_f1_delta": {"loop_all": -0.003, "pin": -0.0104}, "pass": false} +- 2026-10-02T13:29:54 · gate_passed · jungfrau@mx-spark-01 — re-gated on the Spark in one environment against yolo26n-seg-v3-noflip-mask1-2026-09-30 (the cluster verdict compared two environments); not promoted: four times the parameters, needs a latency check at a beamline ## 2026-10-01_v4-noflip-mask1 diff --git a/runs/clean_gold_comparison.json b/runs/clean_gold_comparison.json index c129dd1..8c1b80d 100644 --- a/runs/clean_gold_comparison.json +++ b/runs/clean_gold_comparison.json @@ -671,6 +671,73 @@ "gold_images": 149 } }, + "2026-09-30_v3-s-640px": { + "per_class": { + "loop_all": { + "tp": 134, + "fp": 10, + "fn": 5, + "precision": 0.9305555555555556, + "recall": 0.9640287769784173, + "f1": 0.9469964664310955, + "mean_mask_iou": 0.8941931738466334, + "n_matched": 134 + }, + "pin": { + "tp": 108, + "fp": 6, + "fn": 8, + "precision": 0.9473684210526315, + "recall": 0.9310344827586207, + "f1": 0.9391304347826087, + "mean_mask_iou": 0.9198485953616634, + "n_matched": 108 + }, + "crystal": { + "tp": 21, + "fp": 14, + "fn": 19, + "precision": 0.6, + "recall": 0.525, + "f1": 0.56, + "mean_mask_iou": 0.7742300919117516, + "n_matched": 21 + }, + "loop_face": { + "tp": 110, + "fp": 26, + "fn": 10, + "precision": 0.8088235294117647, + "recall": 0.9166666666666666, + "f1": 0.859375, + "mean_mask_iou": 0.8632894169651606, + "n_matched": 110 + }, + "ice": { + "tp": 2, + "fp": 1, + "fn": 8, + "precision": 0.6666666666666666, + "recall": 0.2, + "f1": 0.30769230769230765, + "mean_mask_iou": 0.8091053257565746, + "n_matched": 2 + } + }, + "overall": { + "tp": 375, + "fp": 57, + "fn": 50, + "precision": 0.8680555555555556, + "recall": 0.8823529411764706, + "f1": 0.8751458576429405, + "mean_mask_iou": 0.8853450987795626, + "n_matched": 375 + }, + "dataset": { + "gold_images": 149 + } + }, "2026-10-01_v4-noflip-mask1": { "per_class": { "loop_all": { @@ -804,73 +871,6 @@ "dataset": { "gold_images": 149 } - }, - "yolo26s-seg-v3-s-640px-2026-10-01": { - "per_class": { - "loop_all": { - "tp": 134, - "fp": 10, - "fn": 5, - "precision": 0.9305555555555556, - "recall": 0.9640287769784173, - "f1": 0.9469964664310955, - "mean_mask_iou": 0.8941931738466334, - "n_matched": 134 - }, - "pin": { - "tp": 108, - "fp": 6, - "fn": 8, - "precision": 0.9473684210526315, - "recall": 0.9310344827586207, - "f1": 0.9391304347826087, - "mean_mask_iou": 0.9198485953616634, - "n_matched": 108 - }, - "crystal": { - "tp": 21, - "fp": 14, - "fn": 19, - "precision": 0.6, - "recall": 0.525, - "f1": 0.56, - "mean_mask_iou": 0.7742300919117516, - "n_matched": 21 - }, - "loop_face": { - "tp": 110, - "fp": 26, - "fn": 10, - "precision": 0.8088235294117647, - "recall": 0.9166666666666666, - "f1": 0.859375, - "mean_mask_iou": 0.8632894169651606, - "n_matched": 110 - }, - "ice": { - "tp": 2, - "fp": 1, - "fn": 8, - "precision": 0.6666666666666666, - "recall": 0.2, - "f1": 0.30769230769230765, - "mean_mask_iou": 0.8091053257565746, - "n_matched": 2 - } - }, - "overall": { - "tp": 375, - "fp": 57, - "fn": 50, - "precision": 0.8680555555555556, - "recall": 0.8823529411764706, - "f1": 0.8751458576429405, - "mean_mask_iou": 0.8853450987795626, - "n_matched": 375 - }, - "dataset": { - "gold_images": 149 - } } }, "core_frames": 149, @@ -1546,6 +1546,73 @@ "gold_images": 149 } }, + "2026-09-30_v3-s-640px": { + "per_class": { + "loop_all": { + "tp": 134, + "fp": 10, + "fn": 5, + "precision": 0.9305555555555556, + "recall": 0.9640287769784173, + "f1": 0.9469964664310955, + "mean_mask_iou": 0.8941931738466334, + "n_matched": 134 + }, + "pin": { + "tp": 108, + "fp": 6, + "fn": 8, + "precision": 0.9473684210526315, + "recall": 0.9310344827586207, + "f1": 0.9391304347826087, + "mean_mask_iou": 0.9198485953616634, + "n_matched": 108 + }, + "crystal": { + "tp": 21, + "fp": 14, + "fn": 19, + "precision": 0.6, + "recall": 0.525, + "f1": 0.56, + "mean_mask_iou": 0.7742300919117516, + "n_matched": 21 + }, + "loop_face": { + "tp": 110, + "fp": 26, + "fn": 10, + "precision": 0.8088235294117647, + "recall": 0.9166666666666666, + "f1": 0.859375, + "mean_mask_iou": 0.8632894169651606, + "n_matched": 110 + }, + "ice": { + "tp": 2, + "fp": 1, + "fn": 8, + "precision": 0.6666666666666666, + "recall": 0.2, + "f1": 0.30769230769230765, + "mean_mask_iou": 0.8091053257565746, + "n_matched": 2 + } + }, + "overall": { + "tp": 375, + "fp": 57, + "fn": 50, + "precision": 0.8680555555555556, + "recall": 0.8823529411764706, + "f1": 0.8751458576429405, + "mean_mask_iou": 0.8853450987795626, + "n_matched": 375 + }, + "dataset": { + "gold_images": 149 + } + }, "2026-10-01_v4-noflip-mask1": { "per_class": { "loop_all": { @@ -1679,73 +1746,6 @@ "dataset": { "gold_images": 149 } - }, - "yolo26s-seg-v3-s-640px-2026-10-01": { - "per_class": { - "loop_all": { - "tp": 134, - "fp": 10, - "fn": 5, - "precision": 0.9305555555555556, - "recall": 0.9640287769784173, - "f1": 0.9469964664310955, - "mean_mask_iou": 0.8941931738466334, - "n_matched": 134 - }, - "pin": { - "tp": 108, - "fp": 6, - "fn": 8, - "precision": 0.9473684210526315, - "recall": 0.9310344827586207, - "f1": 0.9391304347826087, - "mean_mask_iou": 0.9198485953616634, - "n_matched": 108 - }, - "crystal": { - "tp": 21, - "fp": 14, - "fn": 19, - "precision": 0.6, - "recall": 0.525, - "f1": 0.56, - "mean_mask_iou": 0.7742300919117516, - "n_matched": 21 - }, - "loop_face": { - "tp": 110, - "fp": 26, - "fn": 10, - "precision": 0.8088235294117647, - "recall": 0.9166666666666666, - "f1": 0.859375, - "mean_mask_iou": 0.8632894169651606, - "n_matched": 110 - }, - "ice": { - "tp": 2, - "fp": 1, - "fn": 8, - "precision": 0.6666666666666666, - "recall": 0.2, - "f1": 0.30769230769230765, - "mean_mask_iou": 0.8091053257565746, - "n_matched": 2 - } - }, - "overall": { - "tp": 375, - "fp": 57, - "fn": 50, - "precision": 0.8680555555555556, - "recall": 0.8823529411764706, - "f1": 0.8751458576429405, - "mean_mask_iou": 0.8853450987795626, - "n_matched": 375 - }, - "dataset": { - "gold_images": 149 - } } }, "active": "yolo26n-seg-v4-noflip-mask1-2026-10-02", @@ -2070,6 +2070,38 @@ } } }, + "2026-09-30_v3-s-640px": { + "frames": 149, + "draws": 2000, + "f1": { + "delta": 0.0042, + "lo": -0.0183, + "hi": 0.0242, + "win": 0.649 + }, + "mask_score": { + "delta": -0.011, + "lo": -0.0278, + "hi": 0.0042, + "win": 0.082 + }, + "per_class": { + "crystal": { + "f1": { + "delta": -0.001, + "lo": -0.1061, + "hi": 0.1018, + "win": 0.458 + }, + "mask_score": { + "delta": -0.055, + "lo": -0.1347, + "hi": 0.0031, + "win": 0.032 + } + } + } + }, "2026-10-01_v4-recipeA": { "frames": 149, "draws": 2000, @@ -2101,38 +2133,6 @@ } } } - }, - "yolo26s-seg-v3-s-640px-2026-10-01": { - "frames": 149, - "draws": 2000, - "f1": { - "delta": 0.0042, - "lo": -0.0183, - "hi": 0.0242, - "win": 0.649 - }, - "mask_score": { - "delta": -0.011, - "lo": -0.0278, - "hi": 0.0042, - "win": 0.082 - }, - "per_class": { - "crystal": { - "f1": { - "delta": -0.001, - "lo": -0.1061, - "hi": 0.1018, - "win": 0.458 - }, - "mask_score": { - "delta": -0.055, - "lo": -0.1347, - "hi": 0.0031, - "win": 0.032 - } - } - } } } } \ No newline at end of file