<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nlpl.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yvessche</id>
	<title>Nordic Language Processing Laboratory - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nlpl.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yvessche"/>
	<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/Special:Contributions/Yvessche"/>
	<updated>2026-06-04T23:17:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.10</generator>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=1468</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=1468"/>
		<updated>2022-10-21T11:59:12Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0.1-3990724]  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0-a89691f]  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/1.0.1_20221015] || efmaral and eflomal word alignment tools      || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_20191218] || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/mttools nlpl-mttools/20221015] || A collection of preprocessing and evaluation scripts for machine translation      || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/mttools nlpl-mttools/20191218] || A collection of preprocessing and evaluation scripts for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/2.3.0 || OpenNMT Python Library || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation scripts for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.2.0] || Stanford NLP Neural Pipeline || Saga || ? || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser/2.3.1] || Uppsala Parser || Saga,Abel || December 2019 || Sara Stymne ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/turboparser nlpl-turboparser/2.3.0] || TurboParser || Saga|| January 2020 || Sara Stymne ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Saga, Puhti,Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=1467</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=1467"/>
		<updated>2022-10-21T11:58:29Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses//4.0.1-3990724]  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0-a89691f]  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/1.0.1_20221015] || efmaral and eflomal word alignment tools      || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_20191218] || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/mttools nlpl-mttools/20221015] || A collection of preprocessing and evaluation scripts for machine translation      || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/mttools nlpl-mttools/20191218] || A collection of preprocessing and evaluation scripts for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py//2.3.0 || OpenNMT Python Library || Puhti || October 2022 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation scripts for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.2.0] || Stanford NLP Neural Pipeline || Saga || ? || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser/2.3.1] || Uppsala Parser || Saga,Abel || December 2019 || Sara Stymne ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/turboparser nlpl-turboparser/2.3.0] || TurboParser || Saga|| January 2020 || Sara Stymne ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Saga, Puhti,Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=1466</id>
		<title>Translation/mttools</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=1466"/>
		<updated>2022-10-21T11:55:28Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the mttools module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&lt;br /&gt;
module load nlpl-mttools/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: 3990724&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.35&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.8&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version:  0.1.97&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 2.2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''multeval'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tool to evaluate machine translation with various scores (BLEU, TER, METEOR) and to perform statistical significance testing with bootstrap resampling&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/jhclark/multeval&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.5.1 with METEOR 1.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The multeval.sh script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''compare-mt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compare the output of multiple systems for language generation, including machine translation, summarization, dialog response generation. Computes common evaluation scores and runs analyses to find salient differences between the systems.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To run METEOR, consult the module-specific help page for the exact path.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/neulab/compare-mt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.2.10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The compare-mt executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=1465</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=1465"/>
		<updated>2022-10-21T11:54:18Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]]). Note: the most recent version on Puhti (as of Oct 2022) is &amp;lt;code&amp;gt;nlpl-moses/4.0.1-3990724&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]]). Note: the most recent version on Puhti (as of Oct 2022) is &amp;lt;code&amp;gt;nlpl-efmaral/1.0.1_20221015&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian-NMT module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/2.3.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details. Note: the most recent version on Puhti (as of Oct 2022) is &amp;lt;code&amp;gt;nlpl-mttools/20221015&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Tools for processing parallel corpora (OPUS tools) ===&lt;br /&gt;
* The bundle of '''OPUS tools''' is installed on Puhti and Saga in the &amp;lt;code&amp;gt;nlpl-opus&amp;lt;/code&amp;gt; module. [[#Using the OPUS Tools module|Usage notes below.]]&lt;br /&gt;
* '''Uplug''' is installed in the &amp;lt;code&amp;gt;nlpl-uplug&amp;lt;/code&amp;gt; module.&lt;br /&gt;
* '''Udpipe''' is installed in the &amp;lt;code&amp;gt;nlpl-udpipe&amp;lt;/code&amp;gt; module.&lt;br /&gt;
* '''Corpus Work Bench''' is installed in the &amp;lt;code&amp;gt;nlpl-cwb&amp;lt;/code&amp;gt; module.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the OPUS Tools module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the OPUS tools module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-opus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also load CWB, Uplug and Udpipe modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-cwb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;module nlpl-uplug&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-udpipe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=1464</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=1464"/>
		<updated>2022-10-21T11:53:17Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]]). Note: the most recent version on Puhti (as of Oct 2022) is &amp;lt;code&amp;gt;nlpl-moses/4.0.1-3990724&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]]). Note: the most recent version on Puhti (as of Oct 2022) is &amp;lt;code&amp;gt;nlpl-efmaral/1.0.1_20221015&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian-NMT module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/2.3.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details. Note: the most recent version on Puhti (as of Oct 2022) is &amp;lt;code&amp;gt;nlpl-mttools/20221015&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Tools for processing parallel corpora (OPUS tools) ===&lt;br /&gt;
* The bundle of '''OPUS tools''' is installed on Puhti and Saga in the &amp;lt;code&amp;gt;nlpl-opus&amp;lt;/code&amp;gt; module. [[#Using the OPUS Tools module|Usage notes below.]]&lt;br /&gt;
* '''Uplug''' is installed in the &amp;lt;code&amp;gt;nlpl-uplug&amp;lt;/code&amp;gt; module.&lt;br /&gt;
* '''Udpipe''' is installed in the &amp;lt;code&amp;gt;nlpl-udpipe&amp;lt;/code&amp;gt; module.&lt;br /&gt;
* '''Corpus Work Bench''' is installed in the &amp;lt;code&amp;gt;nlpl-cwb&amp;lt;/code&amp;gt; module.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the OPUS Tools module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the OPUS tools module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-opus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also load CWB, Uplug and Udpipe modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-cwb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;module nlpl-uplug&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-udpipe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=858</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=858"/>
		<updated>2019-12-18T14:31:39Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian-NMT module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral/0.1_20191218&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=857</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=857"/>
		<updated>2019-12-18T14:31:20Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Activity B: Statistical and Neural Machine Translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0-a89691f]  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_20191218] || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/mttools nlpl-mttools/20191218] || A collection of preprocessing and evaluation scripts for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation scripts for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=856</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=856"/>
		<updated>2019-12-18T14:30:40Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Activity B: Statistical and Neural Machine Translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0-a89691f]  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_20191218] || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/mttools nlpl-mttools/20191218] || A collection of preprocessing and evaluation scripts for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
