Drift & retrain
DriftWatch golden sets, slice alerts, teacher models; FineForge retrain, promote, and rollback.
DriftWatch watches quality against golden sets and live slices. FineForge turns an alert into a versioned fix — prompt patch, adapter, or LoRA — then promote or roll back with deploy markers on the same dashboards.
Loop
LensAI + TraceForge → live traffic + traces
↓
DriftWatch → score vs golden / teacher / slices
↓ alert
FineForge → patch | train | eval gate
↓
promote (canary→full) or rollback
↓
RouteIQ + prompt_version / model_id updatedDriftWatch signals
| Signal | Symptom | Operator action |
|---|---|---|
| Prompt regression | Score drop + deploy marker | Rollback prompt_version |
| Slice drift | One intent hurts; others fine | Intent-specific prompt or route |
| Tool schema drift | Tool errors↑ + score↓ | Adapter fix via FineForge |
| Provider shift | Score drop without your deploy | Pin provider version; escalate |
| Cost-cutting drift | Quality↓ after budget force-cheap | Restore hard path |
| Latency-induced | P99↑ with incomplete answers | RouteIQ failover |
| Golden set stale | Eval–prod gap widens | Refresh cases from failures |
| Alert fatigue | Ack rate collapses | Raise thresholds; critical slices only |
Key metrics: driftwatch.score.prod, driftwatch.slice.score, driftwatch.delta, driftwatch.alerts.open. Details: DriftWatch.
Golden sets and teachers
- Golden set — fixed prompts + expected outcomes (business success, not HTTP 200). Stratify by intent.
- Teacher model — stronger model scores or critiques owned SLM outputs; freeze the judge prompt to avoid labeler drift.
- Shadow — send % traffic to a candidate; compare
driftwatch.score.shadowvs prod before promote.
drift:
enabled: true
window: 24h
golden_set: /var/lib/inferix/golden/support.jsonl
teacher: provider/strong
slices:
- intent
- locale
- tenant_tier
alert:
min_delta: 0.05
min_samples: 50FineForge jobs
| Job type | When | Artifact |
|---|---|---|
| Prompt patch | Surgical regression | prompt_version bump |
| Adapter fix | Schema / tool 4xx | tool_schema_version + fixtures |
| Teacher critique | Failure cluster | Repair suggestions → patch |
| Distill / LoRA | Cheap path specialization | owned model revision |
| Eval harness expand | New failure mode | Cases from DriftWatch samples |
| Bundle promote | Prompt+adapter+route | Atomic multi-artifact version |
# Start a FineForge job from an alert
# DESIGN TARGET — :4000 is not shipped; see Status
curl -X POST http://localhost:4000/v1/fineforge/jobs \
-H "Authorization: Bearer $INFERIX_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"alert_id": "dw_alert_8f2a",
"kind": "prompt_patch",
"model": "owned/slm-support",
"shadow_pct": 5
}'Design target / not shipped
Design target / not shipped The POST /v1/fineforge/jobs example above is the intended suite API. DriftWatch and FineForge are Scaffold — this curl is not runnable from make up.
Promote and rollback
- Canary — 1% traffic; auto-promote if
driftwatch.delta> ε and error budget holds. - Full promote — pin new
model_id/prompt_version; emit deploy marker for LensAI dashboards. - Rollback — instant previous revision; FineForge keeps the bad candidate for postmortem → new eval case.
Change one variable
Cascade interaction drift (D19) confounds RCA when route and prompt change together. Promote prompt, adapter, or route rule in separate steps unless you ship an explicit FineForge bundle.