in dynalab/handler.py [0:0]
def initialize(self, context):
"""
load model and extra files.
"""
logger.info(
f"Will initialize with system_properties: {context.system_properties}"
)
model_pt_path, model_file_dir, device = self._handler_initialize(context)
config = json.loads(
(Path(model_file_dir) / "model_generation.json").read_text()
)
self.device = device
translation_cfg = TranslationConfig()
self.vocab = TranslationTask.load_dictionary("dict.txt")
self.spm = sentencepiece.SentencePieceProcessor()
self.spm.Load("sentencepiece.bpe.model")
logger.info("Loaded sentencepiece.bpe.model")
if config.get("dummy", False):
self.sequence_generator = FakeGenerator()
logger.warning("Will use a FakeGenerator model, only testing BPE")
else:
task = TranslationTask(translation_cfg, self.vocab, self.vocab)
[model], cfg = fairseq.checkpoint_utils.load_model_ensemble(
[model_pt_path], task=task
)
model.eval().to(self.device)
logger.info(f"Loaded model from {model_pt_path} to device {self.device}")
logger.info(
f"Will use the following config: {json.dumps(config, indent=4)}"
)
self.sequence_generator = SequenceGenerator(
[model],
tgt_dict=self.vocab,
beam_size=config.get("beam_size", 1),
max_len_a=config.get("max_len_a", 1.3),
max_len_b=config.get("max_len_b", 5),
min_len=config.get("min_len", 5),
)
self.taskIO = TaskIO()
self.initialized = True