nie3e's picture
Update README.md
acc1550 verified
---
tags:
- generated_from_trainer
model-index:
- name: sentiment-polish-gpt2-large
results:
- task:
type: text-classification
dataset:
type: allegro/klej-polemo2-out
name: klej-polemo2-out
metrics:
- type: accuracy
value: 98.58%
license: mit
datasets:
- clarin-pl/polemo2-official
language:
- pl
metrics:
- accuracy
---
<!-- 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. -->
# sentiment-polish-gpt2-large
This model is a fine-tuned version of [sdadas/polish-gpt2-large](https://huggingface.co/sdadas/polish-gpt2-large) on the [polemo2-official](https://huggingface.co/datasets/clarin-pl/polemo2-official) dataset.
It achieves the following results on the evaluation set:
- epoch: 10.0
- eval_accuracy: 0.9634
- eval_loss: 0.3139
- eval_runtime: 132.9089
- eval_samples_per_second: 197.428
- eval_steps_per_second: 98.714
- step: 65610
## Model description
Trained from [polish-gpt2-large](https://huggingface.co/sdadas/polish-gpt2-large)
## Intended uses & limitations
Sentiment analysis - neutral/negative/positive/ambiguous
## Training and evaluation data
Merged all rows from [polemo2-official](https://huggingface.co/datasets/clarin-pl/polemo2-official) dataset.
Discarded rows with length > 512.
Train/test split: 80%/20%
Datacollator:
```py
data_collator = DataCollatorWithPadding(
tokenizer=tokenizer,
padding="longest",
max_length=MAX_INPUT_LENGTH,
pad_to_multiple_of=8
)
```
## Training procedure
GPU: 2x RTX 4060Ti 16GB
Training time: 29:16:50
Using accelerate + DeepSpeed
### Training hyperparameters
The following hyperparameters were used during training:
- learning_rate: 2e-05
- train_batch_size: 1
- eval_batch_size: 1
- seed: 42
- gradient_accumulation_steps: 8
- total_train_batch_size: 16
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- num_epochs: 10
### Evaluation
Evaluated on [allegro/klej-polemo2-out](https://huggingface.co/datasets/allegro/klej-polemo2-out) test dataset.
```py
from datasets import load_dataset
from evaluate import evaluator
data = load_dataset("allegro/klej-polemo2-out", split="test").shuffle(seed=42)
task_evaluator = evaluator("text-classification")
# fix labels
l = {
"__label__meta_zero": 0,
"__label__meta_minus_m": 1,
"__label__meta_plus_m": 2,
"__label__meta_amb": 3
}
def fix_labels(examples):
examples["target"] = l[examples["target"]]
return examples
data = data.map(fix_labels)
eval_resutls = task_evaluator.compute(
model_or_pipeline="nie3e/sentiment-polish-gpt2-large",
data=data,
label_mapping={"NEUTRAL": 0, "NEGATIVE": 1, "POSITIVE": 2, "AMBIGUOUS": 3},
input_column="sentence",
label_column="target"
)
print(eval_resutls)
```
```json
{
"accuracy": 0.9858299595141701,
"total_time_in_seconds": 12.71777104900002,
"samples_per_second": 38.8432845737416,
"latency_in_seconds": 0.02574447580769235
}
```
### Framework versions
- Transformers 4.37.2
- Pytorch 2.2.0+cu121
- Datasets 2.17.0
- Tokenizers 0.15.1