Tüm makine çevirilerini kontrol ettik. Yanlış olan kısım kontrollerin kendisiydi.

Diller

Çeviri paketimizi yayınlamadan önce küçük bir örnek uygulamada denedik: Kendi makinemizde 27 milyar parametreli açık bir model kullanarak, altı farklı formattaki (JSON, Flutter ARB, Android, Apple .strings, gettext ve Markdown) 70 metin dizesini Almanca, Rusça, Japonca, Arapça ve İspanyolcaya çevirdik. Çevrilen her metin dizesi yazılmadan önce kontrollerden geçer. 350 dizeden dördü reddedildi. Dört reddin hepsi de yanlıştı.

Kontroller neye bakar

Bir uygulamayı bozan bir çeviri, hiç olmamasından daha kötüdür; bu yüzden her metin dizesi yer tutucularını (%1$s, {name}, {{count}}), etiketlerini, satır sonlarını ve URL'lerini korumalı; hedef dilin alfabesinde olmalı; boş, taşkın veya İngilizce kalmamalı ve çoğul biçimleri, dilin sahip olduğu kategorileri tam olarak kapsamalı. Başarısız olan bir dize, sorun belirtilerek yeniden istenir ve tekrar başarısız olursa dışarıda bırakılır; böylece uygulama o tek dize için İngilizceyi gösterir.

Dört red kararı

Kontroller düzeltildikten sonra, diğer her şey çeviri belleğinde olduğu için ikinci bir çalıştırma modelden yalnızca o dört dizeyi istedi ve 350 dizenin tamamını 45 saniyede yazdı.

Başarısız olmasını beklediğimiz ama olmayan kısım

Çoğul biçimleri, basit çevirinin tökezlediği yerdir: İngilizcede bir ve diğer vardır, Rusçada bir, az, çok ve diğer, Arapçada altı kategori, Japoncada tek bir biçim. Hedef dilin tam olarak hangi kategorileri olduğunu istedik ve her biçimin yer tutucularını kontrol ettik. Model Rusça için "1 день, 2 дня, 5 дней" ve Arapça için altı biçimin tamamını yazdı. Beş dilin tamamında tüm Android çoğul biçimleri ilk denemede geçti ve kontrolümüzün yanlış okuduğu Japonca mesaj hariç tüm çoğul mesajlar geçti.

Hiçbir kontrolün yakalayamadığı şey

Ardından örnekteki 22 web metnini Polyglot'un bildiği 42 dilin tamamına çevirdik: 924 metnin 924'ü geçti. Bunları okurken biri öne çıktı. Khmerce'de "You are offline" ifadesi "çevrimiçisiniz" anlamına gelen bir cümle olarak dönmüştü. Doğru alfabeyle, eksiksiz ve dilbilgisi açısından doğru bir Khmerce cümlesiydi, bu yüzden tüm kontrollerden geçti. Kontroller uygulamayı bozan şeyleri yakalar; yanlış bir anlamı ancak o dili okuyan bir kişi fark eder.

Çıkarılacak ders

Makine çıktısı üzerindeki otomatik kontrollerin, test edilecek gerçek bir çıktıya ihtiyacı vardır. Uydurma çevirilerle yapılan birim testleri geçti; gerçek bir modelin gerçek Japonca yazması, eksikleri dakikalar içinde buldu. Polyglot, bu kontrollerle, düzeltilmiş haliyle ve dört durumun her biri için testlerle birlikte gelir.

Güncellendi: