ilmulti icon indicating copy to clipboard operation
ilmulti copied to clipboard

KeyError: 'shared-multilingual-translation'

Open AmanSinghal927 opened this issue 5 years ago • 1 comments

translator = from_pretrained(tag='mm-all-iter1')

| [src] dictionary: 40897 types
| [tgt] dictionary: 40897 types
/content/ilmulti/ilmulti/translator/translator.py:37: UserWarning: utils.load_ensemble_for_inference is deprecated. Please use checkpoint_utils.load_model_ensemble instead.
  self.models, model_args = fairseq.utils.load_ensemble_for_inference(model_paths, self.task, model_arg_overrides=eval(args.model_overrides))
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-22-f8e48d2129df> in <module>()
----> 1 translator = from_pretrained(tag='mm-to-en-iter1')

7 frames
/content/ilmulti/ilmulti/translator/pretrained.py in from_pretrained(tag, use_cuda)
     60     from .mt_engine import MTEngine
     61 
---> 62     translator = build_translator(config['model'], use_cuda=use_cuda)
     63     segmenter = build_segmenter(config['segmenter'])
     64     tokenizer = build_tokenizer(config['tokenizer'])

/content/ilmulti/ilmulti/translator/translator.py in build_translator(model, use_cuda)
    169     args.enhance(**keyword_arguments)
    170 
--> 171     fseq_translator = FairseqTranslator(args, use_cuda=use_cuda)
    172     return fseq_translator
    173 

/content/ilmulti/ilmulti/translator/translator.py in __init__(self, args, use_cuda)
     35         # print('| loading model(s) from {}'.format(args.path))
     36         model_paths = args.path.split(':')
---> 37         self.models, model_args = fairseq.utils.load_ensemble_for_inference(model_paths, self.task, model_arg_overrides=eval(args.model_overrides))
     38         self.tgt_dict = self.task.target_dictionary
     39 

/usr/local/lib/python3.6/dist-packages/fairseq/utils.py in load_ensemble_for_inference(filenames, task, model_arg_overrides)
     28     )
     29     return checkpoint_utils.load_model_ensemble(
---> 30         filenames, arg_overrides=model_arg_overrides, task=task,
     31     )
     32 

/usr/local/lib/python3.6/dist-packages/fairseq/checkpoint_utils.py in load_model_ensemble(filenames, arg_overrides, task)
    154         task (fairseq.tasks.FairseqTask, optional): task to use for loading
    155     """
--> 156     ensemble, args, _task = _load_model_ensemble(filenames, arg_overrides, task)
    157     return ensemble, args
    158 

/usr/local/lib/python3.6/dist-packages/fairseq/checkpoint_utils.py in _load_model_ensemble(filenames, arg_overrides, task)
    165         if not os.path.exists(filename):
    166             raise IOError('Model file not found: {}'.format(filename))
--> 167         state = load_checkpoint_to_cpu(filename, arg_overrides)
    168 
    169         args = state['args']

/usr/local/lib/python3.6/dist-packages/fairseq/checkpoint_utils.py in load_checkpoint_to_cpu(path, arg_overrides)
    141         for arg_name, arg_val in arg_overrides.items():
    142             setattr(args, arg_name, arg_val)
--> 143     state = _upgrade_state_dict(state)
    144     return state
    145 

/usr/local/lib/python3.6/dist-packages/fairseq/checkpoint_utils.py in _upgrade_state_dict(state)
    319 
    320     # set any missing default values in the task, model or other registries
--> 321     set_defaults(tasks.TASK_REGISTRY[state['args'].task])
    322     set_defaults(models.ARCH_MODEL_REGISTRY[state['args'].arch])
    323     for registry_name, REGISTRY in registry.REGISTRIES.items():

KeyError: 'shared-multilingual-translation'

AmanSinghal927 avatar Sep 16 '20 14:09 AmanSinghal927

Okay, do a bunch of package changes (fairseq==0.8.0 to a fork). I have managed a final self-contained colab-notebook implementation. https://colab.research.google.com/drive/1KOvjawhzPXOQ6RLlFBFeInkuuR0QAWTK?usp=sharing

jerinphilip avatar Sep 16 '20 21:09 jerinphilip