Edit model card

sentiment-polish-gpt2-large

This model is a fine-tuned version of sdadas/polish-gpt2-large on the 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

Intended uses & limitations

Sentiment analysis - neutral/negative/positive/ambiguous

Training and evaluation data

Merged all rows from polemo2-official dataset.

Discarded rows with length > 512.

Train/test split: 80%/20%

Datacollator:

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 test dataset.

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)
{
    "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
Downloads last month
17
Safetensors
Model size
776M params
Tensor type
F32
·

Dataset used to train nie3e/sentiment-polish-gpt2-large

Evaluation results