|  [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Marian-NMT_module nlpl-marian-nmt/1.8.0-eba7aed] || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation scripts for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=855</id>
		<title>Translation/mttools</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=855"/>
		<updated>2019-12-18T14:22:25Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Using the mttools module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the mttools module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&lt;br /&gt;
module load nlpl-mttools/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools/20191218&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: a89691f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.35&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.1.85&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 1.4.3&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''multeval'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tool to evaluate machine translation with various scores (BLEU, TER, METEOR) and to perform statistical significance testing with bootstrap resampling&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/jhclark/multeval&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.5.1 with METEOR 1.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The multeval.sh script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''compare-mt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compare the output of multiple systems for language generation, including machine translation, summarization, dialog response generation. Computes common evaluation scores and runs analyses to find salient differences between the systems.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To run METEOR, consult the module-specific help page for the exact path.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/neulab/compare-mt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.2.7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The compare-mt executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=854</id>
		<title>Translation/mttools</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=854"/>
		<updated>2019-12-18T14:22:00Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Using the mttools module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the mttools module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&lt;br /&gt;
module load nlpl-mttools/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools/20191218&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: a89691f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.35&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.1.85&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 1.4.3&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''multeval'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tool to evaluate machine translation with various scores (BLEU, TER, METEOR) and to perform statistical significance testing with bootstrap resampling&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/jhclark/multeval&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.5.1 with METEOR 1.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The multeval.sh script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''compare-mt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compare the output of multiple systems for language generation, including machine translation, summarization, dialog response generation. Computes common evaluation scores and runs analyses to find salient differences between the systems.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To run METEOR, consult the help &amp;lt;code&amp;gt;module spider nlpl-mttools&amp;lt;/code&amp;gt; for the exact path.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/neulab/compare-mt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.2.7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The compare-mt executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=853</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=853"/>
		<updated>2019-12-18T14:17:02Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Neural machine translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian-NMT module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral/0.1_20191218&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Marian-NMT module =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=852</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=852"/>
		<updated>2019-12-18T14:16:36Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral/0.1_20191218&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Marian-NMT module =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=851</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=851"/>
		<updated>2019-12-18T14:15:37Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Using the Efmaral module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral/0.1_20191218&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=850</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=850"/>
		<updated>2019-12-18T14:14:56Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Using the Moses module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc         # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=849</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=849"/>
		<updated>2019-12-18T14:14:40Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Using the Moses module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /projappl/nlpl/software/modules/etc       # Puhti&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc   # Saga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses/4.0-a89691f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=848</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=848"/>
		<updated>2019-12-18T14:12:59Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Available software and data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The '''Moses''' SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools '''efmaral and eflomal''' are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* '''Marian-NMT''' is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* '''OpenNMT-py''' is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''OpenNMT-py''' is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The '''nlpl-mttools''' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=847</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=847"/>
		<updated>2019-12-18T14:12:23Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Available software and data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* The Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM (release 4.0) is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* The word alignment tools efmaral and eflomal are installed on Puhti and Saga in the nlpl-efmaral module: &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* Marian-NMT is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* OpenNMT-py is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* OpenNMT-py is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit. It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=846</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=846"/>
		<updated>2019-12-18T14:10:46Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
The software and data are commissioned on the Finnish Puhti and on the Norwegian Saga superclusters.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with SALM:&lt;br /&gt;
** Release 4.0, installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-moses/4.0-a89691f&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_20191218&amp;lt;/code&amp;gt; installed on Puhti and Saga ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* Marian-NMT is installed on Puhti and Saga as &amp;lt;code&amp;gt;nlpl-marian-nmt/1.8.0-eba7aed&amp;lt;/code&amp;gt;. [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
* OpenNMT-py is installed on Saga using NLPL-internal Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/1.0.0rc2/3.7&amp;lt;/code&amp;gt;.&lt;br /&gt;
* OpenNMT-py is installed on Puhti using system-wide Pytorch: &amp;lt;code&amp;gt;nlpl-opennmt-py/nlpl-opennmt-py/1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** It is installed on Puhti and Saga: &amp;lt;code&amp;gt;nlpl-mttools/20191218&amp;lt;/code&amp;gt;. See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/cluster/shared/nlpl/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=845</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=845"/>
		<updated>2019-12-18T13:58:37Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* On Abel and Taito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-moses/4.0-a89691f  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-efmaral/0.1_20191218 || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-mttools/20191218 || A collection of preprocessing and evaluation scripts for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation scripts for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=844</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=844"/>
		<updated>2019-12-18T13:58:30Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* On Saga and Puhti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-moses/4.0-a89691f  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-efmaral/0.1_20191218 || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-mttools/20191218 || A collection of preprocessing and evaluation scripts for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation script for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=843</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=843"/>
		<updated>2019-12-18T13:54:55Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* On Saga and Puhti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-moses/4.0-a89691f  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-efmaral/0.1_20191218 || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-mttools/20191218 || A collection of preprocessing and evaluation script for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation script for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=842</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=842"/>
		<updated>2019-12-18T13:48:46Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Activity B: Statistical and Neural Machine Translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-moses/4.0-a89691f  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-efmaral/nlpl-efmaral/0.1_20191218 || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-mttools/20191218 || A collection of preprocessing and evaluation script for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/taito_abel#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation script for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=841</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=841"/>
		<updated>2019-12-18T13:47:00Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Activity B: Statistical and Neural Machine Translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-moses/4.0-a89691f  || Moses SMT system, including GIZA++, MGIZA, fast_align || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-efmaral/nlpl-efmaral/0.1_20191218 || efmaral and eflomal word alignment tools      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-mttools/20191218 || A collection of preprocessing and evaluation script for machine translation      || Puhti, Saga || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0rc2/3.7 || OpenNMT Python Library || Saga || October 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opennmt-py/1.0.0 || OpenNMT Python Library || Puhti || December 2019 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-marian-nmt/1.8.0-eba7aed || Marian neural machine translation system      || Puhti, Saga || December 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation script for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=840</id>
		<title>Infrastructure/software/catalogue</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Infrastructure/software/catalogue&amp;diff=840"/>
		<updated>2019-12-18T13:41:49Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Activity B: Statistical and Neural Machine Translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This page provides a high-level summary of NLPL-specific software installed on either of our two systems.&lt;br /&gt;
As a rule of thumb, NLPL aims to build on generic software installations provided by the&lt;br /&gt;
system maintainers (e.g. development tools and libraries that are not discipline-specific),&lt;br /&gt;
using the [http://modules.sourceforge.net/ &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt;s infrastructure].&lt;br /&gt;
For example, an environment like OpenNMT is unlikely to be used by other disciplines,&lt;br /&gt;
and NLPL stands to gain from in-house, shared expertise that comes with maintaining&lt;br /&gt;
a project-specific installation.&lt;br /&gt;
On the other hand, the CUDA libraries are general extensions to the operating system&lt;br /&gt;
that most users of deep learning frameworks on gpus will want to use; hence, CUDA is&lt;br /&gt;
most appropriately installed by the core system maintainers.&lt;br /&gt;
Frameworks like PyTorch and TensorFlow, arguably, present a middle ground to this&lt;br /&gt;
rule of thumb:&lt;br /&gt;
In principle, they are not discipline-specific, but in mid-2018 at least the demand for&lt;br /&gt;
installations of these frameworks is strong within NLPL, and the project will likely&lt;br /&gt;
benefit from growing its competencies in this area.&lt;br /&gt;
&lt;br /&gt;
= Module Catalogue =&lt;br /&gt;
&lt;br /&gt;
The discipline-specific modules maintained by NLPL are not activated by default.&lt;br /&gt;
To make available the NLPL community directory of software modules, on top of the&lt;br /&gt;
pre-configured, system-wide modules, one needs to execute the following&lt;br /&gt;
(on Abel, Puhti, or Taito):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /proj*/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Saga, the NLPL community directory is in a different location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module use -a /cluster/shared/nlpl/software/modules/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will at times assume a shell variable &amp;lt;tt&amp;gt;$NLPLROOT&amp;lt;/tt&amp;gt; that points to the&lt;br /&gt;
top-level project directory, i.e. &amp;lt;tt&amp;gt;/projects/nlpl/&amp;lt;/tt&amp;gt; (on Abel),&lt;br /&gt;
&amp;lt;tt&amp;gt;/proj/nlpl/&amp;lt;/tt&amp;gt; (on Taito),&lt;br /&gt;
&amp;lt;tt&amp;gt;/projappl/nlpl/&amp;lt;/tt&amp;gt; (on Puhti), and&lt;br /&gt;
&amp;lt;tt&amp;gt;/cluster/shared/nlpl/&amp;lt;/tt&amp;gt; (on Saga).&lt;br /&gt;
&lt;br /&gt;
For NLPL users, we recommend that one adds the above &amp;lt;tt&amp;gt;module use&amp;lt;/tt&amp;gt; command&lt;br /&gt;
to the shell start-up script, e.g. &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt; in the user home directory.&lt;br /&gt;
&lt;br /&gt;
To inspect what is available, one can use the &amp;lt;tt&amp;gt;avail&amp;lt;/tt&amp;gt; sub-command&lt;br /&gt;
(on Abel), e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module avail 2&amp;gt;&amp;amp;1 | grep nlpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User-Installed Software =&lt;br /&gt;
&lt;br /&gt;
Even if NLPL strives to make available a comprehensive set of ready-to-run sofware modules,&lt;br /&gt;
users will at times want to install their own add-on components.&lt;br /&gt;
For Python add-on components, some&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/user emerging instructions] are available.&lt;br /&gt;
&lt;br /&gt;
= Activity A: Basic Infrastructure =&lt;br /&gt;
&lt;br /&gt;
Interoperability of NLPL installations with each other, as well as with system-wide&lt;br /&gt;
software that is maintained by the core operations teams for Abel and Taito, is no&lt;br /&gt;
small challenge; neither is parallelism across the two systems, for example in&lt;br /&gt;
available software (and versions) and techniques for ‘mixing and matching’.&lt;br /&gt;
These challenges are discussed in some more detail with regard to the&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/python Python programming environment]&lt;br /&gt;
and with regard to&lt;br /&gt;
[http://wiki.nlpl.eu/index.php/Infrastructure/software/frameworks common Deep Learning frameworks].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cupy/5.4.0 || Matrix Library Accelerated by CUDA || Abel (3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cython/0.29.3 || C Extensions for Python || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-dynet/2.1 || DyNet Dynamic Neural Network Toolkit (CPU) || Abel (3.5, 3.7) || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/nltk nlpl-nltk/3.3] || Natural Language Toolkit (NLTK) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/0.4.1] || PyTorch Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.0.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/pytorch nlpl-pytorch/1.1.0] || PyTorch Deep Learning Framework (CPU and GPU) || Abel (3.5, 3.7) || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/spacy nlpl-spacy/2.0.12] || spaCy: Natural Language Processing in Python || Abel, Taito || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/python nlpl-scipy/201901] || SciPy Ecosystem of Python Add-Ons || Abel (3.5, 3.7) || January 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Infrastructure/software/tensorflow nlpl-tensorflow/1.11] || TensorFlow Deep Learning Framework (CPU and GPU) || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity B: Statistical and Neural Machine Translation =&lt;br /&gt;
&lt;br /&gt;
=== On Saga and Puhti ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On Abel and Taito ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb]      || Moses SMT system, including GIZA++, MGIZA, fast_align || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Moses_module nlpl-moses/4.0-65c75ff]      || Moses SMT System Release 4.0, including GIZA++, MGIZA, fast_align, SALM&amp;lt;br/&amp;gt;Some minor fixes added to existing install 2/2018.&amp;lt;br/&amp;gt; Should not break compatibility except when using tokenizer.perl for Finnish or Swedish. || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_07_20] || efmaral and eflomal word alignment tools      || Taito || July 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_2017_11_24] || efmaral and eflomal word alignment tools      || Taito, Abel || November 2017 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Efmaral_module nlpl-efmaral/0.1_2018_12_13/17] || efmaral and eflomal word alignment tools      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_HNMT_module nlpl-hnmt/1.0.1] || HNMT neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/opennmt-py nlpl-opennmt-py/0.2.1] || OpenNMT Python Library || Abel, Taito || September 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_Marian_module nlpl-marian/1.2.0] || Marian neural machine translation system      || Taito || March 2018 || Yves Scherrer&lt;br /&gt;
|-&lt;br /&gt;
| marian/1.5 || Marian neural machine translation system      || Taito || June 2018 || CSC staff&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Translation/home#Using_the_mttools_module nlpl-mttools/2018_12_23] || A collection of preprocessing and evaluation script for machine translation      || Taito, Abel || December 2018 || Yves Scherrer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity C: Data-Driven Parsing =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-corenlp/3.9.2 || Stanford CoreNLP Suite (Including All Models) || Abel || May 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/dozat nlpl-dozat/201812] || Stanford Graph-Based Parser by Tim Dozat (v3) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/stanfordnlp nlpl-stanfordnlp/0.1.1] || Stanford NLP Neural Pipeline || Abel || February 2019 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/uuparser nlpl-uuparser] || Uppsala Parser || Abel || December 2018 || &lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe/1.2.1-devel] || UDPipe 1.2 with Pre-Trained Models      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/udpipe nlpl-udpipe_future/3.7] || UDPipe Future || Abel || June 2019 || Andrey Kutuzov&lt;br /&gt;
|-&lt;br /&gt;
| [http://wiki.nlpl.eu/index.php/Parsing/repp nlpl-repp/201812] || REPP Tokenizer (and Sentence Splitter) || Abel || December 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity E: Pre-Trained Word Embeddings =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.6.0 || Topic Modeling and Word Vectors Library || Taito, Abel || October 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.0 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || December 2018 || Stephan Oepen&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-gensim/3.7.3 || Topic Modeling and Word Vectors Library || Abel (3.5, 3.7) || May 2018 || Stephan Oepen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Activity G: OPUS Parallel Corpus =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module Name/Version !! Description !! System !! Install Date !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-cwb/3.4.12 || Corpus Work Bench (CWB)      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.1 || Various OPUS Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/0.2 || Various OPUS Tools      || Taito, Abel || 2018 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-opus/201901 || Various OPUS Tools      || Taito, Abel || January 2019 || Jörg Tiedemann&lt;br /&gt;
|-&lt;br /&gt;
| nlpl-uplug/0.3.8dev || UPlug Parallel Corpus Tools      || Taito, Abel || November 2017 || Jörg Tiedemann&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=838</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=838"/>
		<updated>2019-12-16T13:05:34Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Puhti supercluster.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at &amp;lt;code&amp;gt;/projappl/nlpl&amp;lt;/code&amp;gt;. On Saga, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at ???.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=837</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=837"/>
		<updated>2019-12-16T13:05:14Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Puhti supercluster.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the &amp;lt;code&amp;gt;$NLPL&amp;lt;/code&amp;gt; project directory is located at `/projappl/nlpl`. On Saga, the `$NLPL` project directory is located at ???.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=836</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=836"/>
		<updated>2019-12-16T13:04:08Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Puhti supercluster.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
On Puhti, the `$NLPL` project directory is located at `/projappl/nlpl`. On Saga, the `$NLPL` project directory is located at ???.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=835</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=835"/>
		<updated>2019-12-16T13:03:13Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Puhti supercluster.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Puhti and Saga):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$NLPL/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=834</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=834"/>
		<updated>2019-12-16T13:01:06Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
This page is currently being updated (YS 16.12.2019)&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Puhti supercluster.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=833</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=833"/>
		<updated>2019-12-16T13:00:23Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Puhti supercluster.&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/taito_abel&amp;diff=832</id>
		<title>Translation/taito abel</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/taito_abel&amp;diff=832"/>
		<updated>2019-12-16T13:00:00Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
'''This page is outdated and kept for documentation purposes only! It reflects the status of the translation activity mid-2019, before the launch of Puhti and Saga.'''&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/taito_abel&amp;diff=831</id>
		<title>Translation/taito abel</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/taito_abel&amp;diff=831"/>
		<updated>2019-12-16T12:59:23Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
'''This page is outdated and kept for documentation purposes only!'''&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=830</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=830"/>
		<updated>2019-12-16T12:58:25Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
[[Translation/taito_abel|Translation activity on the Taito and Abel servers (outdated)]]&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/taito_abel&amp;diff=829</id>
		<title>Translation/taito abel</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/taito_abel&amp;diff=829"/>
		<updated>2019-12-16T12:55:11Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: Created page with &amp;quot;Placeholder&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Placeholder&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=828</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=828"/>
		<updated>2019-12-16T12:51:05Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT19 news task data (German-English and Finnish-English), consisting of cleaned parallel data and backtranslations used in the Helsinki submissions (28G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=665</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=665"/>
		<updated>2019-05-09T12:08:35Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* Neural machine translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
* A more recent version of OpenNMT-py is installed on Taito-GPU and can be loaded with &amp;lt;code&amp;gt;module load nlpl-opennmt-py-gpu&amp;lt;/code&amp;gt;. This version may solve some Cuda errors observed with the above version on Taito-GPU.&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=664</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=664"/>
		<updated>2019-05-09T12:04:55Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* MT example scripts and pretrained models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files &amp;lt;tt&amp;gt;testdata.out.fi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (&amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; shows how to do that) or copy &amp;lt;tt&amp;gt;testdata.en&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files &amp;lt;tt&amp;gt;testdata.out.fi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with &amp;lt;tt&amp;gt;module load nlpl-opennmt-py&amp;lt;/tt&amp;gt; (without the &amp;lt;tt&amp;gt;-gpu&amp;lt;/tt&amp;gt; suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files &amp;lt;tt&amp;gt;testdata.out.fi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; script to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file (&amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; shows how to do that) or copy &amp;lt;tt&amp;gt;testdata.en&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files &amp;lt;tt&amp;gt;testdata.out.fi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files &amp;lt;tt&amp;gt;testdata.out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (&amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; shows how to do that) or copy &amp;lt;tt&amp;gt;testdata.en&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files &amp;lt;tt&amp;gt;testdata.out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with &amp;lt;tt&amp;gt;module load nlpl-opennmt-py&amp;lt;/tt&amp;gt; (without the &amp;lt;tt&amp;gt;-gpu&amp;lt;/tt&amp;gt; suffix).&lt;br /&gt;
* The output of script 6 should be similar to the provided files &amp;lt;tt&amp;gt;testdata_out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (&amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; shows how to do that) or copy &amp;lt;tt&amp;gt;testdata.en&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files &amp;lt;tt&amp;gt;testdata_out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on sentence-aligned data from the OPUS collection&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and the OPUS corpus collection as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model for a &amp;quot;low-resource language&amp;quot; from an MT point of view, Norwegian.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files &amp;lt;tt&amp;gt;testdata_out.tok.en&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;testdata_out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (&amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; shows how to do that) or copy &amp;lt;tt&amp;gt;testdata.true.no&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;6_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files &amp;lt;tt&amp;gt;testdata_out.tok.en&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;testdata_out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on sentence-aligned data from the OPUS collection&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and the OPUS corpus collection as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model for a &amp;quot;low-resource language&amp;quot; from an MT point of view, Norwegian.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with &amp;lt;tt&amp;gt;module load nlpl-opennmt-py&amp;lt;/tt&amp;gt; (without the &amp;lt;tt&amp;gt;-gpu&amp;lt;/tt&amp;gt; suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files &amp;lt;tt&amp;gt;testdata_out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (&amp;lt;tt&amp;gt;1_prepare.sh&amp;lt;/tt&amp;gt; shows how to do that) or copy &amp;lt;tt&amp;gt;testdata.en&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;4_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files &amp;lt;tt&amp;gt;testdata_out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;evaluation.txt&amp;lt;/tt&amp;gt;. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;1_train.sh&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;2_test.sh&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;validate.sh&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;composeXML.py&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script &amp;lt;tt&amp;gt;1_train.sh&amp;lt;/tt&amp;gt;, then &amp;lt;tt&amp;gt;2_test.sh&amp;lt;/tt&amp;gt;. The &amp;lt;tt&amp;gt;validate.sh&amp;lt;/tt&amp;gt; script is automatically called during training and does not have to be run separately. The &amp;lt;tt&amp;gt;composeXML.py&amp;lt;/tt&amp;gt; script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided &amp;lt;tt&amp;gt;test.out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;test.out.en.xml&amp;lt;/tt&amp;gt; files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;lt;tt&amp;gt;2_test.sh&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;composeXML.py&amp;lt;/tt&amp;gt; scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy &amp;lt;tt&amp;gt;test.eu&amp;lt;/tt&amp;gt; to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in &amp;lt;tt&amp;gt;2_test.sh&amp;lt;/tt&amp;gt; and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files &amp;lt;tt&amp;gt;test.out.en&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;test.out.en.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=663</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=663"/>
		<updated>2019-05-09T11:57:57Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* opus-noen-onmt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata_out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on sentence-aligned data from the OPUS collection&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and the OPUS corpus collection as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model for a &amp;quot;low-resource language&amp;quot; from an MT point of view, Norwegian.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.tok.en`, `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.true.no` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata_out.tok.en`, `testdata_out.en` and `evaluation.txt`.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on sentence-aligned data from the OPUS collection&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and the OPUS corpus collection as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model for a &amp;quot;low-resource language&amp;quot; from an MT point of view, Norwegian.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata_out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=662</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=662"/>
		<updated>2019-05-09T11:57:15Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* opus-noen-moses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata_out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on sentence-aligned data from the OPUS collection&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and the OPUS corpus collection as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model for a &amp;quot;low-resource language&amp;quot; from an MT point of view, Norwegian.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.tok.en`, `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.true.no` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata_out.tok.en`, `testdata_out.en` and `evaluation.txt`.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=661</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=661"/>
		<updated>2019-05-09T11:56:50Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* opus-noen-moses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata_out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on sentence-aligned data from the OPUS collection&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [Moses tutorial](http://www.statmt.org/moses/?n=Moses.Baseline) which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and the OPUS corpus collection as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model for a &amp;quot;low-resource language&amp;quot; from an MT point of view, Norwegian.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.tok.en`, `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.true.no` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata_out.tok.en`, `testdata_out.en` and `evaluation.txt`.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=660</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=660"/>
		<updated>2019-05-09T11:55:23Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* wmt18-fien-onmt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata_out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata_out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=659</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=659"/>
		<updated>2019-05-09T11:54:18Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* wmt18_helsinki-enfi-onmt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are a slightly simplified version of the original Helsinki submissions.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the OpenNMT-py library and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `4_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in May 2019 and may have to be adapted.&lt;br /&gt;
* The scripts will not run out-of-the-box on Abel due to different installed versions of OpenNMT-py. The relevant module can be loaded on Abel with `module load nlpl-opennmt-py` (without the `-gpu` suffix).&lt;br /&gt;
* The output of script 4 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `4_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `4_test.sh` and run the script.&lt;br /&gt;
* The output of script 4 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, May 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=612</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=612"/>
		<updated>2019-02-03T13:52:37Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=611</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=611"/>
		<updated>2019-02-03T13:52:12Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* General scripts for machine translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[Translation/mttools|the mttools page]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the mttools module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj*/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: 413ba6b&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.1.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 1.2.12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''scoring'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Script that makes it easy to score machine translation output using NIST's BLEU and NIST, TER, and METEOR, by Ken Heafield&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://kheafield.com/code/scoring.tar.gz&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: Sept 19, 2012&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;score.rb&amp;lt;/code&amp;gt; script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=610</id>
		<title>Translation/mttools</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=610"/>
		<updated>2019-02-03T13:51:43Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the mttools module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj*/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: 413ba6b&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.1.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 1.2.12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''scoring'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Script that makes it easy to score machine translation output using NIST's BLEU and NIST, TER, and METEOR, by Ken Heafield&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://kheafield.com/code/scoring.tar.gz&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: Sept 19, 2012&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;score.rb&amp;lt;/code&amp;gt; script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=609</id>
		<title>Translation/mttools</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/mttools&amp;diff=609"/>
		<updated>2019-02-03T13:51:19Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: Created page with &amp;quot;= Using the mttools module =  &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Activate the NLPL software repository and load the module: &amp;lt;pre&amp;gt;module use -a /proj*/nlpl/software/modul...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Using the mttools module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj*/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: 413ba6b&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.1.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 1.2.12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''scoring'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Script that makes it easy to score machine translation output using NIST's BLEU and NIST, TER, and METEOR, by Ken Heafield&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://kheafield.com/code/scoring.tar.gz&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: Sept 19, 2012&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;score.rb&amp;lt;/code&amp;gt; script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=608</id>
		<title>Translation/home</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/home&amp;diff=608"/>
		<updated>2019-02-03T13:50:45Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: /* General scripts for machine translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
An experimentation environment for Statistical and Neural Machine Translations (SMT and NMT)&lt;br /&gt;
is maintained for NLPL under the coordination of the University of Helsinki (UoH).&lt;br /&gt;
Initially, the software and data are commissioned on the Finnish Taito supercluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available software and data =&lt;br /&gt;
&lt;br /&gt;
=== Statistical machine translation and word alignment ===&lt;br /&gt;
&lt;br /&gt;
* Moses SMT pipeline with word alignment tools GIZA++, MGIZA, fast_align, with IRSTLM language model, with SALM:&lt;br /&gt;
** Release 4.0, installed on Abel and Taito as &amp;lt;code&amp;gt;nlpl-moses/4.0-65c75ff&amp;lt;/code&amp;gt; ([[#Using the Moses module|usage notes below]])&lt;br /&gt;
** Release mmt-mvp-v0.12.1, installed on Taito as &amp;lt;code&amp;gt;nlpl-moses/mmt-mvp-v0.12.1-2739-gdc42bcb&amp;lt;/code&amp;gt; (not recommended)&lt;br /&gt;
* Additional word alignment tools efmaral and eflomal:&lt;br /&gt;
** Most recent version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_17&amp;lt;/code&amp;gt; (Abel) or &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2018_12_13&amp;lt;/code&amp;gt; (Taito) ([[#Using the Efmaral module|usage notes below]])&lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_11_24&amp;lt;/code&amp;gt;, installed on Abel and Taito &lt;br /&gt;
** Previous version &amp;lt;code&amp;gt;nlpl-efmaral/0.1_2017_07_20&amp;lt;/code&amp;gt;, installed on Taito (not recommended)&lt;br /&gt;
&lt;br /&gt;
=== Neural machine translation ===&lt;br /&gt;
&lt;br /&gt;
* HNMT (Helsinki Neural Machine Translation System) is installed on Taito-GPU. [[#Using the HNMT module|Usage notes below.]]&lt;br /&gt;
** Release 1.0.1 from https://github.com/robertostling/hnmt installed as &amp;lt;code&amp;gt;nlpl-hnmt/1.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
** Installation updated on 19/3/2018&lt;br /&gt;
* Marian is installed on Taito-GPU.  [[#Using the Marian module|Usage notes below.]]&lt;br /&gt;
** Release 1.2.0 from https://github.com/marian-nmt/marian installed as &amp;lt;code&amp;gt;nlpl-marian/1.2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* OpenNMT-py is installed on Taito and Abel. [[Translation/opennmt-py|Details]]&lt;br /&gt;
&lt;br /&gt;
=== General scripts for machine translation ===&lt;br /&gt;
&lt;br /&gt;
* The ''nlpl-mttools'' module provides a series of preprocessing and evaluation scripts useful for any kind of machine translation research, independently of the toolkit.&lt;br /&gt;
** First installed on 23/12/2018 on Taito and Abel.&lt;br /&gt;
** See [[#Using the mttools module|below]] and [[Translation/mttools|here]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== Datasets ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT17 parallel data (0.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt17&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task parallel data (16G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT17 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (5G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt17news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) parallel data (0.9G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; IWSLT18 (low-resource Basque-to-English task) preprocessed data from the Helsinki submission, with additional synthetic training data (2.6G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/iwslt18_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task parallel data (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; WMT18 news task data preprocessed (tokenized, truecased and BPE-encoded) for the Helsinki submissions (17G, on Taito and Abel):&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/proj[ects]/nlpl/data/translation/wmt18news_helsinki&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
See [[Translation/models|this page]] for details.&lt;br /&gt;
&lt;br /&gt;
= Using the Moses module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Moses module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start using Moses, e.g. using the tutorial at http://statmt.org/moses/&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module contains the standard installation as described at http://www.statmt.org/moses/?n=Development.GetStarted:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cmph, irstlm, xmlprc&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;with-mm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-kenlm-order 10&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;max-factors 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SALM + filter-pt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For word alignment, you can use GIZA++, Mgiza and fast_align. (The word alignment tools efmaral and eflomal are part of a [[#Using the Efmaral module|separate module]].)&amp;lt;br/&amp;gt;If you need to specify absolute paths in your scripts, you can find them on the help page of the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-moses&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Efmaral module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL module repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/       # Taito&lt;br /&gt;
module use -a /projects/nlpl/software/modulefiles/   # Abel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the most recent version of the Efmaral module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load nlpl-efmaral&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the align.py script directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;align.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use the efmaral module inside a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import efmaral&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can test the example given at https://github.com/robertostling/efmaral by changing to the installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EFMARALPATH&lt;br /&gt;
python3 scripts/evaluate.py efmaral \&lt;br /&gt;
    3rdparty/data/test.eng.hin.wa \&lt;br /&gt;
    3rdparty/data/test.eng 3rdparty/data/test.hin \&lt;br /&gt;
    3rdparty/data/trial.eng 3rdparty/data/trial.hin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Efmaral module also contains eflomal. You can use the alignment scripts as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;align_eflomal.py ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;eflomal ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can also use the eflomal module in a Python3 script:&lt;br /&gt;
&amp;lt;pre&amp;gt;python3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import eflomal&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The atools executable (from fast_align) is also made available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the HNMT module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The HNMT module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-hnmt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The main HNMT script can be called directly on the command line (&amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt;), but for anything serious CUDA is required, which is only available from within SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because model training and testing is rather resource-intensive, we recommend to get started by using the example SLURM scripts, as explained below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;/proj/nlpl/data/translation/hnmt_examples&amp;lt;/code&amp;gt; contains a set of SLURM scripts for training and testing a baseline English-to-Finnish HNMT system. Copy the scripts to your own working directory before trying them out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Data preparation:&amp;lt;/b&amp;gt; The first script to launch is &amp;lt;code&amp;gt;prepare.sh&amp;lt;/code&amp;gt;. It fetches the training, development and test data, extracts and reformats it, and calls the &amp;lt;code&amp;gt;make_encode.py&amp;lt;/code&amp;gt; script to create vocabulary files for the source and target languages. This script runs rather fast and can be executed directly on a (Taito-GPU) login shell.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training:&amp;lt;/b&amp;gt; The second script is &amp;lt;code&amp;gt;train.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to train a model. Launch it with &amp;lt;code&amp;gt;sbatch train.sh&amp;lt;/code&amp;gt;. The parameters are fairly standard, except training time, which is kept low for testing purposes here (we tend to max out the Taito limits with 71h of training time...).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;training.*.out&amp;lt;/code&amp;gt; file contains information about the training batches (training time and loss), and also shows translations of a small number of held-out sentences for examining the training process:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;SOURCE / TARGET / OUTPUT&lt;br /&gt;
at least for the time being , all of them will continue working at their current sites .&lt;br /&gt;
ainakin toistaiseksi he kaikki jatkavat töitään nykyisissä toimipaikoissaan .&lt;br /&gt;
ainakin kaikki ne tekevät työtä tällä hetkellä .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The &amp;lt;code&amp;gt;training.log&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;training.log.eval&amp;lt;/code&amp;gt; files report additional information, as explained on [https://github.com/robertostling/hnmt#log-files].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The training process creates a &amp;lt;code&amp;gt;train.model.final&amp;lt;/code&amp;gt; file, which is then used for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Testing:&amp;lt;/b&amp;gt; The last script is &amp;lt;code&amp;gt;test.sh&amp;lt;/code&amp;gt; and calls &amp;lt;code&amp;gt;hnmt.py&amp;lt;/code&amp;gt; to test the previously created model on held-out data. Launch it with &amp;lt;code&amp;gt;sbatch test.sh&amp;lt;/code&amp;gt;. HNMT includes evaluation scripts for chrF and BLEU and will report these scores if a reference file is given.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resulting translations are written to &amp;lt;code&amp;gt;test.trans&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the &amp;lt;code&amp;gt;test.*.out&amp;lt;/code&amp;gt; file, you should obtain scores close to the following (depending on the neural network initialization and the GPU used, results may vary slightly):&lt;br /&gt;
&amp;lt;pre&amp;gt;BLEU = 0.057750 (0.303002, 0.086025, 0.032001, 0.013334, BP = 1.000000)&lt;br /&gt;
LC BLEU = 0.057913 (0.303527, 0.086283, 0.032093, 0.013383, BP = 1.000000)&lt;br /&gt;
chrF = 0.310397 (precision = 0.355720, recall = 0.306064)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Fatal error in PMPI_Init_thread: Other MPI error, error stack:&lt;br /&gt;
MPIR_Init_thread(784).....:&lt;br /&gt;
MPID_Init(1326)...........: channel initialization failed&lt;br /&gt;
MPIDI_CH3_Init(120).......:&lt;br /&gt;
MPID_nem_init_ckpt(852)...:&lt;br /&gt;
MPIDI_CH3I_Seg_commit(307): PMI_Barrier returned -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; Even when using a SLURM script, the HNMT command has to be prefixed by &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;srun hnmt.py ...&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gpuarray): Could not initialize pygpu, support disabled&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; HNMT does not run on the login shell, try running it through a SLURM script.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR (theano.gof.opt): SeqOptimizer apply &amp;lt;theano.scan_module.scan_opt.PushOutScanOutput object at 0x7f7fa34fa7b8&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 theano.gof.fg.InconsistencyError: Trying to reintroduce a removed node&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This message often occurs at the beginning of the training process and signals an optimization failure. It has no visible effect on training - the program continues running correctly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;pygpu.gpuarray.GpuArrayException: b'cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;amp;rArr; This error can be prevented by decreasing the amount of pre-allocation (default is 0.9). Make sure to avoid overwriting the existing content of the THEANO_FLAGS variable:&amp;lt;br/&amp;gt; &amp;lt;code&amp;gt;export THEANO_FLAGS=&amp;quot;$THEANO_FLAGS&amp;quot;,gpuarray.preallocate=0.8&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Marian module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito-GPU (&amp;lt;b&amp;gt;Important:&amp;lt;/b&amp;gt; this module only runs on Taito-GPU, not on Taito!)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian module can be loaded by activating the NLPL software repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A more recent version of Marian has been installed system-wide and can be loaded in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;module load marian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Marian executables can be called directly on the command line, but longer-running tasks should be run with SLURM scripts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marian comes with a couple of example scripts, which need to be adapted slightly for use on Taito. See below.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example scripts ==&lt;br /&gt;
&lt;br /&gt;
We provide adaptations of the Marian example scripts. These are best copied into your personal workspace before running them:&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /proj/nlpl/software/marian/1.2.0/examples ./marian_examples&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Training-basics:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transformer:&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;. Note that the script is limited to run for 24h, which will not complete the training process. Also, multi-GPU processes consume a lot of billing units on CSC, so be careful with Transformer experiments!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Translating-amun&amp;lt;/b&amp;gt; Launch the script with &amp;lt;code&amp;gt;sbatch run-me.sh&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the mttools module =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log into Taito or Abel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the NLPL software repository and load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;module use -a /proj*/nlpl/software/modulefiles/&lt;br /&gt;
module load nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Module-specific help is available by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;module help nlpl-mttools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following scripts are part of this module:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''moses-scripts'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tokenization, casing, corpus cleaning and evaluation scripts from Moses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/moses-smt/mosesdecoder (scripts directory)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed revision: 413ba6b&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The subfolders &amp;lt;code&amp;gt;generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recaser&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;training&amp;lt;/code&amp;gt; are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacremoses'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Python port of Moses tokenizer and truecaser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/alvations/sacremoses&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.0.5&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''subword-nmt'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised Word Segmentation (a.k.a. Byte Pair Encoding) for Machine Translation and Text Generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/rsennrich/subword-nmt&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.3.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;subword-nmt&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sentencepiece'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unsupervised text tokenizer for Neural Network-based text generation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/google/sentencepiece&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 0.1.6&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;spm_*&amp;lt;/code&amp;gt; executables are in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''sacreBLEU'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://github.com/mjpost/sacreBLEU&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: 1.2.12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;sacrebleu&amp;lt;/code&amp;gt; executable is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''scoring'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Script that makes it easy to score machine translation output using NIST's BLEU and NIST, TER, and METEOR, by Ken Heafield&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Source: https://kheafield.com/code/scoring.tar.gz&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installed version: Sept 19, 2012&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;score.rb&amp;lt;/code&amp;gt; script is in PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact:'''&lt;br /&gt;
Yves Scherrer, University of Helsinki, firstname.lastname@helsinki.fi&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=607</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=607"/>
		<updated>2019-02-03T13:49:07Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [http://www.statmt.org/moses/?n=Moses.Baseline Moses tutorial] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=606</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=606"/>
		<updated>2019-02-03T13:47:42Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [[http://www.statmt.org/moses/?n=Moses.Baseline|Moses tutorial]] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [[http://www.statmt.org/moses/?n=Moses.Baseline|Moses tutorial]] which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=605</id>
		<title>Translation/models</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlpl.eu/index.php?title=Translation/models&amp;diff=605"/>
		<updated>2019-02-03T13:46:37Z</updated>

		<summary type="html">&lt;p&gt;Yvessche: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MT example scripts and pretrained models =&lt;br /&gt;
&lt;br /&gt;
The models and scripts are located at &amp;lt;tt&amp;gt;/proj*/nlpl/data/translation/pretrained-models/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [Moses tutorial](http://www.statmt.org/moses/?n=Moses.Baseline) which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.fi` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.fi` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18_helsinki-enfi-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on WMT18 news data preprocessed by the University of Helsinki&lt;br /&gt;
* translating from English to Finnish&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the Moses SMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) are based on the [Moses tutorial](http://www.statmt.org/moses/?n=Moses.Baseline) which has additional information. The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the preprocessing pipeline, the Moses tools and MT data as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_prepare.sh` to `6_test.sh` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary, e.g. if you want to use data for a different language pair or a different translation direction.&lt;br /&gt;
* Run the scripts one by one. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. The scripts have not been tested on Abel, but should run with the necessary adaptations.&lt;br /&gt;
* The output of script 6 should be similar to the provided files `testdata.out.en` and `evaluation.txt`. Minor differences can be expected due to the non-deterministic nature of MERT tuning.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `6_test.sh` script to your own working directory.&lt;br /&gt;
* Provide a tokenized and truecased test file (`1_prepare.sh` shows how to do that) or copy `testdata.en` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `6_test.sh` and run the script.&lt;br /&gt;
* The output of script 6 corresponds to the files `testdata.out.en` and `evaluation.txt`. Note that evaluation will only work correctly if the test set is registered in the sacreBLEU database. This is typically the case for WMT and IWSLT test sets.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;br /&gt;
&lt;br /&gt;
== wmt18-fien-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on the raw versions of the WMT18 news data&lt;br /&gt;
* translating from Finnish to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-moses ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the Moses toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== opus-noen-onmt ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on parallel data from the OPUS repository&lt;br /&gt;
* translating from Norwegian to English&lt;br /&gt;
* using the OpenNMT-py toolkit.&lt;br /&gt;
&lt;br /&gt;
''In progress.''&lt;br /&gt;
&lt;br /&gt;
== iwslt18_helsinki-euen-marian ==&lt;br /&gt;
&lt;br /&gt;
This directory contains training scripts and the resulting model files for a translation system:&lt;br /&gt;
* trained on data from the IWSLT18 low-resource translation task on Basque-to-English&lt;br /&gt;
* using the preprocessed and augmented datasets from the University of Helsinki submission&lt;br /&gt;
* with the Marian NMT toolkit.&lt;br /&gt;
&lt;br /&gt;
The scripts (and the resulting model) correspond to a slightly simplified version of the original Helsinki submission.&lt;br /&gt;
The goals of this example are twofold:&lt;br /&gt;
* to illustrate the use of the Marian library and the MT data sets as provided by the NLPL project for training new models,&lt;br /&gt;
* to provide a pre-trained, ready-to-use translation model.&lt;br /&gt;
The two use cases are described below.&lt;br /&gt;
&lt;br /&gt;
=== Retrain a new model using the provided scripts ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `1_train.sh`, `2_test.sh`, `validate.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Adapt paths if necessary.&lt;br /&gt;
* Run the script `1_train.sh`, then `2_test.sh`. The `validate.sh` script is automatically called during training and does not have to be run separately. The `composeXML.py` script is automatically called during testing and does not have to be r un separately. The time and memory requirements in the SLURM scripts are tuned to usage on Taito in January 2019 and may have to be adapted. Note that these scripts use the Marian version installed system-wide on Taito and may not run correctly on the earlier NLPL-installed Marian version available on Abel.&lt;br /&gt;
* The output of script 2 should be similar to the provided `test.out.en` and `test.out.en.xml` files. Minor differences can be expected due to the non-deterministic nature of neural network training on GPU.&lt;br /&gt;
&lt;br /&gt;
=== Use the pre-trained model to translate unseen text ===&lt;br /&gt;
&lt;br /&gt;
* Copy the `2_test.sh` and `composeXML.py` scripts to your own working directory.&lt;br /&gt;
* Provide a tokenized, truecased and BPE-encoded test file or copy `test.eu` to your working directory.&lt;br /&gt;
* Adapt the WORKDIR path in `2_test.sh` and run the script.&lt;br /&gt;
* The output of script 2 corresponds to the files `test.out.en` and `test.out.en.xml`.&lt;br /&gt;
* The result XML file is sent to the evaluation server. Uncomment this if you are not translating the official IWSLT 2018 test set.&lt;br /&gt;
&lt;br /&gt;
Yves Scherrer, January 2019&lt;/div&gt;</summary>
		<author><name>Yvessche</name></author>
		
	</entry>
</feed>