From 0d2ac2309af6c38c4bb5a35d1dd4a43b34dbc0f6 Mon Sep 17 00:00:00 2001 From: Tomasz Date: Thu, 20 Apr 2023 11:28:19 +0200 Subject: [PATCH] =?UTF-8?q?Zaktualizowaneo=20materia=C5=82y=20dot.=20MLFLo?= =?UTF-8?q?w?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IUM_08.MLFlow.ipynb | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/IUM_08.MLFlow.ipynb b/IUM_08.MLFlow.ipynb index 9efe928..86ad396 100644 --- a/IUM_08.MLFlow.ipynb +++ b/IUM_08.MLFlow.ipynb @@ -8,7 +8,7 @@ } }, "source": [ - "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", + "## ![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", "
\n", "

Inżynieria uczenia maszynowego

\n", "

8. MLFlow [laboratoria]

\n", @@ -73,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "slideshow": { "slide_type": "slide" @@ -88,7 +88,16 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p IUM_08/examples/sklearn_elasticnet_wine/" + ] + }, + { + "cell_type": "code", + "execution_count": 4, "metadata": { "slideshow": { "slide_type": "slide" @@ -190,6 +199,7 @@ " mlflow.log_metric(\"mae\", mae)\n", " \n", " # Infer model signature to log it\n", + " # Więcej o sygnaturach: https://mlflow.org/docs/latest/models.html?highlight=signature#model-signature\n", " signature = mlflow.models.signature.infer_signature(train_x, lr.predict(train_x))\n", "\n", " tracking_url_type_store = urlparse(mlflow.get_tracking_uri()).scheme\n", @@ -948,7 +958,7 @@ "source": [ "# Zadania [10p pkt]\n", "1. Dodaj do swojego projektu logowanie parametrów i metryk za pomocą MLflow (polecenia `mlflow.log_param` i `mlflow.log_metric`\n", - "2. Dodaj plik MLProject definiujący polecenia do trenowania i testowania, ich parametry wywołania oraz środowisko (użyj zdefiniowanego wcześniej obrazu Docker)" + "2. Dodaj plik MLProject definiujący polecenia do trenowania i testowania, ich parametry wywołania oraz środowisko (Conda albo Docker)" ] }, { @@ -1390,7 +1400,7 @@ } }, "source": [ - "## Zadania\n", + "## Zadania (termin: 14.05 EOD) \n", "1. [2 pkt] Dodaj do joba treningowego wywołania MLflow, tak, żeby przy każdym uruchomieniu stworzyć i zarchiwizować katalog z modelem. Plik MLmodel powinien zawierać pola:\n", " - signature\n", " - input_example\n", @@ -1425,6 +1435,10 @@ " - CLI: `export MLFLOW_TRACKING_URI=http://172.17.0.1:5000`\n", " \n", "- Żeby klient MLflow działający w kontenerze docker mógł zapisywać i pdczytywać artefakty, muszą Państwo podmonotwać katalog `/tmp/mlruns` i `/mlruns` (ten drugi po to, żeby po restarcie serwera katalog nie został wyczyszczony)\n", + " - jak podmontować: ```docker.image('my-image').inside('-v /tmp/mlruns:/tmp/mlruns' -v /mlruns:/mlruns')```\n", + " - Przykład działąjącego joba na Jenkinsie zapisującego wyniki do MLFlow: https://tzietkiewicz.vm.wmi.amu.edu.pl:8081/job/gitea-test/job/ium-helloworld/job/master/\n", + " - Repo: https://git.wmi.amu.edu.pl/tzietkiewicz/ium-helloworld/src/branch/master\n", + "\n", "- Proszę ustawić nazwę eksperymentu na numer indeksu, dzięki temu każdy z Państwa będzie widział swoje eksperymenty oddzielnie:\n", "`mlflow.set_experiment(\"s123456\")`" ] @@ -1435,7 +1449,7 @@ "celltoolbar": "Slideshow", "email": "tomasz.zietkiewicz@amu.edu.pl", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -1450,7 +1464,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.9.12" }, "slideshow": { "slide_type": "slide"