Skontrolovali sme každý strojový preklad. Chybná bola práve tá kontrola.

Jazyky

Pred vydaním nášho balíka na preklad sme ho spustili na malej ukážkovej aplikácii: 70 reťazcov v šiestich formátoch (JSON, Flutter ARB, Android, Apple .strings, gettext a Markdown) do nemčiny, ruštiny, japončiny, arabčiny a španielčiny, s otvoreným modelom s 27 miliardami parametrov na našom vlastnom počítači. Každý preložený reťazec prechádza pred zápisom kontrolami. Štyri z 350 boli zamietnuté. Všetky štyri zamietnutia boli mylné.

Čo kontroly hľadajú

Preklad, ktorý rozbije aplikáciu, je horší ako žiadny, preto každý reťazec musí zachovať svoje zástupné symboly (%1$s, {name}, {{count}}), značky, zalomenia riadkov a URL adresy; musí byť v písme cieľového jazyka; nesmie byť prázdny, rozbehnutý do nekonečna alebo ponechaný v angličtine; a množné čísla musia pokrývať presne tie kategórie, ktoré jazyk má. Reťazec, ktorý kontrolou neprejde, sa znova vyžiada s uvedením problému a ten, ktorý znova zlyhá, sa vynechá, takže aplikácia pre tento jeden reťazec zobrazí angličtinu.

Štyri zamietnutia

Keď boli kontroly opravené, druhý beh požiadal model len o tieto štyri reťazce, keďže všetko ostatné bolo v pamäti prekladov, a zapísal všetkých 350 reťazcov za 45 sekúnd.

Časť, o ktorej sme čakali, že zlyhá, a nezlyhala

Množné čísla sú miesto, kde naívny preklad zlyhá: angličtina má jednotné a množné číslo, ruština má jednotné, málo, veľa a ostatné, arabčina šesť kategórií a japončina iba jeden tvar. Vyžiadali sme si presne kategórie cieľového jazyka a skontrolovali sme zástupné symboly v každom tvare. Model napísal „1 день, 2 дня, 5 дней“ pre ruštinu a všetkých šesť arabských tvarov. Každé množné číslo pre Android prešlo na prvýkrát vo všetkých piatich jazykoch a rovnako aj každá množná správa okrem japonskej, ktorú naša kontrola nesprávne vyhodnotila.

Čo nedokáže odhaliť žiadna kontrola

Potom sme preložili 22 reťazcov z ukážky do všetkých 42 jazykov, ktoré Polyglot pozná: 924 z 924 reťazcov prešlo. Pri čítaní sme si všimli jeden výrazný problém. V khmérčine sa veta „You are offline“ vrátila ako veta, ktorá hovorí „ste online“. Je to správne vytvorená khmérčina v správnom písme bez chýb, takže ju každá kontrola pustila. Kontroly zachytia to, čo rozbije aplikáciu; nesprávny význam potrebuje človeka, ktorý danému jazyku rozumie.

Zhrnutie

Automatické kontroly strojového výstupu potrebujú reálny výstup, proti ktorému sa testujú. Jednotkové testy s vymyslenými prekladmi prešli; reálny model píšuci reálnu japončinu našiel medzery za pár minút. Polyglot obsahuje tieto kontroly opravené a s testami pre každý zo štyroch prípadov.

Aktualizované: