Does opennmt-py support Domain adaptation?

(Patrick Liu) #1

How to train a DA-model with opennmt-py?

(Eva) #2

Hi @PengboLiu !

as far as I know, OpenNMT-py supports DA in the same way as OpenNMT-lua does.

You should train a translation model using a generic training data set and , afterwards, you should specialize this model on the in-domain data by using the -train_from option
I think it should be as straightforward as launching the following command:

python -data data/indomain -save_model model-specialized -train_from generic_model

Remember that you must first preprocess the data for both trainings and, also, you have to take into account that the DA model will have the same architecture than the one you use as starting point: encoders/decoders with the same number of layers and hidden units, same embeddings and so, same vocabularies, for instance.

You can find more information about how to use OpenNMT-py in the OpenNMT-py documentation

Good luck!