Aller au contenu

Docs · Référence

Calibration et abstention

Une décision n'est utile que si sa confiance est honnête. Jevis corrige les probabilités dans la gateway, mesure l'écart sur les outcomes et propose une correction.

Principe

Les backends renvoient des probabilités brutes. La calibration est appliquée dans la gateway, une seule fois, de la même façon pour tous les backends : les résultats restent comparables d'un backend à l'autre.

kev.serve applique déjà sa propre température, apprise à l'entraînement. Par défaut, la température de la gateway vaut donc 1,0 (identité) et le refit s'applique par-dessus. Ce choix est en cours de validation.

À chaque appel

  • Probabilités brutes reçues du backend.
  • Temperature scaling par type de question, avec la température de la version de schéma (temperature_by_type, 1,0 par défaut). Sur des probabilités : p′ᵢ ∝ pᵢ^(1/T), puis renormalisation.
  • choice, score et confidence sont recalculés après température. Seules les probabilities (et noul) du backend font foi.
  • Si la confiance est sous abstain_threshold : x_abstain: true.

Abstention

seuil 0,600,81
department → billingx_abstain: false
seuil 0,600,54
tone → annoyedx_abstain: true
  • confidence = max(probabilities) ; pour un noul, confiance implicite max(noul, 1 − noul).
  • La réponse est conservée. x_abstain signale que l'application doit escalader (humain, autre règle, autre question).
  • Le seuil appartient à la version de schéma : le changer, c'est publier une nouvelle version.

Mesure

En V1, les métriques sont calculées à la demande par l'API admin (pas de worker planifié) : jointure des réponses et des outcomes sur une fenêtre (90 jours par défaut), par schéma et par type de question.

Courbe de fiabilité sur 10 bins : l'exactitude suit la confiance à quelques points près, ECE 0,035.00,5100,51confiance annoncéeexactitude observéeECE = 0,035
ECE = Σb=1..B ( |Sb| / N ) · | acc(Sb) − conf(Sb) |
MétriqueDéfinition
accuracyPart des réponses égales à l'outcome.
BrierErreur quadratique moyenne entre probabilités et outcome.
ECEÉcart moyen pondéré entre confiance et exactitude, sur B = 10 bins équilargeurs de la probabilité max.
binsLa courbe de fiabilité : par bin, n, confiance moyenne, exactitude.
abstain_ratePart des réponses marquées x_abstain.
Sous 200 décisions avec outcome, rien n'est affiché : ready: false et les métriques valent null. Un ECE sur 30 points ne veut rien dire.

Refit de température

  • La température est réajustée sur les décisions d'indice pair.
  • Elle est validée sur les décisions d'indice impair (même protocole que le dépôt kev).
  • Le résultat est une proposition : proposed_temperature et proposed_ece.
  • Un schema_editor l'applique en créant une nouvelle version de schéma, puis en la publiant. Pas de changement silencieux en production.

API

GET /admin/v1/calibration/{schema_id}?days=90&version=

200 OK
{
  "schema_id": "…", "version": 2, "window_days": 90,
  "n_decisions": 1240, "n_with_outcome": 312, "min_required": 200, "ready": true,
  "abstain_rate": 0.08,
  "by_type": {
    "choice": {
      "n": 312, "accuracy": 0.86, "brier": 0.11, "ece": 0.043,
      "bins": [ { "lo": 0.0, "hi": 0.1, "n": 0, "confidence": null, "accuracy": null } ],
      "current_temperature": 1.0, "proposed_temperature": 1.18, "proposed_ece": 0.021
    }
  }
}

Raccourci : POST /admin/v1/calibration/{schema_id}/propose-version crée le brouillon de version avec les températures proposées.