diff --git a/notebooks/JA-multifit_fp16.ipynb b/notebooks/JA-multifit_fp16.ipynb index 690f8b9..985e8cd 100644 --- a/notebooks/JA-multifit_fp16.ipynb +++ b/notebooks/JA-multifit_fp16.ipynb @@ -545,7 +545,7 @@ } ], "source": [ - "exp.finetuine_lm.train_(mldoc_dataset)" + "exp.finetune_lm.train_(mldoc_dataset)" ] }, { @@ -575,7 +575,7 @@ } ], "source": [ - "exp.load_(Path('data/mldoc/ja-1/models/fsp15k/multifit1552_fp16')).finetuine_lm" + "exp.load_(Path('data/mldoc/ja-1/models/fsp15k/multifit1552_fp16')).finetune_lm" ] }, { diff --git a/ulmfit/configurations.py b/ulmfit/configurations.py index 547b287..dda8835 100644 --- a/ulmfit/configurations.py +++ b/ulmfit/configurations.py @@ -21,7 +21,7 @@ def multifit1552_fp32(bs=64): n_hid=1552 ) self.pretrain_lm.replace_(num_epochs=10, drop_mult=0.5, lr=(1e-2 * bs / 48)) - self.finetuine_lm.replace_(num_epochs=10, drop_mult=1.0, lr=(1e-3 * bs / 48)) + self.finetune_lm.replace_(num_epochs=10, drop_mult=1.0, lr=(1e-3 * bs / 48)) self.classifier.replace_(num_epochs=8, drop_mult=0.5, bs=20, label_smoothing_eps=0.1) return self @@ -46,7 +46,7 @@ def multifit_paper_version(): n_hid=1550 ) self.pretrain_lm.replace_(drop_mult=0.0, lr=5e-3, use_adam_08=True, true_wd=False, wd=1e-7, bs=50,) - self.finetuine_lm.replace_(drop_mult=0.3, lr=1e-3, num_epochs=20, true_wd=False, wd=1e-7, bs=20) + self.finetune_lm.replace_(drop_mult=0.3, lr=1e-3, num_epochs=20, true_wd=False, wd=1e-7, bs=20) self.classifier.replace_(early_stopping='accuracy', bs=20) return self diff --git a/ulmfit/training.py b/ulmfit/training.py index 94d1daa..966a1c3 100644 --- a/ulmfit/training.py +++ b/ulmfit/training.py @@ -45,7 +45,7 @@ class ULMFITArchitecture(Params): return f'models/{tokenizer_prefix}' def dataset(self, dataset_path_or_object, **args): - if isinstance(dataset_path_or_object, Dataset): + if hasattr(dataset_path_or_object, 'load_lm_databunch'): return dataset_path_or_object return ULMFiTDataset(dataset_path=Path(dataset_path_or_object), tokenizer=self.tokenizer, max_vocab=self.max_vocab, **args) @@ -219,7 +219,7 @@ class ULMFiTPretraining(ULMFiTTrainingCommand): @dataclass -class ULMFiTFinetuining(ULMFiTPretraining): +class ULMFiTFinetuning(ULMFiTPretraining): base: ULMFiTPretraining = field(repr=False, default=None) pretrained: bool = True @@ -255,7 +255,7 @@ class ULMFiTClassifier(ULMFiTTrainingCommand): weighted_cross_entropy: tuple = None early_stopping: str = 'accuracy' fit_schedule: str = '1cycle' - base: ULMFiTFinetuining = field(repr=False, default=None) + base: ULMFiTFinetuning = field(repr=False, default=None) random_init: bool = False seed: int = 0 bptt: int = 70 @@ -411,18 +411,18 @@ def path_if_model_exists(path, weights_name): class ULMFiT: arch: ULMFITArchitecture = None pretrain_lm: ULMFiTPretraining = None - finetuine_lm: ULMFiTFinetuining = None + finetune_lm: ULMFiTFinetuning = None classifier: ULMFiTClassifier = None def __post_init__(self): self.arch = ULMFITArchitecture() self.pretrain_lm = ULMFiTPretraining(arch=self.arch) - self.finetuine_lm = ULMFiTFinetuining(arch=self.arch, base=self.pretrain_lm) - self.classifier = ULMFiTClassifier(arch=self.arch, base=self.finetuine_lm) + self.finetune_lm = ULMFiTFinetuning(arch=self.arch, base=self.pretrain_lm) + self.classifier = ULMFiTClassifier(arch=self.arch, base=self.finetune_lm) def load_(self, experiment_path:Path): success = (self.classifier.load_(experiment_path) or - self.finetuine_lm.load_(experiment_path) or + self.finetune_lm.load_(experiment_path) or self.pretrain_lm.load_(experiment_path) or self.load_legacy_(experiment_path)) if not success: @@ -442,8 +442,8 @@ class ULMFiT: self.pretrain_lm.experiment_path = path_if_model_exists(experiment_path, LM_BEST) self.pretrain_lm.dataset_path = experiment_path.parent.parent.parent else: - self.finetuine_lm.experiment_path = path_if_model_exists(experiment_path, ENC_BEST) - self.finetuine_lm.dataset_path = experiment_path.parent.parent.parent + self.finetune_lm.experiment_path = path_if_model_exists(experiment_path, ENC_BEST) + self.finetune_lm.dataset_path = experiment_path.parent.parent.parent self.classifier.experiment_path = path_if_model_exists(experiment_path, CLS_BEST) self.classifier.dataset_path = experiment_path.parent.parent.parent return True @@ -451,7 +451,7 @@ class ULMFiT: def replace_(self, **kwargs): self.arch.replace_(**kwargs) self.pretrain_lm.replace_(**kwargs) - self.finetuine_lm.replace_(**kwargs) + self.finetune_lm.replace_(**kwargs) self.classifier.replace_(**kwargs) return self @@ -459,6 +459,6 @@ class ULMFiT: print(f"""ULMFiT( {self.arch}, {self.pretrain_lm}, - {self.finetuine_lm}, + {self.finetune_lm}, {self.classifier}, )""")