Uygulamayı aç
Moonborn — Developers

Voice fingerprint vektörleri (embeddings) — içinde ne var

voyage-3-large ile vektöre dönüştürülmüş, tek vektörde ortalanmış 50 senaryo. Her tasarım kararının arkasındaki akıl yürütme — neden senaryolar, neden 50, neden kosinüs, neden voyage.

Voice fingerprint, kurana kadar basit gibi görünen özelliklerden biridir. Çalışma zamanı sözleşmesi: persona başına bir vektör, sohbet yanıtı başına bir kosinüs uzaklığı. Altındaki şekil daha çok nüans taşır.

Bu yazı 4 tasarım kararının arkasındaki akıl yürütmedir: neden senaryolar, neden 50, neden ortalama, neden voyage-3-large.

Bu yazıda ne anlatılıyor

  • Persona belgesi ve senaryo — neden Mask'i doğrudan vektöre çıkarmıyoruz
  • 50 senaryo neden — gürültü ve maliyet ödünleşmesi
  • Ortalama ve birleştirme (concatenate) — bilgi-zengin ve ucuz
  • voyage-3-large neden — çok dilli F1 karşılaştırmaları
  • Yakaladığı + yakalamadığı — drift'in kapsamı

Kavram sayfası: Voice fingerprint.

Karar 1: Senaryolar, persona belgesi değil

Naif yaklaşım: persona'nın Mask katmanını doğrudan vektöre çıkar — ses, ton, imza ifadeler. Başarısız, çünkü Mask:

  • Performatif çıktı değildir — ne yazıldığı değil
  • Reçeteli üstveridir — ne reçete edildiği

"Sıcak ama doğrudan" reçete edilmiş persona her zaman sıcak konuşmaz; o davranışı çağıran durumlarda sıcak konuşur. Reçetenin vektörü gerçek yanıtların vektöründen ayrışır.

Çözüm: persona'yı konuşturuyoruz — 50 farklı bağlamda 50 kez. Vektörler konuşmanın, reçetenin değil. Drift detection konuşmayı konuşmaya karşılaştırır.

Karar 2: 50 senaryo

Aynı persona üzerinde iki fingerprint hesaplaması çalıştır, sonuç vektörlerini karşılaştır:

Senaryo sayısıÇalıştırmalar arası kosinüs uzaklığı
< 30> 0.10 (gürültülü)
30< 0.10
50< 0.03 (belirleyici / deterministik kabul edilebilir)
80< 0.02

80+ varyansı platoya iner. Daha yüksek gidebilirdik; gitmiyoruz, çünkü:

  • 50 senaryoda fingerprint üretimi $0.03 ve 60 saniye
  • 100 senaryoya çıkarmak maliyeti 2 kata çıkarır, marjinal kararlılık kazancı ihmal edilebilir

50 tatlı noktadır.

Karar 3: Ortalama, birleştirme değil

İki yaklaşım:

Seçenek A — Birleştirme (50×1024 matris)

Senaryo başı aykırı değerleri (outliers) korur. Sorgu zamanı: sohbet yanıtını matrise karşı satır başı en küçük uzaklıkla karşılaştır.

Bilgi yakalama:  Yüksek (senaryo başı detay korunur)
Sorgu maliyeti:  Yanıt başına 50 kat daha pahalı

Seçenek B — Ortalama (1024 vektör)

50 vektör tek vektörde ortalanır. Sorgu zamanı: tek kosinüs uzaklığı.

Bilgi yakalama:  Orta (merkezi eğilim korunur, aykırı değerler yumuşar)
Sorgu maliyeti:  Tek çağrı, ucuz

Sohbet = her yanıt skorlanır. Amortisman kazancı seçenek B'de büyük. B seçildi.

Bilgi kaybı düşündüğümüzden az önemli: drift'in tam ölçtüğü şey seste merkezi eğilimdir. Aykırı değerler yumuşatılır; yanıt merkezi eğilime uyuyorsa seste demektir.

Karar 4: voyage-3-large

Etiketli drift veri kümesinde (insanların seste / ses-dışı işaretlediği yanıtlar) 7 vektör modelini karşılaştırdık. Dile göre F1 skoru:

ModelENTRDEESFRPTGenel
voyage-3-large0.910.890.900.880.900.870.89
OpenAI text-embedding-3-large0.920.810.840.820.850.790.84
Cohere embed-multilingual-v3.00.890.860.880.850.870.840.87
Cohere embed-english-v3.00.930.620.680.650.710.590.70

(Örnek F1 değerleri; gerçek kalibrasyon veri kümesi değişir.)

voyage-3-large dil başına degradasyon (bozulma) olmadan en yüksek genel F1'i veriyor. OpenAI yakın (%2 içinde) ama dil geçişine duyarlı — Türkçe konuşan persona, İngilizce konuşan aynı persona ile karşılaştırıldığında daha yüksek drift skorladı, iki yanıt da seste olduğunda bile.

Cohere embed-english-v3.0 sadece EN ölçütlerinde (benchmarks) kazanır, çok dilliye keskin bozulma gösterir.

Yakaladığı

  • Kayıt drift'i (register drift) — resmi persona argo (slang) kullanmaya başladı
  • Konusal drift (topical drift) — konu değiştiğinde ses değişen karakter (sistem isteminin otoritesi soluyor)
  • Sağlayıcı model drift'i — Opus → Sonnet ses yüzeyini değiştirir; drift değişimi yakalar
  • Uzun bağlam çürümesi — geçmiş büyüdükçe persona genele (generic) drift eder; skor kademeli tırmanır

Yakalamadığı

  • İçerik doğruluğu — mükemmel sesle yanlış cevap ~0.05 skorlar
  • Persona aralığına uyan ton kayması — "stres altında soğuk ol" reçeteli persona stresli senaryoda soğuk konuşur, drift değil, tasarımdır

Yeniden hesaplama

Fingerprint'ler her persona refine'ında yeniden hesaplanır:

Düzenleme modu (edit mode)Fingerprint yenilenir mi?
Elle düzenleme (üstveri, imza ifade)✓ eğer Mask alanıysa
Cascade refine (Soul değişir)✓ (Mask yeniden üretilir)
Refine (Mask üzerinde eksen dönüşümü)
Lock refine (yalnız Surface)✗ (Mask değişmez)

Elle zorla: POST /v1/personas/{id}/fingerprint/recompute.

Ödünleşme özeti

Voice fingerprint'leme bir mühendislik ödünleşmesidir:

KararTercihSebep
Ortalama ve birleştirmeOrtalamaSorgu başı ucuz
50 ve 100 senaryo50Marjinal gürültü vs 2 kat maliyet
Kosinüs ve ÖklidKosinüsBüyüklükten bağımsız yön ölçer
voyage-3-large ve alternatifvoyageÇok dilli kararlılık

Hiçbiri sonsuz değildir. Denetim hattı yeniden kalibrasyon (recalibration) geçişi içerir; yeni bir vektör modeli etiketli F1'i maddi olarak iyileştirirse, geçiş işiyle (migration job) geçeceğiz.

İlgili

Voice fingerprint

Kavram anatomisi + sınır durumları (edge cases).

Open →
Drift detection

Fingerprint'in çalışma zamanı karşılığı.

Open →
Drift detection nasıl çalışır

Kardeş yazı — kosinüs skoru ve eşik kalibrasyonu.

Open →
Üretim hattının içi

Fingerprint'in hatta nereye sığdığı.

Open →