FLAN & T5 fixes

This commit is contained in:
Jakub Adamski 2023-02-12 18:18:21 +01:00
parent c708f9093f
commit db977db1a5
3 changed files with 4790 additions and 5743 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,16 +1,19 @@
# Projekt
Wykrywanie czy podany SMS to spam - klasyfikacja.
## Zbiór danych
Wykorzystaliśmy zbiór danych [sms spam](https://huggingface.co/datasets/sms_spam). Dataset posiada tylko zbiór treningowy dlatego w trakcie uczenia modeli podzielilśmy go losowo na 3 podzbiory:
Wykorzystaliśmy zbiór danych [sms spam](https://huggingface.co/datasets/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 100% dokładności.
- 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
@ -48,26 +51,49 @@ Najważniejsze cechy:
- wytrenowany model t5-base
- typ modelu transformers.T5ForConditionalGeneration
- input modelu - 'binary classification: ' + treść smsa
- output modelu - tekstowo '1' lub '0'
- output modelu - tekstowo '0' lub '1'
- finetuning na zbiorze treningowym
- adamW optimizer
- learning rate 3e-4
- 16 batch size
- 4 epoch
- Accuracy: 74%
- MCC: 0.190
- Accuracy: 87%
- MCC: 0.042
- Ciekawostka - accuracy bez finetuningu to 30% (dla klas wyjściowych True False)
### Zero-shot Transformer Encoder-Decoder - FLAN-T5
### Few-shot Transformer Encoder-Decoder - FLAN-T5
Najważniejsze cechy:
- wytrenowany model google/flan-t5-base
- typ modelu transformers.AutoModelForSeq2SeqLM
- input modelu - Opis zadania + treść smsa
- Przykład: "Answer the question in one word - true if provided text is spam or false, if provided text is not spam. \nQ: Is this text spam? \nText: treść smsa \nA:"
- output modelu - tekstowo klasa 1 'true' lub klasa 2 'false'
- finetuning na zbiorze treningowym
- adamW optimizer
- learning rate 3e-4
- 8 batch size
- 4 epoch
- Accauracy: 43%
- MCC: -0.033
- 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.
<br/><br/>
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).

File diff suppressed because one or more lines are too long