Mein neuronales Maschinenübersetzungsprojekt – Überblick über Open-Source-Toolkits — Aktualisierung Dez. 2017

Mein neuronales Maschinenübersetzungsprojekt – Überblick über Open-Source-Toolkits — Aktualisierung Dez. 2017

Im Dez. 2017 aktualisiert.

Um eines der Open-Source-Toolkits für neuronale Maschinenübersetzung auszuwählen, die derzeit (September 2017) verfügbar sind, musste ich mir zuerst einen Überblick verschaffen. Im Folgenden fasse ich die einzelnen Funktionen der Toolkits aus meiner Sicht kurz zusammen. Diese Übersicht enthält keine der Toolkits, wie zum Beispiel Moses, die auf einem statistischen Ansatz basieren. Die folgenden Eindrücke sind hauptsächlich aus einigen Wochen in verschiedenen Supportforen und Online-Diskussionsgruppen entstanden.

Der dicke Fisch – TensorFlow

Von: Google (TensorFlow, das TensorFlow-Logo und alle damit verbundenen Marken sind Eigentum von Google Inc.)
Website: https://www.tensorflow.org
Sprache: Python (Haupt-API), mit APIs für C, Java und Go, letztere haben jedoch weniger Funktionalität als die Haupt-API.
Architektur: Da TensorFlow ein vollständiges Framework ist, stehen sowohl rekurrente als auch convolutional neuronale Netze zur Verfügung.
Whitepaper: Large-Scale Machine Learning on Heterogeneous Distributed Systems, M. Abadi et al., 9. November 2015
Support: Stack Overflow für technische Fragen; eine Google-Gruppe (was sonst?) für Diskussionen über Funktionen usw. auf höherer Ebene, obwohl auch einige technische Fragen in dieser Gruppe diskutiert werden; und ein Blog mit neuen Funktionen und Anleitungen
Zusammenfassung: TensorFlow ist ein großes Universal-Open-Source-Toolkit, nicht nur für Maschinenübersetzung, aber es gibt einige detaillierte Anleitungen zu Vektordarstellungen von Wörtern, rekurrente neuronale Netze und Sequenz-auf-Sequenz-Abbildungsmodelle, die die grundlegenden Bausteine für neuronale Maschinenübersetzungssysteme bilden. TensorFlow stellt auch verschiedene andere neuronale Netzwerkarchitekturen zur Verfügung und sehr viele Funktionen und Features, die man auch für die Maschinenübersetzung verwenden könnte. Aber es ist definitiv kein System für Anfänger.

Die benutzerfreundlichere Option – OpenNMT

Von: Harvard University und Systran
Website: http://opennmt.net
Sprache: Lua, aufgebaut auf dem Torch-Framework für maschinelles Lernen; es gibt auch zwei „leichtgewichtige“ Optionen für Python/PyTorch und C++.
Update: Seit Dezember 2017 gibt es neben der Lua-Hauptversion zwei weitere, voll funktionsfähige Versionen, eine Python-Version, die auf dem PyTorch-Framework aufbaut, und eine Tensorflow-Version.
Architektur: Rekurrentes neuronales Netz
Whitepaper: OpenNMT: Open-Source Toolkit for Neural Machine Translation, G. Klein et al., 10. Januar 2017
Support: ein sehr aktives Diskussionsforum (in dem unter anderem Systran’s CTO sehr aktiv ist)
Zusammenfassung: Eher ein System für Anfänger, obwohl die Wahl der Programmiersprache Lua, die nicht so verbreitet ist wie Python, ein Hindernis darstellen kann. Update Dezember 2017: Da es nun zwei neue Versionen gibt, die auf PyTorch und Tensorflow aufbauen, sollte die Sprache kein Hindernis mehr sein. Ende der Aktualisierung. Einige der Fragen, die im Forum besprochen werden, scheinen tatsächlich relativ trivial zu sein (und ich bin bei Weitem keine Expertin!). Wenn man sich also auf die Eingabe (das heißt, gut aufbereitete Korpora!) und auf verschiedene Metriken und Kostenfunktionen für die Ausgabe konzentrieren will, scheint dieses Toolkit die beste Wahl zu sein. Denn beim maschinellen Lernen sind Ein- und Ausgaben genauso wichtig wie die Architektur selbst — wie es so schön heißt „Garbage in – garbage out“. Deshalb ist es vielleicht für Sprachmittler und Sprachwissenschaftler sinnvoller, sich der Maschinenübersetzung von diesem Gesichtspunkt aus anzunähern, das heißt, sich auf die Eingabe (Korpora) und die Ausgabe („Übersetzungsqualitätsmetriken“) zu konzentrieren, anstatt sich über die Netzwerkarchitektur und den Code den Kopf zu zerbrechen.

