--- 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 --- # 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