{ "artifact_version": 1, "model": "sentiment@v2", "tier": "encoder", "labels": [ "positive", "neutral", "negative" ], "temperature": 1.5494422923834061, "threshold": 0.9467601639708129, "spec": { "task": "sentiment", "description": "What feeling does the writer express about the thing they're talking about (a product, place, service or experience)?\n", "input": { "type": "text", "max_chars": 2000 }, "output": { "type": "choice", "labels": { "positive": "Happy, satisfied, grateful or recommends it.", "neutral": "Facts, questions, plans or mixed feelings with no clear lean.", "negative": "Unhappy, disappointed, angry or warns others away. Includes sarcastic praise." } }, "model": { "tier": "encoder", "base": null, "quantization": "q8" }, "teacher": { "kind": "csv", "model": null, "path": "examples/sentiment_data.csv", "min_confidence": 0.0 }, "data": { "seed_examples": null, "unlabeled": "examples/sentiment_data.csv", "gold": null, "synthetic": 0, "synth_model": null }, "targets": { "min_macro_f1": 0.9, "deploy": "browser", "max_download_mb": 30.0, "max_latency_ms": 100.0 }, "escalation": { "target_precision": 0.97 }, "seed": 42 }, "task": "sentiment", "version": "v2", "base": "sentence-transformers/all-MiniLM-L6-v2", "prompt_template": null, "calibration": { "method": "temperature", "temperature": 1.5494422923834061, "val_ece_before": 0.10366493771366977, "val_ece_after": 0.10166117276176741, "threshold": 0.9467601639708129, "val_coverage": 0.5294117647058824, "val_precision_at_threshold": 1.0, "target_precision_reached": true }, "download_mb": 23.7, "training": { "selection": "best fit", "chosen": { "tier": "encoder", "base": "sentence-transformers/all-MiniLM-L6-v2", "est_download_mb": 23.7, "val_macro_f1": 0.9029, "best_epoch": 2, "val_macro_f1_by_epoch": [ 0.8835, 0.9029, 0.8674, 0.8454, 0.8407, 0.8407 ], "epochs": 6, "lr": 0.0001, "batch": 32, "max_tokens": 256, "device": "cpu" }, "candidates": [ { "tier": "encoder", "base": "sentence-transformers/paraphrase-MiniLM-L3-v2", "est_download_mb": 18.4, "val_macro_f1": 0.8432, "best_epoch": 6, "val_macro_f1_by_epoch": [ 0.763, 0.8402, 0.8229, 0.8205, 0.8226, 0.8432 ], "epochs": 6, "lr": 0.0001, "batch": 32, "max_tokens": 256, "device": "cpu" }, { "tier": "encoder", "base": "sentence-transformers/all-MiniLM-L6-v2", "est_download_mb": 23.7, "val_macro_f1": 0.9029, "best_epoch": 2, "val_macro_f1_by_epoch": [ 0.8835, 0.9029, 0.8674, 0.8454, 0.8407, 0.8407 ], "epochs": 6, "lr": 0.0001, "batch": 32, "max_tokens": 256, "device": "cpu" } ], "train_seconds": 120.39, "sample_weight": "teacher confidence" }, "teacher": { "kind": "csv", "model": null, "path": "examples/sentiment_data.csv", "min_confidence": 0.0 }, "data": { "train": 3238, "val": 51, "test": 51 }, "seed": 42, "created": "2026-09-28T09:38:29+00:00", "synthetic_augmentation": { "baseline": "runs/sentiment/v1", "baseline_sha256": "fe5d48bb3f9f751fa8ec1869257a48db3bd7c90d6ee40964646bd927c9f99c2c", "seed": 20260928, "added_per_label": { "positive": 1000, "neutral": 1000, "negative": 1000 }, "before": { "train": 238, "test": 51, "val": 51 }, "after": { "train": 3238, "test": 51, "val": 51 }, "generator": "offline-templates-v1", "holdout_max_cosine": 0.9, "rejected": {}, "limitations": "Template variants are correlated. Labels are assigned by construction, not an independent teacher. Original synthetic validation/test are unchanged. Real-world generalization is unmeasured." }, "export": { "format": "nodd", "format_version": 2, "parity": { "n": 51, "onnx_fp32": { "label_agreement": 1.0, "max_abs_prob_diff": 1.439289778637498e-06, "macro_f1": 0.8808012558012558, "f1_drop": 0.0 }, "onnx_q8": { "label_agreement": 0.9607843137254902, "max_abs_prob_diff": 0.41190388463864464, "macro_f1": 0.8801699426699426, "f1_drop": 0.0006313131313131493 } }, "parity_reference": "onnx_q8", "onnx_download_mb": 24.31, "onnx_fp32_download_mb": 92.47 } }