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
72
Safetensors
Model size
776M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

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

Evaluation results