Der neue Stern am Toolkit-Himmel – Nematus

Von: Universität Edinburgh
Website: keine eigene Website; das Projekt plus Anleitung ist auf Github zu finden.
Sprache: Python, aufgebaut auf dem Theano-Framework für maschinelles Lernen
Architektur: Rekurrentes neuronales Netz
Whitepaper: Nematus: a Toolkit for Neural Machine Translation, R. Sennrich et al., 13. März 2017
Support: eine Google-Gruppe
Zusammenfassung: Dies ist das neueste System auf dem Open-Source-Markt, jedoch nicht so aktiv wie die anderen zwei. Wie OpenNMT ist es ein Toolkit nur für Maschinenübersetzung, im Gegensatz zum Universal-Toolkit TensorFlow. Es verwendet Python im Gegensatz zur weniger bekannten Sprache Lua. Das wäre zumindest für mich ein Vorteil gegenüber OpenNMT. Der Nutzerstamm ist jedoch bei Weitem nicht so umfangreich oder aktiv wie der von OpenNMT. Deshalb scheint Nematus zumindest zum derzeitigen Zeitpunkt eine Option zu sein, die man im Auge behalten sollte, die aber nicht unbedingt die erste Wahl ist.

Brandneu – Sockeye

Von: Amazon
Website: Die Haupt-Website ist hier: http://sockeye.readthedocs.io/en/latest/. Das Projekt und eine Anleitung wurden auf Amazons AWS (Amazon Web Services) KI-Blog vorgestellt — https://aws.amazon.com/fr/blogs/ai/train-neural-machine-translation-models-with-sockeye/.
Sprache: Python, aufgebaut auf dem Apache-MXNet-Framework für maschinelles Lernen
Architektur: Rekurrentes neuronales Netz
Whitepaper: SOCKEYE: A Toolkit for Neural Machine Translation, F. Hieber et al., 15. Dez. 2017
Support: Abgesehen von der Website mit einer ausführlichen Dokumentation gibt es das allgemeine AWS-Diskussionsforum.
Zusammenfassung: Das neueste Open-Source-Toolkit für maschinelle Übersetzung ist für fortgeschrittene Anwender gedacht, die außerdem mit dem AWS-Setup und dem MXNet-Framework vertraut sind. Andererseits sind viele verschiedene Netzarchitekturen und erweiterte Optionen verfügbar, was den fortgeschrittenen Anwendern viel mehr Freiheit beim Experimentieren erlaubt.

Ein weiterer dicker Fisch – Fairseq

Von: Facebook
Website: Das Github-Projektarchiv ist hier zu finden: https://github.com/facebookresearch/fairseq. Eine Anleitung zur Verwendung von Fairseq wurde auf Facebooks Code-Blog veröffentlicht — https://code.facebook.com/posts/1978007565818999/a-novel-approach-to-neural-machine-translation/.
Sprache: Lua, aufbauend auf dem Torch-Framework für maschinelles Lernen
Architektur: Convolutional neuronales Netz
Whitepaper: Convolutional Sequence to Sequence Learning, J. Gehring et al., 8. Mai 2017
Support: eine Facebook-Gruppe (was sonst?) und eine Google-Gruppe.
Zusammenfassung: Dieses Toolkit ist ebenfalls für fortgeschrittene Anwender gedacht, erstens, weil es ebenfalls in der (im Vergleich zu Python) esoterischeren Sprache Lua geschrieben ist, und zweitens, weil die Zielgruppe anscheinend Forschungsexperten statt neugierige Endanwender sind. Außerdem ist das Toolkit ebenfalls relativ neu.

Carola F Berger

Website: https://www.cfbtranslations.com

Carola F. Berger ist eine Patentübersetzerin für die Sprachen Englisch und Deutsch mit einem Doktorat in Physik und einem Abschluss als Diplom-Ingenieurin der Technischen Physik. Sie ist von der American Translators Association für Übersetzungen vom Deutschen ins Englische und vom Englischen ins Deutsche zertifiziert. Carola ist derzeit als Webmaster im Vorstand der Northern California Translators Association und Administratorin von ATAs Science and Technology Division.

Kommentar abgeben

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.