This version of Sockeye contains codes to transfer a pre-trained model to another translation task. It includes the following additional components to Sockeye:
Replacing embedding weights with pretrained embedding files (fasttext format)
Injecting artificial noises on training data (insertion, deletion, permutation)
If you want to run on a GPU you need to make sure your version of Apache MXNet Incubating contains the GPU bindings. Depending on your version of CUDA you can do this by running the following:
The embedding file must be in fasttext format. Unless -o and -v options are used, the output model/vocabulary files are generated with suffixes derived from the given embedding file. Please use the output model and vocabulary files in the child task training via --params and --source-vocab (or --target-vocab) options.
To pretrain a parent model with artificial noises, turn on --source-noise-train with detailed noise options (--source-noise-insertion, --source-noise-insertion-vocab, --source-noise-deletion, --source-noise-permutation). Optionally, you can also switch on --source-noise-validation to evaluate your models on a noisy validation set during the training. Example:
Injecting noises into the target side is analogous by replacing source with target in the option names.
Please refer to "Effective Cross-lingual Transfer of Neural Machine Translation Models without Shared Vocabularies" for further explanations of the transfer procedure.