Die englisch-japanische Übersetzung wird zu WMT, dem weltweit größten Workshop zur maschinellen Übersetzungsforschung, hinzugefügt. Ab 2020 wird DeepL Japanisch unterstützen, und die Aufmerksamkeit für die maschinelle japanische Übersetzung nimmt zu. Unter solchen Umständen kann es Personen geben, die das maschinelle Übersetzungsmodell ausprobieren oder lernen möchten. Ich bin auch ein Amateur auf diesem Gebiet, aber ich möchte es vielleicht in Zukunft verwenden. Ich habe selbst recherchiert, welche Art von maschineller Übersetzungsbibliothek derzeit in meiner Forschung verwendet wird. Ich habe nur Fairseq und das alte OpenNMT verwendet.
Laut Findings von WMT2019, einem Wettbewerb für maschinelle Übersetzung --Marian über 30%
Marian NMT Marian ist ein Framework, das vom Microsoft-Übersetzungsteam entwickelt wurde. Da es in C ++ geschrieben ist, ist es sehr schnell. In Bezug auf die Genauigkeit hat WMT2019 eine nachgewiesene Erfolgsbilanz, dass das System des Microsoft-Teams, das Marian verwendet, in verschiedenen Sprachpaaren einen hohen Rang einnimmt.
Soweit das Beispiel zu sehen ist, scheint die Verwendung ein Lernfluss zu sein, indem eine Vokabeldatei mit Marians Befehl aus dem tokenisierten Korpus erstellt wird.
Um die GPU-Version zu installieren, bereiten Sie CMake 3.5.1, GCC / G ++ 5.4, Boost 1.65.1, CUDA 9.0 oder neuer vor und erstellen Sie sie (ich habe sie erstellt, ohne etwas zu wissen, als ich jung war). Ich habe wegen Moos aufgegeben).
Leider habe ich bisher keinen japanischen Artikel über die Installation und Verwendung von Marian gefunden. Lesen Sie englische Dokumente und Tutorials.
Fairseq Fairseq ist ein Toolkit, das von Facebook AI entwickelt wurde. Es wurde in Pytorch geschrieben und ist so konzipiert, dass es leicht zu erweitern ist. Es hat den Eindruck, dass es ständig aktualisiert wird. In Bezug auf die Genauigkeit hat das Facebook-Team bei der WMT 2019 hervorragende Ergebnisse erzielt. Die Geschwindigkeit ist schneller, wenn Sie den FP16-Modus verwenden (anfangs war er schneller als Marian, aber ich glaube, ich habe irgendwo gesehen, dass das Update Marian schneller gemacht hat).
Verwenden Sie dazu ein spezielles Vorverarbeitungsskript, um den Korpus und das Vokabular vor dem Training zu binarisieren. Zum Zeitpunkt der Inferenz kann die Testanweisung unverändert eingegeben werden, ohne binärisiert zu werden. Eine meiner persönlichen Dankbarkeit ist, dass die binären Trainingsdaten und die Prüfpunktdatei des trainierten Modells nicht durch den Fairseq-Befehl überschrieben werden können (er stoppt mit einem Assersionsfehler). .. Es gibt viele Dinge, die ich über Fairseq schreiben kann, aber ich kann einen Artikel für sich selbst schreiben, und es gibt andere japanische Artikel, daher werde ich diese Ebene in diesem Artikel nur erwähnen. Es gibt auch ein offizielles Beispiel und es ist sehr einfach zu bedienen.
Die Installation ist fast in Ordnung, solange PyTorch funktioniert. Befolgen Sie für PyTorch die Installationsmethode gemäß Betriebssystem, Paket und CUDA-Version unter Offiziell.
OpenNMT OpenNMT ist ein Tool, das von der Harvard NLP Group und SYSTRAN entwickelt wurde. Es ist das älteste der heute vorgestellten. Früher gab es eine Lua-Version, aber es scheint, dass sie endete, als die Wartung der Fackel abgeschlossen war. Derzeit werden die PyTorch-Version (OpenNMT-py) und die TensorFlow-Version (OpenNMT-tf) weiterentwickelt. Die verfügbaren Funktionen der beiden sind sehr unterschiedlich. Neben maschineller Übersetzung und Sprachmodellierung sind auch Bild-zu-Text, Sprache-zu-Text, Zusammenfassung, Serienklassifizierung und Serien-Tagging möglich.
Es wird normalerweise als Lernprozess mit einer speziellen Vorverarbeitung verwendet.
In der Vergangenheit, als ich OpenNMT-py verwendete, litt ich zum Zeitpunkt der Installation unter der Version von torchtext. Das beste Modell für die Validierung wird nicht automatisch gespeichert. Wählen Sie das Modell daher aus, indem Sie das Lernprotokoll zum Zeitpunkt der Inferenz anzeigen. Ich war unzufrieden mit der Notwendigkeit und wusste nicht, welche Optionen und hohen Paras genau sein würden. Ich weiß nicht, was jetzt los ist. Es gibt so viele japanische Artikel, dass Sie vielleicht darauf verweisen möchten.
Tensor2Tensor T2T ist eine Deep Learning- und Datensatzbibliothek, die vom Google Brain-Team entwickelt wurde. Geschrieben in TensorFlow. Die anderen in diesem Artikel vorgestellten Bibliotheken haben maschinelle Übersetzung als Hauptfunktion, können jedoch Deep-Learning-Modelle für verschiedene Aufgaben wie Bildklassifizierung und Bilderzeugung verwenden.
Die grobe Verwendung besteht darin, einen Datengenerierungsbefehl auszuführen, um zu lernen und zu schließen, aber es gibt eine Option namens "--problem". Dies ist eine Option, um das zu verwendende Dataset anzugeben, anstatt nur die Aufgabe anzugeben. Daher ist es sehr einfach, mit dem vorhandenen Benchmark-Datensatz zu experimentieren. Wenn Sie jedoch den von Ihnen selbst erstellten Datensatz verwenden, müssen Sie eine Klasse definieren, die die Klasse "Problem" erbt. Es ist schön, dass diese Spezifikation das Modell und die Daten (und die Vorverarbeitungsmethode) explizit verknüpft, aber ich denke, andere Bibliotheken sind hinsichtlich der Benutzerfreundlichkeit überlegen.
Es gibt japanische Artikel und ein offizielles Jupyter-Notizbuch, daher habe ich den Eindruck, dass die Beispiele umfangreich sind. Außerdem kann TensorFlow Serving verwendet werden. Daher frage ich mich, ob dies bei Verwendung eines Deep-Learning-Modells in der Produktion der Fall sein wird.
Sockeye Seq2Seq-Framework mit Apache MXNet (Incubating). Die Verwendung scheint OpenNMT ähnlich zu sein.
Ich konnte die Funktionen dieser Bibliothek nicht verstehen, wenn ich sie mir ansah ... Es tut mir leid, dass sie wie ein Blog aussieht ...
Ich denke, es ist besser, es von oben zu versuchen.
Recommended Posts