Przetwarzanie_tekstu/projekt
2023-02-17 19:21:51 +01:00
..
BERT_sms_spam.ipynb added all experiments 2023-02-10 12:42:56 +01:00
FLAN_T5_sms_spam.ipynb FLAN & T5 fixes 2023-02-12 18:18:21 +01:00
GPT2_sms_spam.ipynb added all experiments 2023-02-10 12:42:56 +01:00
README.md FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00
T5_sms_spam.ipynb FLAN & T5 fixes 2023-02-12 18:18:21 +01:00
UGP_2022_12_project.ipynb bert 2023-02-05 16:53:53 +01:00
Ver1_FLAN-T5_sms_spam.ipynb FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00
Ver3_FLAN-T5_sms_spam.ipynb FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00
Ver_2_FLAN-T5_sms_spam.ipynb FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00
Ver_4_FLAN-T5_sms_spam.ipynb FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00
Ver_5_FLAN-T5_sms_spam.ipynb FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00
Ver_6_FLAN-T5_sms_spam.ipynb FLAN-T5 kilka wersji 2023-02-17 19:21:51 +01:00

Projekt

Wykrywanie czy podany SMS to spam - klasyfikacja.

Zbiór danych

Wykorzystaliśmy zbiór danych sms spam. Dataset posiada tylko zbiór treningowy dlatego w trakcie uczenia modeli podzielilśmy go losowo na 3 podzbiory (wyjątek few-shot learning):

  • zbiór testowy 1 000 przykładów
  • zbiór treningowy 4 116 przykładów
  • zbiór walidacyjny 458 przykładów

Ewaluacja

Ewaluacja modeli występuje po etapie trenowania na zbiorze testowym. Metryki:

  • accuracy 0-100%
  • Matthewss correlation coefficient - w skrócie accuracy, tylko bierze pod uwagę zbalansowanie zbioru, wyniki: -1 przeciwne predykcje, 0 losowe, 1 idealna predykcja.

Rozwiązania

Wykorzystaliśmy 4 modele - BERT, GPT2, T5 oraz FLAN-T5

Transformer Encoder - BERT

Najważniejsze cechy:

  • wytrenowany model: bert-base-uncased
  • typ modelu transformers.BertForSequenceClassification
  • input modelu - treść smsa
  • output modelu - klasa 1 lub 2
  • finetuning na zbiorze treningowym
    • adamW optimizer
    • learning rade 2e-5
    • 32 batch size
    • 4 epoch
  • Accuracy: 99%
  • MCC: 0.973

Transformer Decoder - GPT2

Najważniejsze cechy:

  • wytrenowany model gpt2
  • typ modelu transformers.GPT2ForSequenceClassification
  • input modelu - treść smsa
  • output modelu - klasa 1 lub 2
  • finetuning na zbiorze treningowym
    • adamW optimizer
    • learning rate 2e-5
    • 8 batch size (because of OOM)
    • 4 epoch
  • Accuracy: 99%
  • MCC: 0.960

Transformer Encoder-Decoder - T5

Najważniejsze cechy:

  • wytrenowany model t5-base
  • typ modelu transformers.T5ForConditionalGeneration
  • input modelu - 'binary classification: ' + treść smsa
  • output modelu - tekstowo '0' lub '1'
  • finetuning na zbiorze treningowym
    • adamW optimizer
    • learning rate 3e-4
    • 16 batch size
    • 4 epoch
  • Accuracy: 87%
  • MCC: 0.042
  • Ciekawostka - accuracy bez finetuningu to 30% (dla klas wyjściowych True False)

Few-shot Transformer Encoder-Decoder - FLAN-T5

Najważniejsze cechy:

  • wytrenowany model google/flan-t5-base
  • typ modelu transformers.AutoModelForSeq2SeqLM
  • input modelu - 4 przykłady + docelowy sms
    SMS: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...
    Spam: False
    
    SMS: Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app
    Spam: True
    
    SMS: LMAO where's your fish memory when I need it?
    Spam: False
    
    SMS: This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18+only
    Spam: True
    
    SMS: treść docelowego smsa
    Spam: 
    
  • output modelu - tekstowo 'True' lub 'False'
  • Ewaluacja na całym zbiorze bez 4 przykładów
  • Accauracy: 46%
  • MCC: -0.001

Wnioski

BERT oraz GPT2

Dzięki głowie modelu, która jest przeznaczona specjalnie do zadania klasyfikacji tekstu, modele osiągnęły prawie perfekcyjny wynik accuracy i MCC. Dalsze modyfikacje są zbędne, ponieważ nie poprawiłby znacząco rezultatów.

T5 oraz FLAN-T5

Modele T5 oraz FLAN-T5 to modele text-2-text, których głównym celem jest multizadaniowość. Nie są zoptymalizowane do zadania klasyfikacji, ale mimo to osiągnęły dobry wynik. W modelu T5 bardzo ważne jest określnie zadania w prefixie inputu, które będzie wykonywał model. Testowaliśmy różne kombinacje - brak prefixu, dokładny opis zadania, różne klasy wyjściowe, ale najlepsze rezultaty uzyskał prefix 'binary classification: ' z klasami wyjściowymi '0' lub '1'. Niski MCC świadczy o niezbalansowaniu predykcji.

FLAN-T5 to zoptymalizowany model T5. Został dodatkowo finetunowany na większym zbiorze danych. Przy uczeniu FLAN-T5 zastosowaliśmy metodę few-shot learning. Model mimo bardzo małej ilości przykładów osiągnął accuracy na poziomie 46%, jednak wynik MCC wskazuje na duże niezbalansowanie i losowe predykcje. Jest to jednak bardzo ciekawe, że wykorzystując tylko 4 przykady do uczenia, model może odpowiadać z pasującymi wynikami (niekoniecznie prawdziwymi).

FLAN-T5 - testy

Wersja Rozmiar Prefiks Acc
1 base SMS - Content of the text message:
Result - Answer if this text message is spam or not
0.503593244699964
2 large SMS - Content of the text message:
Result - Answer if this text message is spam or not
0.46119295724038806
3 base SMS - The text message contains the following content:
Result - Is it true that the content of a text message is spam:
0.2551203736974488
4 large SMS - The text message contains the following content:
Result - Is it true that the content of a text message is spam:
0.1433704635285663
5 base SMS - The text message:
Result - Is this sms spam? Ans:
0.28404599353215954
6 large SMS - The text message:
Result - Is this sms spam? Ans:
0.20786920589292132

Modele FLAN_T5

  1. https://drive.google.com/drive/folders/1XO2TEMIKKFXCwpeW1X51hpC89LShCZ6c?usp=share_link
  2. https://drive.google.com/drive/folders/1-3DEVCcxhRGSmEVx3jK4SUVVIUixNKqS?usp=share_link
  3. https://drive.google.com/drive/folders/1-0Ct4JFzRhyo3bGuOc9ttZhaV4ghQRFx?usp=share_link
  4. https://drive.google.com/drive/folders/1-1YgvI9-2cpkRO1hSlYU-hJFH2a1rmDp?usp=share_link
  5. https://drive.google.com/drive/folders/1-4KINMK9L_VyCZGpCDueazmF2DUbRXTn?usp=share_link
  6. https://drive.google.com/drive/folders/1-3gQuzZVq6IMqcY1nDu2hazVD0dN6F-K?usp=share_link