aitech-moj-2023/cw/08_neuronowe_modele_językowe.ipynb
Jakub Pokrywka 85d14a1c10 update
2022-07-05 11:24:56 +02:00

153 lines
5.0 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Modelowanie Języka</h1>\n",
"<h2> 8. <i>Neuronowe modele językowe</i> [ćwiczenia]</h2> \n",
"<h3> Jakub Pokrywka (2022)</h3>\n",
"</div>\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
}