| | --- |
| | base_model: M-FAC/bert-tiny-finetuned-sst2 |
| | tags: |
| | - generated_from_trainer |
| | datasets: |
| | - sst2 |
| | metrics: |
| | - accuracy |
| | model-index: |
| | - name: results |
| | results: |
| | - task: |
| | name: Text Classification |
| | type: text-classification |
| | dataset: |
| | name: sst2 |
| | type: sst2 |
| | config: default |
| | split: validation |
| | args: default |
| | metrics: |
| | - name: Accuracy |
| | type: accuracy |
| | value: 0.8279816513761468 |
| | --- |
| | |
| | <!-- This model card has been generated automatically according to the information the Trainer had access to. You |
| | should probably proofread and complete it, then remove this comment. --> |
| |
|
| | # Bert Tiny for SST2 |
| |
|
| | This model is a fine-tuned version of [M-FAC/bert-tiny-finetuned-sst2](https://huggingface.co/M-FAC/bert-tiny-finetuned-sst2) on the sst2 dataset. |
| | It achieves the following results on the evaluation set: |
| | - Loss: 0.4771 |
| | - Accuracy: 0.8280 |
| |
|
| | ## Usage Example |
| |
|
| | ```python |
| | from transformers import BertTokenizer, BertForSequenceClassification, TrainingArguments, Trainer, DataCollatorWithPadding |
| | import datasets |
| | |
| | model = BertForSequenceClassification.from_pretrained('VityaVitalich/bert-tiny-sst2') |
| | tokenizer = BertTokenizer.from_pretrained('VityaVitalich/bert-tiny-sst2') |
| | |
| | def create_data(tokenizer): |
| | train_set = datasets.load_dataset('sst2', split='train').remove_columns(['idx']) |
| | val_set = datasets.load_dataset('sst2', split='validation').remove_columns(['idx']) |
| | |
| | def tokenize_func(examples): |
| | return tokenizer(examples["sentence"], max_length=128, padding='max_length', truncation=True) |
| | |
| | encoded_dataset_train = train_set.map(tokenize_func, batched=True) |
| | encoded_dataset_test = val_set.map(tokenize_func, batched=True) |
| | data_collator = DataCollatorWithPadding(tokenizer) |
| | return encoded_dataset_train, encoded_dataset_test, data_collator |
| | |
| | encoded_dataset_train, encoded_dataset_test, data_collator = create_data(tokenizer) |
| | |
| | training_args = TrainingArguments( |
| | output_dir='./results', |
| | learning_rate=3e-5, |
| | per_device_train_batch_size=128, |
| | per_device_eval_batch_size=128, |
| | load_best_model_at_end=True, |
| | num_train_epochs=5, |
| | weight_decay=0.1, |
| | fp16=True, |
| | fp16_full_eval=True, |
| | evaluation_strategy="epoch", |
| | seed=42, |
| | save_strategy = "epoch", |
| | save_total_limit=5, |
| | logging_strategy="epoch", |
| | report_to="all", |
| | ) |
| | |
| | |
| | trainer = Trainer( |
| | model=model, |
| | args=training_args, |
| | train_dataset=encoded_dataset_train, |
| | eval_dataset=encoded_dataset_test, |
| | data_collator=data_collator, |
| | compute_metrics=compute_metrics, |
| | ) |
| | |
| | trainer.evaluate(encoded_dataset_test) |
| | ``` |
| |
|
| |
|
| | ## Training procedure |
| |
|
| | ### Training hyperparameters |
| |
|
| | The following hyperparameters were used during training: |
| | - learning_rate: 3e-05 |
| | - train_batch_size: 128 |
| | - eval_batch_size: 128 |
| | - seed: 42 |
| | - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
| | - lr_scheduler_type: linear |
| | - num_epochs: 5 |
| |
|
| | ### Training results |
| |
|
| | | Training Loss | Epoch | Step | Validation Loss | Accuracy | |
| | |:-------------:|:-----:|:----:|:---------------:|:--------:| |
| | | 0.2313 | 1.0 | 527 | 0.4771 | 0.8280 | |
| | | 0.2057 | 2.0 | 1054 | 0.4937 | 0.8257 | |
| | | 0.1949 | 3.0 | 1581 | 0.5121 | 0.8177 | |
| | | 0.1904 | 4.0 | 2108 | 0.5100 | 0.8200 | |
| | | 0.1879 | 5.0 | 2635 | 0.5137 | 0.8211 | |
| |
|
| |
|
| | ### Framework versions |
| |
|
| | - Transformers 4.34.0.dev0 |
| | - Pytorch 2.0.1+cu117 |
| | - Datasets 2.14.5 |
| | - Tokenizers 0.14.0 |
| |
|