|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from omegaconf import DictConfig, OmegaConf |
|
from pytorch_lightning import Trainer |
|
|
|
from nemo.collections.nlp.models import EntityLinkingModel |
|
from nemo.core.config import hydra_runner |
|
from nemo.utils import logging |
|
from nemo.utils.exp_manager import exp_manager |
|
|
|
|
|
@hydra_runner(config_path="conf", config_name="umls_medical_entity_linking_config.yaml") |
|
def main(cfg: DictConfig) -> None: |
|
logging.info(f"\nConfig Params:\n{OmegaConf.to_yaml(cfg)}") |
|
trainer = Trainer(**cfg.trainer) |
|
exp_manager(trainer, cfg.get("exp_manager", None)) |
|
|
|
logging.info(f"Loading weights from pretrained model {cfg.model.language_model.pretrained_model_name}") |
|
model = EntityLinkingModel(cfg=cfg.model, trainer=trainer) |
|
logging.info("===========================================================================================") |
|
logging.info('Starting training...') |
|
trainer.fit(model) |
|
logging.info('Training finished!') |
|
logging.info("===========================================================================================") |
|
|
|
if cfg.model.nemo_path: |
|
|
|
model.save_to(cfg.model.nemo_path) |
|
logging.info(f'Model is saved into `.nemo` file: {cfg.model.nemo_path}') |
|
|
|
|
|
if __name__ == '__main__': |
|
main() |
|
|