Drift detection nasıl çalışır
Her chat yanıtı personanın voice fingerprint'ine karşı skorlanır. Eşik altı gönderir; üstü alert verir. Skorun içinde ne var.
Voice drift'in en kısa özeti: cosine distance, voice fingerprint, eşik. Daha uzun hikaye daha ilginç — fingerprint'in içinde ne var, neden cosine, eşik neden default'ta 0.30'da iniyor, recovery gerçekten ne yapar.
Fingerprint
Generation zamanında, Moonborn personaya karşı elli kısa senaryo
çalıştırır — "sürprize tepki ver," "bir yabancıya yaranı açıkla,"
"katılmadığın bir isteği reddet." Her senaryo kısa bir yanıt
üretir; her yanıt voyage-3-large ile embed edilir. Elli embedding
tek bir vektöre ortalanır. İşte voice fingerprint.
Neden elli? Otuzun altında, ortalama gürültü sinyale baskın gelir. Sekseni'in üstünde, marjinal bilgi birikmeyi durdurur. Elli, dahili kalibrasyon koşularından sweet spot.
Neden concatenation yerine ortalama? Tek yüksek boyutlu ortalama vektör yanıt başı karşılaştırmayı hızlı tutar — chat turu başına bir cosine distance, elli değil.
Skor
Bir chat yanıtı geldiğinde, aynı modelle embed ederiz. Fingerprint'e karşı cosine distance:
drift = 1 - dot(reply, fp) / (||reply|| * ||fp||)
Aralık [0, 1]. Sıfır "ortalamayla özdeş" anlamına gelir; bir
"orthogonal" anlamına gelir. Gerçek yanıtlar 0.1–0.4 etrafında
kümelenir.
Neden cosine
Euclidean distance büyüklüğe duyarlı — iki kat daha uzun bir yanıt iki kat off-voice olduğu anlamına gelmez. Cosine açıyı ölçer, büyüklük kirlenmesi olmadan "anlamsal alanda yön"ü yakalar. Voice fingerprint kağıt izi (Bommasani et al. 2023, diğerleri) aynı sebep için tutarlı olarak cosine kullanır.
Eşik
Default 0.30. Manuel etiketlemeden burada indik: 50 değerlendirici
500 yanıtı "in voice" ya da "off voice" olarak skorladı; cosine
0.30 etiketlere karşı F1'i maksimize etti. Daha sıkı eşikler (0.20)
daha çok meşru drift yakalar ama çok iyi yanıtı flag'ler; daha gevşek
(0.40) insanların net çağırdığı drift'i kaçırır.
Audience başı tune edebilir — ve etmelisin:
- Müşteri desteği, regüle ses: 0.20.
- Genel ürün chat'i: 0.30 (default).
- Yaratıcı oyun: 0.45.
Runtime contract üzerinden persona başı override'lar.
Aksiyonlar
engine.pipeline.drift_detection.action_on_alert:
warn(default) — yanıt gider, alert loglanır, webhook tetiklenir.auto_recover— Moonborn fingerprint'i yeniden enjekte ederek bir kez regenerate eder; hangi daha düşük skorluyorsa onu gönderir.block— yanıt dönmez; client 409 alır.
auto_recover en ilginç olanı. Alert başına ekstra bir LLM çağrısına
mal olur (production'da yanıtların belki %5'i), ama kurtarılan yanıt
yaklaşık %80 oranında eşik altında skorlar. Destek yüzeyleri için,
bu değerli bir bütçe.
Olmadığı şey
Drift detection voice'ı ölçer. Şunları ölçmez:
- Faktüel doğruluk. Mükemmel sesle yanlış bir cevap yine düşük skorlar.
- Yararlılık. Yavan, in-voice non-answer düşük skorlar.
- Güvenlik. Mükemmel persona sesindeki nefret söylemi düşük skorlar.
Bunlar için farklı sinyallere ihtiyacın var: ground-truth doğrulama, kalite rubric'leri, moderasyon pipeline'ı. Drift birkaç input'tan biri — buna göre kalibre et.