Wir haben jede maschinelle Übersetzung geprüft. Die Prüfungen waren der Teil, der falsch war.

Sprachen

Bevor wir unser Übersetzungs-Kit veröffentlichten, haben wir es mit einer kleinen Beispiel-App getestet: 70 Strings in sechs Formaten (JSON, Flutter ARB, Android, Apple .strings, gettext und Markdown) ins Deutsche, Russische, Japanische, Arabische und Spanische, mit einem offenen Qwen-Modell (Qwen3.8-Flash-Next, quantisiert auf 4 Bit), bereitgestellt von vLLM auf unserem eigenen Rechner. Jeder übersetzte String durchläuft vor dem Schreiben Prüfungen. Vier der 350 wurden verworfen. Alle vier Verwerfungen waren falsch.

Worauf die Prüfungen achten

Eine Übersetzung, die eine App zerstört, ist schlimmer als keine, daher muss jeder String seine Platzhalter (%1$s, {name}, {{count}}), seine Tags, Zeilenumbrüche und URLs beibehalten; er muss im Schriftsystem der Zielsprache vorliegen; er darf nicht leer, ausufernd oder auf Englisch sein; und die Pluralformen müssen genau die Kategorien abdecken, die die Sprache hat. Ein String, der durchfällt, wird mit Angabe des Problems erneut angefordert, und einer, der erneut durchfällt, wird weggelassen, sodass die App für diesen einen String Englisch anzeigt.

Die vier Verwerfungen

Nachdem die Prüfungen korrigiert waren, forderte ein zweiter Durchlauf das Modell nur für diese vier Strings auf, da alles andere im Translation Memory lag, und schrieb alle 350 in 45 Sekunden.

Der Teil, von dem wir erwarteten, dass er scheitern würde, und der es nicht tat

Pluralformen sind die Stelle, an der naive Übersetzungen scheitern: Englisch hat one und other, Russisch one, few, many und other, Arabisch sechs Kategorien, Japanisch eine einzige Form. Wir forderten genau die Kategorien der Zielsprache an und prüften die Platzhalter jeder Form. Das Modell schrieb für Russisch "1 день, 2 дня, 5 дней" und alle sechs arabischen Formen. Jede Android-Pluralform bestand beim ersten Versuch in allen fünf Sprachen, ebenso jede Pluralnachricht außer der japanischen, die unsere Prüfung falsch interpretierte.

Was keine Prüfung erfasst

Anschließend übersetzten wir die 22 Web-Strings des Beispiels in alle 42 Sprachen, die Polyglot kennt: 924 von 924 Strings bestanden. Beim Durchlesen fiel einer auf. Auf Khmer war "You are offline" als Satz zurückgekommen, der "you are online" bedeutet. Es ist wohlgeformtes Khmer in der richtigen Schrift ohne fehlende Elemente, daher bestand es jede Prüfung. Prüfungen erfassen, was die App bricht; eine falsche Bedeutung braucht jemanden, der die Sprache liest.

Das Fazit

Automatische Prüfungen der maschinellen Ausgabe benötigen echte Ausgaben als Testgrundlage. Unit-Tests mit erfundenen Übersetzungen bestanden; ein echtes Modell, das echtes Japanisch schrieb, fand die Lücken in Minuten. Polyglot wird mit diesen Prüfungen, behoben, und mit den Tests für jeden der vier Fälle ausgeliefert. Die Prüfungen allein sind kostenlos und Open Source: translation-checks auf GitHub.

Aktualisiert: