| 927 | return eval_score |
| 928 | |
| 929 | def _write_readme(self, best_eval_score, best_eval_score_epoch, train_batch_size): |
| 930 | if isinstance(self.training_args, CommandLineTrainingArgs): |
| 931 | model_name = self.training_args.model_name_or_path |
| 932 | elif isinstance(self.model_wrapper.model, transformers.PreTrainedModel): |
| 933 | if ( |
| 934 | hasattr(self.model_wrapper.model.config, "_name_or_path") |
| 935 | and self.model_wrapper.model.config._name_or_path in HUGGINGFACE_MODELS |
| 936 | ): |
| 937 | # TODO Better way than just checking HUGGINGFACE_MODELS ? |
| 938 | model_name = self.model_wrapper.model.config._name_or_path |
| 939 | elif hasattr(self.model_wrapper.model.config, "model_type"): |
| 940 | model_name = self.model_wrapper.model.config.model_type |
| 941 | else: |
| 942 | model_name = "" |
| 943 | else: |
| 944 | model_name = "" |
| 945 | |
| 946 | if model_name: |
| 947 | model_name = f"`{model_name}`" |
| 948 | |
| 949 | if ( |
| 950 | isinstance(self.training_args, CommandLineTrainingArgs) |
| 951 | and self.training_args.model_max_length |
| 952 | ): |
| 953 | model_max_length = self.training_args.model_max_length |
| 954 | elif isinstance( |
| 955 | self.model_wrapper.model, |
| 956 | ( |
| 957 | transformers.PreTrainedModel, |
| 958 | LSTMForClassification, |
| 959 | WordCNNForClassification, |
| 960 | ), |
| 961 | ): |
| 962 | model_max_length = self.model_wrapper.tokenizer.model_max_length |
| 963 | else: |
| 964 | model_max_length = None |
| 965 | |
| 966 | if model_max_length: |
| 967 | model_max_length_str = f" a maximum sequence length of {model_max_length}," |
| 968 | else: |
| 969 | model_max_length_str = "" |
| 970 | |
| 971 | if isinstance( |
| 972 | self.train_dataset, textattack.datasets.HuggingFaceDataset |
| 973 | ) and hasattr(self.train_dataset, "_name"): |
| 974 | dataset_name = self.train_dataset._name |
| 975 | if hasattr(self.train_dataset, "_subset"): |
| 976 | dataset_name += f" ({self.train_dataset._subset})" |
| 977 | elif isinstance( |
| 978 | self.eval_dataset, textattack.datasets.HuggingFaceDataset |
| 979 | ) and hasattr(self.eval_dataset, "_name"): |
| 980 | dataset_name = self.eval_dataset._name |
| 981 | if hasattr(self.eval_dataset, "_subset"): |
| 982 | dataset_name += f" ({self.eval_dataset._subset})" |
| 983 | else: |
| 984 | dataset_name = None |
| 985 | |
| 986 | if dataset_name: |