Upload Exit Lens AI router ONNX baseline
Browse files- ai-router/README.md +24 -0
- ai-router/eval-prediction-metadata.json +12 -0
- ai-router/eval-score.json +189 -0
- ai-router/eval-score.txt +0 -0
- ai-router/label-map.snapshot.json +68 -0
- ai-router/manifest.json +90 -0
- ai-router/model.onnx +3 -0
- ai-router/training-config.json +27 -0
- ai-router/training-metrics.json +204 -0
- ai-router/vectorizer.json +0 -0
- ai-router/vocab.json +0 -0
ai-router/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc-by-nc-4.0
|
| 3 |
+
library_name: onnx
|
| 4 |
+
tags:
|
| 5 |
+
- onnx
|
| 6 |
+
- text-classification
|
| 7 |
+
- exit-lens
|
| 8 |
+
- ai-router
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# Exit Lens AI Router
|
| 12 |
+
|
| 13 |
+
This directory contains the lightweight Exit Lens AI top-router baseline.
|
| 14 |
+
|
| 15 |
+
- Version: `2026-07-09-ai-router-tfidf-mlp-v1`
|
| 16 |
+
- Format: ONNX
|
| 17 |
+
- Architecture: TF-IDF + shallow multi-head MLP
|
| 18 |
+
- Heads: route, urgency, domains, riskFrames
|
| 19 |
+
- Validation route accuracy: 0.9244444370269775
|
| 20 |
+
- Test route accuracy: 0.8849557638168335
|
| 21 |
+
- Eval-only route accuracy: 0.7916666666666666
|
| 22 |
+
|
| 23 |
+
The eval-only subtle boundary set is used only for prediction/scoring, not training.
|
| 24 |
+
Runtime use must keep the existing rule/fragment safety floor and retrieval-patch guardrails active.
|
ai-router/eval-prediction-metadata.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"evalOnlyInput": "data\\exit-lens\\ai-router\\evals\\exit_lens_ai_router_eval_subtle_boundaries_120.jsonl",
|
| 4 |
+
"output": "artifacts\\exit-lens-ai-router\\eval-predictions.jsonl",
|
| 5 |
+
"rows": 120,
|
| 6 |
+
"domainThreshold": 0.5,
|
| 7 |
+
"domainFallbackUsed": false,
|
| 8 |
+
"torchVersion": "2.5.1+cu121",
|
| 9 |
+
"cudaAvailable": true,
|
| 10 |
+
"cudaDevice": "NVIDIA GeForce RTX 3050",
|
| 11 |
+
"deviceUsed": "cuda"
|
| 12 |
+
}
|
ai-router/eval-score.json
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"gold": "data\\exit-lens\\ai-router\\evals\\exit_lens_ai_router_eval_subtle_boundaries_120.jsonl",
|
| 3 |
+
"predictions": "artifacts\\exit-lens-ai-router\\eval-predictions.jsonl",
|
| 4 |
+
"totalGold": 120,
|
| 5 |
+
"totalPredictions": 120,
|
| 6 |
+
"routeAccuracy": 0.7916666666666666,
|
| 7 |
+
"urgencyAccuracy": 0.625,
|
| 8 |
+
"domainExactAccuracy": 0.43333333333333335,
|
| 9 |
+
"missing": [],
|
| 10 |
+
"extra": [],
|
| 11 |
+
"perRoute": [
|
| 12 |
+
{
|
| 13 |
+
"route": "general_chat",
|
| 14 |
+
"gold": 16,
|
| 15 |
+
"predicted": 18,
|
| 16 |
+
"correct": 12,
|
| 17 |
+
"precision": 0.6666666666666666,
|
| 18 |
+
"recall": 0.75,
|
| 19 |
+
"f1": 0.7058823529411765
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"route": "general_counseling",
|
| 23 |
+
"gold": 16,
|
| 24 |
+
"predicted": 17,
|
| 25 |
+
"correct": 14,
|
| 26 |
+
"precision": 0.8235294117647058,
|
| 27 |
+
"recall": 0.875,
|
| 28 |
+
"f1": 0.8484848484848485
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"route": "archive_lookup",
|
| 32 |
+
"gold": 22,
|
| 33 |
+
"predicted": 11,
|
| 34 |
+
"correct": 11,
|
| 35 |
+
"precision": 1,
|
| 36 |
+
"recall": 0.5,
|
| 37 |
+
"f1": 0.6666666666666666
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"route": "archive_counseling_hybrid",
|
| 41 |
+
"gold": 16,
|
| 42 |
+
"predicted": 21,
|
| 43 |
+
"correct": 14,
|
| 44 |
+
"precision": 0.6666666666666666,
|
| 45 |
+
"recall": 0.875,
|
| 46 |
+
"f1": 0.7567567567567567
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"route": "safety_triage",
|
| 50 |
+
"gold": 14,
|
| 51 |
+
"predicted": 15,
|
| 52 |
+
"correct": 11,
|
| 53 |
+
"precision": 0.7333333333333333,
|
| 54 |
+
"recall": 0.7857142857142857,
|
| 55 |
+
"f1": 0.7586206896551724
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"route": "source_intake_safety",
|
| 59 |
+
"gold": 18,
|
| 60 |
+
"predicted": 20,
|
| 61 |
+
"correct": 16,
|
| 62 |
+
"precision": 0.8,
|
| 63 |
+
"recall": 0.8888888888888888,
|
| 64 |
+
"f1": 0.8421052631578948
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"route": "refusal_or_abuse",
|
| 68 |
+
"gold": 18,
|
| 69 |
+
"predicted": 18,
|
| 70 |
+
"correct": 17,
|
| 71 |
+
"precision": 0.9444444444444444,
|
| 72 |
+
"recall": 0.9444444444444444,
|
| 73 |
+
"f1": 0.9444444444444444
|
| 74 |
+
}
|
| 75 |
+
],
|
| 76 |
+
"special": {
|
| 77 |
+
"missedSafety": [
|
| 78 |
+
{
|
| 79 |
+
"id": "AIR-EVAL-SUBTLE-A-0052",
|
| 80 |
+
"gold": "safety_triage",
|
| 81 |
+
"predicted": "archive_counseling_hybrid"
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"id": "AIR-EVAL-SUBTLE-A-0056",
|
| 85 |
+
"gold": "safety_triage",
|
| 86 |
+
"predicted": "general_chat"
|
| 87 |
+
},
|
| 88 |
+
{
|
| 89 |
+
"id": "AIR-EVAL-SUBTLE-A-0060",
|
| 90 |
+
"gold": "safety_triage",
|
| 91 |
+
"predicted": "archive_counseling_hybrid"
|
| 92 |
+
}
|
| 93 |
+
],
|
| 94 |
+
"falseSafety": [
|
| 95 |
+
{
|
| 96 |
+
"id": "AIR-EVAL-SUBTLE-A-0022",
|
| 97 |
+
"gold": "general_counseling",
|
| 98 |
+
"predicted": "safety_triage"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"id": "AIR-EVAL-SUBTLE-B-0004",
|
| 102 |
+
"gold": "source_intake_safety",
|
| 103 |
+
"predicted": "safety_triage"
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"id": "AIR-EVAL-SUBTLE-B-0033",
|
| 107 |
+
"gold": "refusal_or_abuse",
|
| 108 |
+
"predicted": "safety_triage"
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
"id": "AIR-EVAL-SUBTLE-B-0054",
|
| 112 |
+
"gold": "general_counseling",
|
| 113 |
+
"predicted": "safety_triage"
|
| 114 |
+
}
|
| 115 |
+
],
|
| 116 |
+
"sourceRefusalConfusion": [
|
| 117 |
+
{
|
| 118 |
+
"id": "AIR-EVAL-SUBTLE-B-0013",
|
| 119 |
+
"gold": "source_intake_safety",
|
| 120 |
+
"predicted": "refusal_or_abuse"
|
| 121 |
+
}
|
| 122 |
+
],
|
| 123 |
+
"archiveHybridConfusion": [
|
| 124 |
+
{
|
| 125 |
+
"id": "AIR-EVAL-SUBTLE-A-0031",
|
| 126 |
+
"gold": "archive_lookup",
|
| 127 |
+
"predicted": "archive_counseling_hybrid"
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"id": "AIR-EVAL-SUBTLE-B-0038",
|
| 131 |
+
"gold": "archive_lookup",
|
| 132 |
+
"predicted": "archive_counseling_hybrid"
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"id": "AIR-EVAL-SUBTLE-B-0042",
|
| 136 |
+
"gold": "archive_lookup",
|
| 137 |
+
"predicted": "archive_counseling_hybrid"
|
| 138 |
+
}
|
| 139 |
+
],
|
| 140 |
+
"generalFalseSafety": [
|
| 141 |
+
{
|
| 142 |
+
"id": "AIR-EVAL-SUBTLE-A-0022",
|
| 143 |
+
"gold": "general_counseling",
|
| 144 |
+
"predicted": "safety_triage"
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"id": "AIR-EVAL-SUBTLE-B-0054",
|
| 148 |
+
"gold": "general_counseling",
|
| 149 |
+
"predicted": "safety_triage"
|
| 150 |
+
}
|
| 151 |
+
]
|
| 152 |
+
},
|
| 153 |
+
"confusion": {
|
| 154 |
+
"general_chat": {
|
| 155 |
+
"general_chat": 12,
|
| 156 |
+
"archive_counseling_hybrid": 2,
|
| 157 |
+
"source_intake_safety": 2
|
| 158 |
+
},
|
| 159 |
+
"general_counseling": {
|
| 160 |
+
"general_counseling": 14,
|
| 161 |
+
"safety_triage": 2
|
| 162 |
+
},
|
| 163 |
+
"archive_lookup": {
|
| 164 |
+
"archive_lookup": 11,
|
| 165 |
+
"general_chat": 5,
|
| 166 |
+
"archive_counseling_hybrid": 3,
|
| 167 |
+
"general_counseling": 1,
|
| 168 |
+
"source_intake_safety": 2
|
| 169 |
+
},
|
| 170 |
+
"archive_counseling_hybrid": {
|
| 171 |
+
"archive_counseling_hybrid": 14,
|
| 172 |
+
"general_counseling": 2
|
| 173 |
+
},
|
| 174 |
+
"safety_triage": {
|
| 175 |
+
"safety_triage": 11,
|
| 176 |
+
"archive_counseling_hybrid": 2,
|
| 177 |
+
"general_chat": 1
|
| 178 |
+
},
|
| 179 |
+
"source_intake_safety": {
|
| 180 |
+
"source_intake_safety": 16,
|
| 181 |
+
"safety_triage": 1,
|
| 182 |
+
"refusal_or_abuse": 1
|
| 183 |
+
},
|
| 184 |
+
"refusal_or_abuse": {
|
| 185 |
+
"refusal_or_abuse": 17,
|
| 186 |
+
"safety_triage": 1
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
}
|
ai-router/eval-score.txt
ADDED
|
Binary file (3.56 kB). View file
|
|
|
ai-router/label-map.snapshot.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"routes": [
|
| 4 |
+
"general_chat",
|
| 5 |
+
"general_counseling",
|
| 6 |
+
"archive_lookup",
|
| 7 |
+
"archive_counseling_hybrid",
|
| 8 |
+
"safety_triage",
|
| 9 |
+
"source_intake_safety",
|
| 10 |
+
"refusal_or_abuse"
|
| 11 |
+
],
|
| 12 |
+
"domains": [
|
| 13 |
+
"general_chat",
|
| 14 |
+
"general_counseling",
|
| 15 |
+
"group_info",
|
| 16 |
+
"coercive_control",
|
| 17 |
+
"recruiting_or_deceptive_access",
|
| 18 |
+
"money_or_fraud",
|
| 19 |
+
"privacy_or_identity",
|
| 20 |
+
"unknown_substance",
|
| 21 |
+
"sexual_boundary",
|
| 22 |
+
"sexual_violence",
|
| 23 |
+
"self_harm_or_suicide",
|
| 24 |
+
"violence_or_retaliation",
|
| 25 |
+
"public_harm_instruction",
|
| 26 |
+
"source_or_report_request",
|
| 27 |
+
"defamation_or_unverified",
|
| 28 |
+
"hate_or_discrimination",
|
| 29 |
+
"prompt_injection"
|
| 30 |
+
],
|
| 31 |
+
"urgencies": [
|
| 32 |
+
"none",
|
| 33 |
+
"low",
|
| 34 |
+
"medium",
|
| 35 |
+
"high",
|
| 36 |
+
"critical"
|
| 37 |
+
],
|
| 38 |
+
"riskFrames": [
|
| 39 |
+
"life_safety",
|
| 40 |
+
"farewell_or_final_arrangement",
|
| 41 |
+
"physical_confinement",
|
| 42 |
+
"communication_control",
|
| 43 |
+
"money_asset_transfer",
|
| 44 |
+
"loan_or_credit_pressure",
|
| 45 |
+
"identity_document_request",
|
| 46 |
+
"account_or_auth_request",
|
| 47 |
+
"substance_ingestion",
|
| 48 |
+
"unknown_substance_symptom",
|
| 49 |
+
"body_boundary",
|
| 50 |
+
"sexualized_spiritual_coercion",
|
| 51 |
+
"deceptive_recruiting",
|
| 52 |
+
"spiritual_threat_or_curse",
|
| 53 |
+
"information_control",
|
| 54 |
+
"family_or_friend_isolation",
|
| 55 |
+
"public_harm_instruction",
|
| 56 |
+
"explosive_or_fire_harm",
|
| 57 |
+
"archive_evidence_submission",
|
| 58 |
+
"doxxing_or_retaliation",
|
| 59 |
+
"group_dissonance"
|
| 60 |
+
],
|
| 61 |
+
"stateTransitions": [
|
| 62 |
+
"keep_active",
|
| 63 |
+
"weaken",
|
| 64 |
+
"escalate",
|
| 65 |
+
"ask_safety_confirmation",
|
| 66 |
+
"clear"
|
| 67 |
+
]
|
| 68 |
+
}
|
ai-router/manifest.json
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"modelFamily": "exit-lens-ai-router",
|
| 4 |
+
"modelKind": "tfidf_mlp_multihead",
|
| 5 |
+
"version": "2026-07-09-ai-router-tfidf-mlp-v1",
|
| 6 |
+
"provider": "huggingface",
|
| 7 |
+
"repo": "saibiindex/exitlens",
|
| 8 |
+
"repoId": "saibiindex/exitlens",
|
| 9 |
+
"revision": "main",
|
| 10 |
+
"format": "onnx",
|
| 11 |
+
"runtimeStatus": "candidate-browser-artifact",
|
| 12 |
+
"browserReady": true,
|
| 13 |
+
"modelUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/model.onnx",
|
| 14 |
+
"vectorizerUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/vectorizer.json",
|
| 15 |
+
"vocabUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/vocab.json",
|
| 16 |
+
"labelMapUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/label-map.snapshot.json",
|
| 17 |
+
"trainingConfigUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/training-config.json",
|
| 18 |
+
"trainingMetricsUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/training-metrics.json",
|
| 19 |
+
"evalScoreUrl": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/eval-score.json",
|
| 20 |
+
"sizeBytes": 8509403,
|
| 21 |
+
"sha256": {
|
| 22 |
+
"model": "d2edefa1a9faf097925a446e18716ca329a497554ed76c5b470f1e34feec5647",
|
| 23 |
+
"vectorizer": "cc19fd5e3ca3283b80880b5f4588a7dcf309ab704b596419661888c70aeeff1e",
|
| 24 |
+
"vocab": "12f0bb3367fd98dfbf62ca423ffa3fd98b78a2cc569dc98b773bc9180e5138c4",
|
| 25 |
+
"labelMap": "69f7457edaf72aaaf97c7376ed4a22eca14dc38dc1a18284debf1428d6746ccb",
|
| 26 |
+
"trainingConfig": "af6d19173e821663912ece58d714e21716d2b1d1f40f7a1c8a0c7f2491cbd65f",
|
| 27 |
+
"trainingMetrics": "8ff8d349828803d9d95879de745a0c6821e92b0c24e1522d01126e8da9d3e10d",
|
| 28 |
+
"evalScoreJson": "a75363f974b49c40e7fa6a07e88904b5ac54f6add7e07c81d886e452653da3b1",
|
| 29 |
+
"evalScoreText": "edffd994d128b69a982588b64d5c811294ea1b94272c8872d39f025ac283e7f9",
|
| 30 |
+
"evalPredictionMetadata": "9726df40ede91ce3920ba6fce7413a7a9b7b6f362524a42440d0e4158c161943"
|
| 31 |
+
},
|
| 32 |
+
"files": {
|
| 33 |
+
"model": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/model.onnx",
|
| 34 |
+
"vectorizer": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/vectorizer.json",
|
| 35 |
+
"vocab": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/vocab.json",
|
| 36 |
+
"labelMap": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/label-map.snapshot.json",
|
| 37 |
+
"trainingConfig": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/training-config.json",
|
| 38 |
+
"trainingMetrics": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/training-metrics.json",
|
| 39 |
+
"evalScoreJson": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/eval-score.json",
|
| 40 |
+
"evalScoreText": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/eval-score.txt",
|
| 41 |
+
"evalPredictionMetadata": "https://huggingface.co/saibiindex/exitlens/resolve/main/ai-router/eval-prediction-metadata.json"
|
| 42 |
+
},
|
| 43 |
+
"input": {
|
| 44 |
+
"name": "input",
|
| 45 |
+
"dimension": 8000,
|
| 46 |
+
"featureKind": "char_word_ngram_tfidf",
|
| 47 |
+
"normalization": "l2",
|
| 48 |
+
"charNgrams": [
|
| 49 |
+
2,
|
| 50 |
+
3,
|
| 51 |
+
4,
|
| 52 |
+
5
|
| 53 |
+
],
|
| 54 |
+
"wordNgrams": [
|
| 55 |
+
1,
|
| 56 |
+
2
|
| 57 |
+
]
|
| 58 |
+
},
|
| 59 |
+
"outputs": {
|
| 60 |
+
"route": "route_logits",
|
| 61 |
+
"urgency": "urgency_logits",
|
| 62 |
+
"domains": "domains_logits",
|
| 63 |
+
"riskFrames": "riskFrames_logits"
|
| 64 |
+
},
|
| 65 |
+
"heads": [
|
| 66 |
+
"route",
|
| 67 |
+
"urgency",
|
| 68 |
+
"domains",
|
| 69 |
+
"riskFrames"
|
| 70 |
+
],
|
| 71 |
+
"calibrationVersion": "ai-router-calibration-v4-baseline",
|
| 72 |
+
"metrics": {
|
| 73 |
+
"bestEpoch": 18,
|
| 74 |
+
"validationRouteAccuracy": 0.9244444370269775,
|
| 75 |
+
"testRouteAccuracy": 0.8849557638168335,
|
| 76 |
+
"evalRouteAccuracy": 0.7916666666666666,
|
| 77 |
+
"evalUrgencyAccuracy": 0.625,
|
| 78 |
+
"evalDomainExactAccuracy": 0.43333333333333335
|
| 79 |
+
},
|
| 80 |
+
"fallback": {
|
| 81 |
+
"onLoadFailure": "rule_fragment_engine",
|
| 82 |
+
"onLowConfidence": "rule_fragment_engine"
|
| 83 |
+
},
|
| 84 |
+
"notes": [
|
| 85 |
+
"This is the first lightweight Exit Lens AI top-router baseline.",
|
| 86 |
+
"Inputs are client-side TF-IDF vectors produced from vectorizer.json.",
|
| 87 |
+
"The model owns route, urgency, domains, and riskFrames heads.",
|
| 88 |
+
"SafetyGate, MinimalSafetyInvariant, retrieval patches, and the rule/fragment engine remain active fallback floors."
|
| 89 |
+
]
|
| 90 |
+
}
|
ai-router/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d2edefa1a9faf097925a446e18716ca329a497554ed76c5b470f1e34feec5647
|
| 3 |
+
size 8509403
|
ai-router/training-config.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"modelKind": "tfidf_mlp_multihead",
|
| 4 |
+
"splitsDir": "data\\exit-lens\\ai-router\\splits",
|
| 5 |
+
"labelMap": "data\\exit-lens\\ai-router\\label-map.json",
|
| 6 |
+
"evalOnlyGuard": "data\\exit-lens\\ai-router\\evals\\exit_lens_ai_router_eval_subtle_boundaries_120.jsonl",
|
| 7 |
+
"artifactDir": "artifacts\\exit-lens-ai-router",
|
| 8 |
+
"seed": 42,
|
| 9 |
+
"epochs": 24,
|
| 10 |
+
"batchSize": 64,
|
| 11 |
+
"learningRate": 0.002,
|
| 12 |
+
"weightDecay": 0.0001,
|
| 13 |
+
"hiddenSize": 256,
|
| 14 |
+
"dropout": 0.2,
|
| 15 |
+
"maxFeatures": 8000,
|
| 16 |
+
"minCount": 1,
|
| 17 |
+
"lossWeights": {
|
| 18 |
+
"route": 1.0,
|
| 19 |
+
"urgency": 0.35,
|
| 20 |
+
"domains": 0.45,
|
| 21 |
+
"riskFrames": 0.2
|
| 22 |
+
},
|
| 23 |
+
"torchVersion": "2.5.1+cu121",
|
| 24 |
+
"cudaAvailable": true,
|
| 25 |
+
"cudaDevice": "NVIDIA GeForce RTX 3050",
|
| 26 |
+
"deviceUsed": "cuda"
|
| 27 |
+
}
|
ai-router/training-metrics.json
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schemaVersion": 1,
|
| 3 |
+
"bestEpoch": 18,
|
| 4 |
+
"datasetRows": {
|
| 5 |
+
"train": 1447,
|
| 6 |
+
"validation": 225,
|
| 7 |
+
"test": 226
|
| 8 |
+
},
|
| 9 |
+
"featureCount": 8000,
|
| 10 |
+
"history": [
|
| 11 |
+
{
|
| 12 |
+
"epoch": 1.0,
|
| 13 |
+
"trainLoss": 2.725772233691476,
|
| 14 |
+
"validationRouteAccuracy": 0.742222249507904,
|
| 15 |
+
"validationUrgencyAccuracy": 0.41333332657814026,
|
| 16 |
+
"validationDomainExactMatch": 0.1688888818025589
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"epoch": 2.0,
|
| 20 |
+
"trainLoss": 1.0665275461523798,
|
| 21 |
+
"validationRouteAccuracy": 0.8799999952316284,
|
| 22 |
+
"validationUrgencyAccuracy": 0.7244444489479065,
|
| 23 |
+
"validationDomainExactMatch": 0.3733333349227905
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"epoch": 3.0,
|
| 27 |
+
"trainLoss": 0.4015440568894292,
|
| 28 |
+
"validationRouteAccuracy": 0.8933333158493042,
|
| 29 |
+
"validationUrgencyAccuracy": 0.746666669845581,
|
| 30 |
+
"validationDomainExactMatch": 0.35111111402511597
|
| 31 |
+
},
|
| 32 |
+
{
|
| 33 |
+
"epoch": 4.0,
|
| 34 |
+
"trainLoss": 0.30222107489601696,
|
| 35 |
+
"validationRouteAccuracy": 0.902222216129303,
|
| 36 |
+
"validationUrgencyAccuracy": 0.7911111116409302,
|
| 37 |
+
"validationDomainExactMatch": 0.36000001430511475
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"epoch": 5.0,
|
| 41 |
+
"trainLoss": 0.24556793506259167,
|
| 42 |
+
"validationRouteAccuracy": 0.902222216129303,
|
| 43 |
+
"validationUrgencyAccuracy": 0.804444432258606,
|
| 44 |
+
"validationDomainExactMatch": 0.3911111056804657
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"epoch": 6.0,
|
| 48 |
+
"trainLoss": 0.2097144001771766,
|
| 49 |
+
"validationRouteAccuracy": 0.9066666960716248,
|
| 50 |
+
"validationUrgencyAccuracy": 0.8133333325386047,
|
| 51 |
+
"validationDomainExactMatch": 0.4000000059604645
|
| 52 |
+
},
|
| 53 |
+
{
|
| 54 |
+
"epoch": 7.0,
|
| 55 |
+
"trainLoss": 0.17907147377255708,
|
| 56 |
+
"validationRouteAccuracy": 0.9155555367469788,
|
| 57 |
+
"validationUrgencyAccuracy": 0.804444432258606,
|
| 58 |
+
"validationDomainExactMatch": 0.3822222352027893
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"epoch": 8.0,
|
| 62 |
+
"trainLoss": 0.1565815909162586,
|
| 63 |
+
"validationRouteAccuracy": 0.897777795791626,
|
| 64 |
+
"validationUrgencyAccuracy": 0.8133333325386047,
|
| 65 |
+
"validationDomainExactMatch": 0.4266666769981384
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"epoch": 9.0,
|
| 69 |
+
"trainLoss": 0.13488944328976402,
|
| 70 |
+
"validationRouteAccuracy": 0.9066666960716248,
|
| 71 |
+
"validationUrgencyAccuracy": 0.8222222328186035,
|
| 72 |
+
"validationDomainExactMatch": 0.4533333480358124
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"epoch": 10.0,
|
| 76 |
+
"trainLoss": 0.11913049601033876,
|
| 77 |
+
"validationRouteAccuracy": 0.9066666960716248,
|
| 78 |
+
"validationUrgencyAccuracy": 0.8266666531562805,
|
| 79 |
+
"validationDomainExactMatch": 0.46222221851348877
|
| 80 |
+
},
|
| 81 |
+
{
|
| 82 |
+
"epoch": 11.0,
|
| 83 |
+
"trainLoss": 0.10724479814253762,
|
| 84 |
+
"validationRouteAccuracy": 0.9155555367469788,
|
| 85 |
+
"validationUrgencyAccuracy": 0.8266666531562805,
|
| 86 |
+
"validationDomainExactMatch": 0.4444444477558136
|
| 87 |
+
},
|
| 88 |
+
{
|
| 89 |
+
"epoch": 12.0,
|
| 90 |
+
"trainLoss": 0.0992548724722681,
|
| 91 |
+
"validationRouteAccuracy": 0.9111111164093018,
|
| 92 |
+
"validationUrgencyAccuracy": 0.8266666531562805,
|
| 93 |
+
"validationDomainExactMatch": 0.48444443941116333
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"epoch": 13.0,
|
| 97 |
+
"trainLoss": 0.09296606416198082,
|
| 98 |
+
"validationRouteAccuracy": 0.902222216129303,
|
| 99 |
+
"validationUrgencyAccuracy": 0.8222222328186035,
|
| 100 |
+
"validationDomainExactMatch": 0.448888897895813
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"epoch": 14.0,
|
| 104 |
+
"trainLoss": 0.08509797466443832,
|
| 105 |
+
"validationRouteAccuracy": 0.897777795791626,
|
| 106 |
+
"validationUrgencyAccuracy": 0.800000011920929,
|
| 107 |
+
"validationDomainExactMatch": 0.4533333480358124
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"epoch": 15.0,
|
| 111 |
+
"trainLoss": 0.07718230477059884,
|
| 112 |
+
"validationRouteAccuracy": 0.9111111164093018,
|
| 113 |
+
"validationUrgencyAccuracy": 0.8088889122009277,
|
| 114 |
+
"validationDomainExactMatch": 0.47111111879348755
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"epoch": 16.0,
|
| 118 |
+
"trainLoss": 0.07122756940336497,
|
| 119 |
+
"validationRouteAccuracy": 0.9111111164093018,
|
| 120 |
+
"validationUrgencyAccuracy": 0.800000011920929,
|
| 121 |
+
"validationDomainExactMatch": 0.4888888895511627
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"epoch": 17.0,
|
| 125 |
+
"trainLoss": 0.06535266037018611,
|
| 126 |
+
"validationRouteAccuracy": 0.9066666960716248,
|
| 127 |
+
"validationUrgencyAccuracy": 0.8177777528762817,
|
| 128 |
+
"validationDomainExactMatch": 0.47999998927116394
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"epoch": 18.0,
|
| 132 |
+
"trainLoss": 0.05896506201586562,
|
| 133 |
+
"validationRouteAccuracy": 0.9244444370269775,
|
| 134 |
+
"validationUrgencyAccuracy": 0.8177777528762817,
|
| 135 |
+
"validationDomainExactMatch": 0.47111111879348755
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"epoch": 19.0,
|
| 139 |
+
"trainLoss": 0.05435310443187468,
|
| 140 |
+
"validationRouteAccuracy": 0.9111111164093018,
|
| 141 |
+
"validationUrgencyAccuracy": 0.8133333325386047,
|
| 142 |
+
"validationDomainExactMatch": 0.5155555605888367
|
| 143 |
+
},
|
| 144 |
+
{
|
| 145 |
+
"epoch": 20.0,
|
| 146 |
+
"trainLoss": 0.0570559631428104,
|
| 147 |
+
"validationRouteAccuracy": 0.8933333158493042,
|
| 148 |
+
"validationUrgencyAccuracy": 0.8133333325386047,
|
| 149 |
+
"validationDomainExactMatch": 0.47999998927116394
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"epoch": 21.0,
|
| 153 |
+
"trainLoss": 0.050885448542519446,
|
| 154 |
+
"validationRouteAccuracy": 0.9200000166893005,
|
| 155 |
+
"validationUrgencyAccuracy": 0.8088889122009277,
|
| 156 |
+
"validationDomainExactMatch": 0.4977777898311615
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"epoch": 22.0,
|
| 160 |
+
"trainLoss": 0.04543315021948066,
|
| 161 |
+
"validationRouteAccuracy": 0.9111111164093018,
|
| 162 |
+
"validationUrgencyAccuracy": 0.8222222328186035,
|
| 163 |
+
"validationDomainExactMatch": 0.5377777814865112
|
| 164 |
+
},
|
| 165 |
+
{
|
| 166 |
+
"epoch": 23.0,
|
| 167 |
+
"trainLoss": 0.042915537834950127,
|
| 168 |
+
"validationRouteAccuracy": 0.9066666960716248,
|
| 169 |
+
"validationUrgencyAccuracy": 0.8177777528762817,
|
| 170 |
+
"validationDomainExactMatch": 0.5244444608688354
|
| 171 |
+
},
|
| 172 |
+
{
|
| 173 |
+
"epoch": 24.0,
|
| 174 |
+
"trainLoss": 0.0421737050811381,
|
| 175 |
+
"validationRouteAccuracy": 0.897777795791626,
|
| 176 |
+
"validationUrgencyAccuracy": 0.8266666531562805,
|
| 177 |
+
"validationDomainExactMatch": 0.5377777814865112
|
| 178 |
+
}
|
| 179 |
+
],
|
| 180 |
+
"splits": {
|
| 181 |
+
"train": {
|
| 182 |
+
"rows": 1447,
|
| 183 |
+
"routeAccuracy": 1.0,
|
| 184 |
+
"urgencyAccuracy": 0.9993089437484741,
|
| 185 |
+
"domainExactMatch": 0.8507256507873535,
|
| 186 |
+
"riskFrameExactMatch": 0.6309605836868286
|
| 187 |
+
},
|
| 188 |
+
"validation": {
|
| 189 |
+
"rows": 225,
|
| 190 |
+
"routeAccuracy": 0.9244444370269775,
|
| 191 |
+
"urgencyAccuracy": 0.8177777528762817,
|
| 192 |
+
"domainExactMatch": 0.47111111879348755,
|
| 193 |
+
"riskFrameExactMatch": 0.46666666865348816
|
| 194 |
+
},
|
| 195 |
+
"test": {
|
| 196 |
+
"rows": 226,
|
| 197 |
+
"routeAccuracy": 0.8849557638168335,
|
| 198 |
+
"urgencyAccuracy": 0.747787594795227,
|
| 199 |
+
"domainExactMatch": 0.48672565817832947,
|
| 200 |
+
"riskFrameExactMatch": 0.5619469285011292
|
| 201 |
+
}
|
| 202 |
+
},
|
| 203 |
+
"evalOnlyDataUsedForTraining": false
|
| 204 |
+
}
|
ai-router/vectorizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ai-router/vocab.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|