Dayanıklılık: başarımın düştüğü koşulları bulmak
Başarım düşüşünü ortalama yerine dilimli ölçümle görünür kılmayı, gürültü ile konuşma hızı ile aksan ile kanalı ayrı değişken olarak tasarlamayı ve sessizlikte üretilen uydurma metni ayıklamayı öğretir.
Önkoşul: Machine Learning, Large Language Model
BU DERSİN SONUNDA
- Başarım düşüşünü tek ortalama yerine dilimli ölçümle görünür kılmak
- Gürültü, hız, konuşmacı ve kanalı tek değişkenli kümelerle ayrıştırmak
- Sessizlikten veya gürültüden doğan uydurma metni ayıklamak
- Düşüşe hattın hangi halkasında müdahale edileceğini seçmek
- 1
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 5
Proje
Rotadaki projeye katkı
Kısa cevap
Dayanıklılık ortalamanın değil en kötü dilimin işidir. Tek bir ortalama hata oranı, sistemin hangi koşulda kullanılamaz hâle geldiğini gizler; bu yüzden ölçüm koşullara bölünerek yapılır. Koşulları gelişigüzel toplamak da yetmez: gürültü, konuşma hızı, konuşmacı ve kanal ayrı değişkenler olarak tasarlanır, böylece düşüş tek bir sebebe bağlanabilir ve müdahale doğru halkaya yapılır.
Teori: neden ortalama yanıltır#
Bir dilimdeki hata, o dilimin kümedeki payıyla çarpılarak ortalamaya girer. Kullanıcıların küçük bir bölümünü etkileyen ama onlar için sistemi tümüyle çalışmaz kılan bir koşul, ortalamayı yalnızca küçük ölçüde bozar ve gözden kaçar. Raporun birimi bu yüzden ortalama değil, en kötü dilim ile o dilimin payı olmalıdır. İyileştirme kararı da aynı çiftle verilir: ne kadar kötü ve kaç kişiyi ilgilendiriyor.
Dilimleri yorumlanabilir kılan şey, tek değişkenin değiştirilip diğerlerinin sabit tutulmasıdır. Aynı cümleyi hem gürültülü hem hızlı hem farklı mikrofonla kaydederseniz, düşüşü hangi değişkenin ürettiğini söyleyemezsiniz; elinizde yalnızca 'kötü koşulda kötü' gibi bir bilgi kalır. Bir taban küme kurup — sessiz ortam, normal tempo, tek mikrofon — her değişkeni ayrı ayrı bozmak, karşılaştırmayı bir sebebe bağlanabilir hâle getirir.
Gürültünün kendisi de tek bir şey değildir. Kararlı geniş bantlı gürültü (klima, motor) çözümleyiciyi öznitelik düzeyinde zorlar. Araya giren ikinci konuşma daha zararlıdır, çünkü rastgele gürültüden farklı olarak modelin dil beklentisine uyan sahte kanıt üretir; sonuç silinen kelime değil, söylenmemiş kelimedir. Yankı ve kırpma üçüncü bir sınıftır: sinyali bozar, üstüne gürültü eklemez — bu yüzden kayıt seviyesini yükseltmek çözüm değildir, kırpmayı daha da artırır; kazancı düşürmek, mikrofon mesafesini ve odanın akustiğini düzeltmek gerekir.
Uygulamada: değişkenler ve belirtileri#
| Değişken | Nasıl değiştirilir | Aranacak hata biçimi | Müdahale halkası |
|---|---|---|---|
| Kararlı gürültü | Aynı cümleleri klima veya motor sesi açıkken kaydet | Kısa kelimelerde yerine koyma artar | Yakalama ve öznitelik |
| Araya giren konuşma | Arka planda ikinci bir konuşma açık | Söylenmemiş kelime eklenir | Etkinlik tespiti ve ayıklama |
| Konuşma hızı | Aynı metni hızlı ve yavaş okut | Hızlıda silme, yavaşta erken kesme | Devir eşiği |
| Konuşmacı ve ağız | Aynı metni farklı konuşmacılarla kaydet | Belirli ses birimlerinde tutarlı hata | Sözlük ve son düzeltme |
| Kanal kalitesi | Telefon, kulaklık ve dizüstü mikrofonunu karşılaştır | Üst bant kaybında sürtünmeli karışıklığı | Yakalama ve kazanç |
| Sessizlik | Konuşma içermeyen kayıt gönder | Boşluktan metin üretilir | Ayıklama eşiği |
Boşluktan doğan metin#
Konuşma yoksa çıktı da boş olmalıdır; ama çözümleyiciler sessizliğe ve gürültüye metin uydurabilir. Mekanizma şudur: çözümleyici her girdi penceresi için en olası metin dizisini üretir ve 'hiçbir şey' seçeneği bu dizilerle aynı ölçekte yarışmaz. Dil modeli bileşeni de eğitim verisinde sık geçen kalıpları — kapanış cümleleri, yinelenen ifadeler — zayıf kanıtla üretmeye yatkındır. Bu yüzden ayıklama tek bir işarete değil, birkaç zayıf işaretin birlikteliğine dayandırılır.
def uydurma_suphesi(parca, esik) -> bool:
"""Zayıf işaretleri birleştirir; hiçbiri tek başına karar vermez.
eşik değerleri kendi sessiz kayıtlarınızda kalibre edilir,
sabit yazılmaz.
"""
konusma_orani = parca.konusma_suresi / max(parca.toplam_sure, 1e-6)
kelime_hizi = len(parca.metin.split()) / max(parca.konusma_suresi, 1e-6)
isaretler = [
# etkinlik tespiti neredeyse hiç konuşma görmedi ama metin geldi
konusma_orani < esik.konusma_orani and parca.metin.strip() != "",
# çok kısa konuşmadan çok kelime çıktı
kelime_hizi > esik.kelime_hizi,
# aynı ifade art arda yineleniyor
parca.yinelenen_ifade_sayisi >= esik.yineleme,
# çözümleyici kendi güvenini düşük bildirdi
parca.ortalama_guven < esik.guven,
]
return sum(isaretler) >= esik.isaret_sayisiKarar: hangi halkaya müdahale#
- 1En kötü dilimi yaz
Dilimli raporda en yüksek hata oranına sahip koşulu ve o koşulun kullanıcı payını birlikte kaydet.
- 2Ara çıktıyı yan yana koy
Aynı kaydın etkinlik tespiti işaretlerini, kısmi metnini ve nihai metnini karşılaştır.
- 3Hata türüne bak
Silmeler baskınsa kesim, eklemeler baskınsa ayıklama, yerine koymalar baskınsa yakalama ve sözlük.
- 4En ucuz halkadan başla
Kazanç ve eşik ayarı, terim listesi, ayıklama kuralı; model değiştirmek son adımdır.
- 5Taban kümede de yeniden ölç
Düzeltmeyi yalnızca hedef dilimde değil taban kümede de ölç; bir dilimi düzeltirken başkasını bozup bozmadığını gör.
Sık yapılan hata#
En sık hata, dayanıklılığı ince ayarla çözülecek bir konu sanmak. İnce ayar davranış öğretir — biçim, terim tercihi, alan sözlüğü — ama kaydın taşımadığı bilgiyi geri getirmez. Mikrofon kırpıyorsa veya üst bant kanal tarafından atılmışsa, hiçbir ince ayar o bilgiyi geri koyamaz; çözüm yakalama tarafındadır. İkinci sık hata, düzeltmeyi yalnızca sorunlu dilimde ölçmek: terim listesine eklenen kelimeler o dilimi iyileştirirken benzer sesli başka kelimeleri taban kümede bozabilir ve bu bozulma ölçülmediği için fark edilmez.
LAB · UYGULAMALI ALIŞTIRMA
Dilimli dayanıklılık raporu çıkarın
- 1Taban kümeyi kurun: sessiz ortam, normal tempo, tek mikrofon ile uygulamanızın gerçek isteklerinden 20 cümle kaydedin; referans metinleri okuduğunuz listeden alın.
- 2Aynı 20 cümleyi dört varyantta tekrar kaydedin — kararlı gürültü, arka planda ikinci konuşma, hızlı tempo, farklı mikrofon — ve her varyantta yalnızca tek değişkeni değiştirin.
- 3Beş kümeyi de hattınızdan geçirip her küme için hata oranını üç hata türüne ayırarak hesaplayın.
- 4Konuşma içermeyen beş kayıt ekleyin (yalnızca oda sesi, klavye, müzik) ve boş çıkmayan kaç kayıt olduğunu sayın.
- 5Ders içindeki şüphe kuralını uygulayın; eşikleri taban kümede yanlış pozitif üretmeyecek biçimde ayarlayıp sayıları yineleyin.
- 6Beş kümeyi ve konuşmasız kayıtları tek tabloda raporlayın; en kötü dilimi, payını ve müdahale etmeyi seçtiğiniz halkayı yazın.
Beklenen çıktı
Tek değişkenli beş kayıt kümesi için hata türlerine ayrılmış dilimli dayanıklılık tablosu, kalibre edilmiş uydurma metin ayıklama eşikleri ve seçilen müdahale halkasının gerekçesi.
Sık sorulan sorular
Her dilim için kaç kayıt yeterli?
Kesin bir sayı vermek mümkün değil; kararı dilim başına düşen cümle sayısıyla verin. Bir dilimde iki-üç cümle varsa tek bir kötü kayıt oranı uçurur ve karşılaştırma yapılamaz. Pratik ölçüt şudur: dilime bir cümle daha eklediğinizde oran belirgin biçimde oynuyorsa küme henüz küçüktür.
Gürültü azaltma eklemeli miyim?
Önce ölçün, sonra ekleyin. Gürültü azaltma sinyali de değiştirir: bastırma agresifleştikçe sürtünmeli sesleri ve cümle sonlarını da siler, yani bir dilimi düzeltirken başkasını bozabilir. Taban kümede işlem öncesi ve sonrası hata oranlarını karşılaştırmadan hattı kalıcı olarak değiştirmeyin.
Çözümleyiciyi kendi alan terimlerimle ince ayarlamak işe yarar mı?
Alan terimleri tutarlı biçimde yanlış çözümleniyorsa evet; ince ayar modele hangi kelime dizilerinin beklendiğini öğretir, yani belirsizliği sizin alanınız lehine çözer. Ama denemeden önce iki ucuz yol var: çözümleyici destekliyorsa terim listesi veya sözlük ipucu vermek, ve son düzeltme katmanında bilinen karışıklıkları eşleştirmek. Hiçbiri kayıtta bulunmayan bilgiyi geri getirmez.
LEARN
Konuşma Arayüzü Geliştirici rotasına devam et
Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.
