{ "model": "sentiment@v2", "tier": "encoder", "base": "sentence-transformers/all-MiniLM-L6-v2", "test": { "n": 51, "accuracy": 0.8823529411764706, "macro_f1": 0.8808012558012558, "per_label": { "positive": { "precision": 0.8947368421052632, "recall": 0.9444444444444444, "f1": 0.918918918918919, "support": 18 }, "neutral": { "precision": 0.9333333333333333, "recall": 0.8235294117647058, "f1": 0.875, "support": 17 }, "negative": { "precision": 0.8235294117647058, "recall": 0.875, "f1": 0.8484848484848485, "support": 16 } }, "confusion": [ [ 17, 0, 1 ], [ 1, 14, 2 ], [ 1, 1, 14 ] ] }, "by_source": { "synthetic": { "n": 51, "accuracy": 0.8823529411764706, "macro_f1": 0.8808012558012558, "per_label": { "positive": { "precision": 0.8947368421052632, "recall": 0.9444444444444444, "f1": 0.918918918918919, "support": 18 }, "neutral": { "precision": 0.9333333333333333, "recall": 0.8235294117647058, "f1": 0.875, "support": 17 }, "negative": { "precision": 0.8235294117647058, "recall": 0.875, "f1": 0.8484848484848485, "support": 16 } }, "confusion": [ [ 17, 0, 1 ], [ 1, 14, 2 ], [ 1, 1, 14 ] ] } }, "teacher_agreement": 0.8823529411764706, "calibration": { "temperature": 1.5494422923834061, "test_ece_before": 0.13583191042865103, "test_ece_after": 0.09304488274530132, "val_ece_before": 0.10366493771366977, "val_ece_after": 0.10166117276176741, "val_coverage": 0.5294117647058824, "val_precision_at_threshold": 1.0 }, "escalation": { "threshold": 0.9467601639708129, "target_precision": 0.97, "coverage": 0.5098039215686274, "accuracy_on_covered": 0.9615384615384616, "escalation_rate": 0.4901960784313726 }, "latency": { "p50_ms": 3.41874998412095, "p95_ms": 3.5703955072676763, "batch_ms_per_input": 0.451612745082992, "backend": "python (cpu); browser numbers: web/ `npm run bench`" }, "size_mb": 24.31, "targets": { "min_macro_f1": { "target": 0.9, "actual": 0.8808012558012558, "met": false }, "max_download_mb": { "target": 30.0, "actual": 24.31, "met": true } }, "worst_errors": [ { "text": "I'm obsessed with this moisturizer, my skin has never felt better.", "label": "positive", "predicted": "negative", "confidence": 0.947, "teacher_confidence": 0.95 }, { "text": "Pros: light, cheap. Cons: flimsy, loud.", "label": "neutral", "predicted": "negative", "confidence": 0.922, "teacher_confidence": 0.75 }, { "text": "1 star is too generous", "label": "negative", "predicted": "positive", "confidence": 0.914, "teacher_confidence": 0.95 }, { "text": "Waited on hold for two hours to be told to call back tomorrow.", "label": "negative", "predicted": "neutral", "confidence": 0.908, "teacher_confidence": 0.95 }, { "text": "This is my second order from this store.", "label": "neutral", "predicted": "positive", "confidence": 0.529, "teacher_confidence": 0.92 }, { "text": "We took the train instead of driving.", "label": "neutral", "predicted": "negative", "confidence": 0.508, "teacher_confidence": 0.92 } ], "data": { "train": 3238, "val": 51, "test": 51 }, "seed": 42, "recommendations": [ "Macro F1 0.881 is below the 0.90 target. Options: more/better data (real inputs beat synthetic), the encoder tier (M4), or escalation-heavy mode (the micro model handles only confident cases).", "All test data is synthetic: expect lower accuracy on real inputs. Add a human-labeled gold set." ] }