Uygulamayı aç
Moonborn — Developers

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.

Nereye git