Przetwarzanie_tekstu/projekt/UGP_2022_12_project.ipynb

280 lines
231 KiB
Plaintext
Raw Normal View History

2023-02-05 16:53:53 +01:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "2B2CXxJNpfx_"
},
"source": [
"![Logo 1](data:image/png;base64,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
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RRIBeWQNpfyC"
},
"source": [
"<div class=\\\"alert alert-block alert-info\\\">\n",
" <h1>Uczenie głębokie w przetwarzaniu tekstu </h1>\n",
" <h2>12. <i>Projekt</i> [laboratoria]</h2>\n",
" <h3>Karol Kaczmarek (2022/2023)</h3>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rx1HPQebpfyC"
},
"source": [
"![Logo 2](data:image/png;base64,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
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UjLnzxMBOu7A"
},
"source": [
"# Projekt na zaliczenie przedmiotu"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k5U138Q6QPoD"
},
"source": [
"## Wymagania\n",
"\n",
"- Przed przystąpieniem do przygotowywania rozwiązania należy zgłosić zespół (maksymalnie 2-3 osobowy) oraz wybrać zbiór danych (na którym zostaną wykonane eksperymenty) - zalecane jest wybór zbiór danych dla problemu klasyfikacji\n",
"- Utworzenie 4 rozwiązań opartych o:\n",
" - Transformer Encoder, np. RoBERTa\n",
" - Transformer Decoder, np. GPT-2\n",
" - Transformer Encoder-Decoder, np. T5\n",
" - Transformer w trybie few-shot/zero-shot learning, np. FLAN-T5\n",
"- Jakość modeli nie powinna znacznie odbiegać od akceptowalnego wyniku, który zostanie zaznaczony podczas wyboru zbioru danych\n",
"- Rozwiązanie powinno zostać dostarczone w postaci:\n",
" - Jupyter Notebook z **kodem źródłowym<sup>1</sup>, historią i wynikami z processu trenowania**\n",
" - katalogu z plikami wytrenowanych modeli\n",
" - plików tekstowych z wykorzystanym korpusem - **tylko w przypadku, gdy zbiór testowy został wydzielone z innego zbioru, np. ze zbioru uczącego**\n",
"- Rozwiązanie powinno zostać opartę o rozwiązaniu na podstawie biblioteki `transformers` - podobnie jak przykłady przedstawione na zajęciach\n",
" - Akceptowalne jest rozwiązanie opartę o inne biblioteki, ale będzie dodatkowa rozmowa o przygotowanych rozwiązaniu (pytania o kod, czy wykorzystane rozwiązania)\n",
"\n",
"<sup>1</sup> - Kod źródłowy modyfikowanych architektur i skryptów wykorzystanych do trenowania/ewaluacji modeli.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sdM6u5OqPlbU"
},
"source": [
"## Ograniczenia\n",
"\n",
"- Zespoły maksymalnie 2-3 osobowe\n",
"- Maksymalnie 3 zespoły na podany zbiór danych\n",
"- Zbiór danych, który został wykorzystany na zajęciach nie może być użyty w projekcie - nie akceptowane zbiory to:\n",
" - imdb\n",
" - squad (każda wesja)\n",
"- Nie akceptowany jest zbiór, który zawiera tylko i wyłącznie zbiór treningowy\n",
" - Akceptowalny jest zbiór, który **zawiera tylko i wyłącznie zbiór treningowy i walidacyjny (bez zbioru testowego)** - **dodatkowo wymagane będzie poprawne wydzielenie/utworzenie zbioru testowego ze zbioru walidacyjnego**\n",
"- Nie akceptowany jest zbiór z liczbą przykładów w zbiorze uczącym mniejszy niż 5000\n",
" - Odpowiednio zbiór testowy powienien posiadać przynajmniej ~1000 przykładów\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MSuETV5nWpPP"
},
"source": [
"## Ocena\n",
"\n",
"Ocena:\n",
"\n",
"- **3** - wykorzystanie domyślnych modeli dostępnych w bibliotece `transformers`\n",
" - marginalna zmiana w process trenowania modeli, np. wykorzystanie rozwiązania opartego o model `RobertaForSequenceClassification`\n",
" - wykorzystanie **identycznych rozwiązań**, które zostały przedstawione na zajęciach\n",
"- **4** - wykonanie po 1 **modyfikacji** dla każdego z 3 rozwiązań<sup>1</sup>\n",
"- **5** - wykonanie przynajmniej 4 **modyfikacji** dla 3 rozwiązań<sup>1</sup> (w każdym rozwiązaniu musi być wykonana przynajmniej 1 modyfikacja)\n",
"\n",
"Modyfikacje rozwiązania obejmuje:\n",
"\n",
"- modyfikacja architektury, np. utworzenie własnej głowy klasyfikacyjnej\n",
"- wykorzystanie stanów ukrytych (hidden states) z innych warstw transformera\n",
"- zamrożenie części wag modelu\n",
"- inne nieszablonowe modyfikacje\n",
"\n",
"Im bardziej **różna** modyfikacja, niż ta która została przedstawiona na zajęciach tym lepiej, np.\n",
" - wykorzystanie ukrytych stanów z 3 ostatnich warst Transformera\n",
" - zbudowanie własnej głowy klasyfikacyjne z wykorzystanie innych funkcji aktywacji\n",
" - zbudowanie kilku-warstwowej głowy klasyfikacyjnej\n",
" - zmniejszenie głowy klasyfikacjynej (wymiaru/hidden states)\n",
" - zamrożenie początkowych warst modelu Transformera (nie całego modelu)\n",
" - zamrożenie co drugą watswę modelu Transformera (nie całego modelu)\n",
"\n",
"<sup>1</sup> - modyfikacja modelu nie dotyczy modelu few-shot/zero-shot learning"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LfHMGKGQKMyd"
},
"source": [
"# Termin"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kDAhKJVSKOZ5"
},
"source": [
"14.02.2022 (do końca dnia włącznie)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "IDyJPbYZVjxc"
},
"source": [
"## Dodatkowe punkty:\n",
"\n",
"Dodatkowe punkt, a zarazem zwiększenie oceny można uzyskać dzięki:\n",
"\n",
"- Stworzeniu nieszablonowego rozwiązania, np. wykorzystania innej architektu niż ta, która została przedstawiona na zajęciach\n",
"- Wykorzystanie większego modelu, np. zamiast modelu `T5-base` zostanie wykorzystany `T5-large`\n",
"- Wykorzystaniu wielojęzycznego zbioru danych oraz wielojęzycznych modeli (przynajmniej 3 z 4 modeli powinny być wielojęzyczne)\n",
"- Niestandardowemu podejściu do procesu trenowania - wykorzystanie dodatkowych argumenetów, które dostarcza biblioteka `transformers`\n",
"- \\+ pół oceny za rozmowę o przygotowanym rozwiązaniu"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4rDUiRzHO0UD"
},
"source": [
"## Wykorzystane zbiory danych\n",
"\n",
"Lista zbiorów danych:\n",
"\n",
"| Nazwa zbioru danych | Link do zbioru danych | Aktualna liczba zespołów | Akceptowalny wynik | Baseline<sup>1</sup> | Metryka |\n",
"| - | - | - | - | - | - |\n",
"| emotion | [LINK](https://huggingface.co/datasets/emotion) | 3 (max) | 0.865 | ~0.928 | Accuracy |\n",
"| sms_spam<sup>2<sup> | [LINK](https://huggingface.co/datasets/sms_spam) | 1 (max) | 0.96 | ~0.972 | Accuracy |\n",
"| rotten_tomatoes | [LINK](https://huggingface.co/datasets/rotten_tomatoes) | 3 (max) | 0.84 | ~0.86 | Accuracy |\n",
" | beer_reviews_label_drift_neg | [LINK](https://huggingface.co/datasets/arize-ai/beer_reviews_label_drift_neg) | 1 | 0.66 | ~0.68 | Accuracy |\n",
"| ag_news | [LINK](https://huggingface.co/datasets/ag_news) | 3 (max) | 0.87 | ~0.9 | Accuracy |\n",
"| sst2 | [LINK](https://huggingface.co/datasets/sst2) | 1 | 0.915 | ~0.94 | Accuracy |\n",
"\n",
"<sup>1</sup> - Wyniki dla baseline: RoBERTa z długością sekwencji 128 (bez wykorzystania ukrytych stanów z innych warst Transformera oraz bez użycia własnej implementacji głowy klasyfikacyjnej)\n",
"\n",
"<sup>2</sup> - Ze względu iż przedstawiony zbiór posiada tylko i wyłącznie zbiór treningowy, nie możliwe jest wykorzystanie tego zbioru danych"
]
},
{
"cell_type": "markdown",
"source": [
"# Ujemne punkty\n",
"\n",
"Ujemne punkty = 0,5 oceny niżej w przypadku gdy podpunkt został spełniony, każdy spełniony podpunkt to 0,5 oceny niżej. Następuje to gdy:\n",
"\n",
"- wykorzystany zostanie (fragment) zbioru trenującego jako zbiór testowy\n",
"- zbiór treningowy oraz walidacyjny będą posiadać wspólną część (może wystąpić, gdy wymagane było wydzielenie zbioru walidacyjnego ze zbioru treningowego)\n",
"- nie zostanie udostępniony: kod źródłowy, pliki modelu, procces (historia) trenowania"
],
"metadata": {
"id": "Mqfuyibftsfa"
}
},
{
"cell_type": "markdown",
"metadata": {
"id": "_zh-jfzSjZaj"
},
"source": [
"# Tips\n",
"\n",
"- Przykładowe zbiory danych można znaleźć tutaj:\n",
" - [huggingface/datasets](https://huggingface.co/datasets)\n",
" - [paperswithcode.com/datasets/text-classification](https://paperswithcode.com/datasets?mod=texts&task=text-classification)\n",
"- Podłączyć Google Drive w Google Colab - pozwala zapisać dane, aby nie przepadły/zostały usunięte\n",
"- Podczas lokalego trenowania warto ustawić zmienne środowiskowe:\n",
" - `TRANSFORMERS_CACHE` - odpowiada za cache modeli z biblioteki `transformers`, np. `export TRANSFORMERS_CACHE=PROJECT_PATH/.cache/transformers` (gdzie `PROJECT_PATH` to ścieżka do projektu)\n",
" - `HF_DATASETS_CACHE` - odpowiada za cache zbiorów danych, jak i przetworzonych zbiorów danych (w tym danych przygotowanych do treningu), np. `export TRANSFORMERS_CACHE=PROJECT_PATH/.cache/datasets` (gdzie `PROJECT_PATH` to ścieżka do projektu)\n",
"- Zamiast gotowego modelu (np. `--model_name_or_path t5-base`) można podać wcześniej wytrenowany model (np. `--model_name_or_path out/my_t5/best`)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.8"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 0
}