{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", "
\n", "

Modelowanie Języka

\n", "

7. Model neuronowy ff [ćwiczenia]

\n", "

Jakub Pokrywka (2022)

\n", "
\n", "\n", "![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Instalacja pytorch\n", "\n", "https://pytorch.org/get-started/locally/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorial pytorch\n", "https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Zadanie" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Proszę wykonać tylko jedno zadanie z dwóch!**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Zadanie 1 (proste)\n", "\n", "Wzorując się na materiałach z wykładu stworzyć neuronowy, **bigramowy** model językowy.\n", "\n", "Warunki zaliczenia:\n", "- wynik widoczny na platformie zarówno dla dev i dla test\n", "- wynik dla dev i test lepszy (niższy) niż 1024.00 (liczone przy pomocy geval)\n", "- deadline do końca dnia 24.04\n", "- commitując rozwiązanie proszę również umieścić rozwiązanie w pliku /run.py (czyli na szczycie katalogu). Można przekonwertować jupyter do pliku python przez File → Download as → Python. Rozwiązanie nie musi być w pythonie, może być w innym języku.\n", "- zadania wykonujemy samodzielnie\n", "- w nazwie commita podaj nr indeksu\n", "- w tagach podaj **neural-network** oraz **bigram**!\n", "- uwaga na specjalne znaki \\\\n w pliku 'in.tsv' oraz pierwsze kolumny pliku in.tsv (które należy usunąć)\n", "\n", "Punktacja:\n", "- podstawa: 60 punktów\n", "- 40 punktów z najlepszy wynik z 2 grup\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Zadanie 2 (trudniejsze)\n", "\n", "Wzorując się na materiałach z wykładu stworzyć neuronowy, **trigramowy** model językowy.\n", "\n", "Warunki zaliczenia:\n", "- wynik widoczny na platformie zarówno dla dev i dla test\n", "- wynik dla dev i test lepszy (niższy) niż 1024.00 (liczone przy pomocy geval)\n", "- deadline do końca dnia 24.04\n", "- commitując rozwiązanie proszę również umieścić rozwiązanie w pliku /run.py (czyli na szczycie katalogu). Można przekonwertować jupyter do pliku python przez File → Download as → Python. Rozwiązanie nie musi być w pythonie, może być w innym języku.\n", "- zadania wykonujemy samodzielnie\n", "- w nazwie commita podaj nr indeksu\n", "- w tagach podaj **neural-network** oraz **trigram**!\n", "- uwaga na specjalne znaki \\\\n w pliku 'in.tsv' oraz pierwsze kolumny pliku in.tsv (które należy usunąć)\n", "\n", "Punktacja:\n", "- podstawa: 120 punktów\n", "- 40 punktów z najlepszy wynik z 2 grup\n", "- 20 punktów za drugi najlepszy wynik z 2 grup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## W jaki sposób uzyskać lepszy wynik?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dla lepszych wyników, można trenować model przez kilka epok.\n", "\n", "Zgodnie z dobra praktyką w uczeniu maszynowym należy monitorować wynik (tutaj perplexity) na zbiorze deweloperskim w trakcie uczenia.\n", "\n", "Kod z wykładu pokazuje jedynie wynik funkcji kosztu na zbiorze trenującym. Dla kompletnego rozwiązania warto zaimplementować monitorowanie kosztu dla zbioru deweloperskiego.\n", "Przy każdym sprawdzaniu wyniku, należy sprawdzać czy obecny model jest najlepszy i jeżeli jest najlepszy to zapisywać jego stan najlepiej w postaci binarnej (może byc pickle) do pliku\n", "\n", "\n", "Po zakończeniu trenowania należy wybrać model który uzyskuje najmniejszy wynik funkcji kosztu dla zbioru deweloperskiego i użyć go do wygenerowania odpowiedzi dla zbioru testowego." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](imgs/devsetppl.png)" ] } ], "metadata": { "author": "Jakub Pokrywka", "email": "kubapok@wmi.amu.edu.pl", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "lang": "pl", "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.8.3" }, "subtitle": "0.Informacje na temat przedmiotu[ćwiczenia]", "title": "Ekstrakcja informacji", "year": "2021" }, "nbformat": 4, "nbformat_minor": 4 }