How to support different output vocabulary for different instances?

In the default setting, all instances have a fixed predefined output vocabulary during decoding. However, in my scenario, each instance has a different output vocabulary (which is relatively small, maybe around 100 words each vocabulary). Is there any direct support in OpenNMT? If not, how should I modify the code of OpenNMT? Passing a vocabulary mask for each instance?

What do you call an instance?

Just a training/testing sample.

I think passing a mask to generator is enough and no need to change the decoder.