Skip to content

Commit

Permalink
Built site for gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
Quarto GHA Workflow Runner committed Nov 21, 2023
1 parent 751d66c commit e10f35f
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .nojekyll
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7d073fc5
55d7ae06
21 changes: 7 additions & 14 deletions search.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"href": "slides/fr/index.html#mlops-principes",
"title": "Une introduction au MLOps avec MLflow",
"section": "MLOps : principes",
"text": "MLOps : principes\n\nReproductibilité\nCOntrôle de version\nAutomatisation\nSurveillance\nCollaboration"
"text": "MLOps : principes\n\nReproductibilité\nContrôle de version\nAutomatisation\nSurveillance\nCollaboration"
},
{
"objectID": "slides/fr/index.html#pourquoi-mlflow",
Expand Down Expand Up @@ -354,7 +354,7 @@
"href": "slides/fr/index.html#le-défi-de-la-responsabilité",
"title": "Une introduction au MLOps avec MLflow",
"section": "Le défi de la responsabilité",
"text": "Le défi de la responsabilité\n\nLe cycle de vie d’un modèle ML est complexe\nPlusieurs parties prenantes impliquées :\n\nData scientist\nIT/DevOps\nEquipes métiers\n\nExpertises et vocabulaire différents entre ces parties prenantes\n\n➡️ Communication indispensable entre les équipes pour contrôler le modèle en production"
"text": "Le défi de la responsabilité\n\nLe cycle de vie d’un modèle ML est complexe\nPlusieurs parties prenantes impliquées :\n\nData scientist\nIT/DevOps\nEquipes métiers\n\nExpertises et vocabulaire différents entre ces parties prenantes\n\n➡️ Communication essentielle entre les équipes pour contrôler le modèle en production"
},
{
"objectID": "slides/fr/index.html#pourquoi-surveiller-un-modèle-en-production",
Expand Down Expand Up @@ -382,7 +382,7 @@
"href": "slides/fr/index.html#comment-surveiller-un-modèle-en-production",
"title": "Une introduction au MLOps avec MLflow",
"section": "Comment surveiller un modèle en production ?",
"text": "Comment surveiller un modèle en production ?\n\nAjout de logs dans l’API pour enregistrer les évènements de celle-ci\nDéfinir des métriques de Machine Learning\nCréation d’un processus ETL (Extract-Transform-Load) pour exploiter les logs\nMise en place d’un système d’alertes"
"text": "Comment surveiller un modèle en production ?\n\nIntégration de logs dans l’API pour enregistrer les évènements de celle-ci\nDéfinir des métriques de Machine Learning\nCréation d’un processus ETL (Extract-Transform-Load) pour exploiter les logs\nMise en place d’un système d’alertes"
},
{
"objectID": "slides/fr/index.html#application-5-1",
Expand All @@ -392,18 +392,11 @@
"text": "Application 5\n\n\n\n\nPartie 2 : Logger des métriques métier\n\n\n\nGrâce au package logging, rajoutez des logs à votre API. Pour chaque requête, affichez le libellé à coder ainsi que les réponses renvoyées par votre API. Pour cela, modifiez le fichier app/main.py.\n\n\n\nCliquez pour voir les étapes à réaliser \n\n\nImportez le package logging :\n\n\n\nmain.py\n\nimport logging\n\n\nDéfinissez la configuration de vos logs avant la définition de votre premier point d’entrée :\n\n\n\nmain.py\n\nlogging.basicConfig(\n level=logging.INFO,\n format=\"%(asctime)s - %(levelname)s - %(message)s\",\n handlers=[\n logging.FileHandler(\"log_file.log\"),\n logging.StreamHandler(),\n ],\n)\n\n\nAjoutez une le libellé et la réponse de l’API dans vos logs :\n\n\n\nmain.py\n\n# Logging\nlogging.info(f\"{{'Query': {description}, 'Response': {predictions[0]}}}\")\n\n\n\nFaites un commit de vos changements et poussez les sur votre dépôt distant.\nDès lors que vous réalisez un changement sur votre API, il est nécessaire de la redéployer pour que les changements soient effectifs. En théorie, il serait nécessaire de re-construire une nouvelle image pour notre API contenant les derniers ajustements. Pour simplifier, nous avons déjà construit les deux images avec et sans logs dans l’API. Jusqu’à présent vous avez utilisé l’image sans logs, redéployez votre API en utilisant l’image avec les logs dont le tag est logs.\n\n\n\nCliquez pour voir les étapes à réaliser \n\n\nDans le fichier kubernetes/deployment.yml, remplacer le tag no-logs par le tag logs :\n\n\n\ndeployment.yml\n\ntemplate:\n metadata:\n labels:\n app: codification-api\n spec:\n containers:\n - name: api\n image: inseefrlab/formation-mlops:logs\n imagePullPolicy: Always\n\n\nFaites un commit de vos changements et poussez les sur votre dépôt distant.\nPatientez 5 minutes qu’ArgoCD synchronise automatiquement les changements depuis votre dépôt Github ou bien forcez la synchronisation.\n\n\n\nExécutez votre script predict-api.py.\n\n\n\nCliquez pour voir la commande \n\npython formation-mlops/src/predict-api.py\n\n\nDans ArgoCD, ouvrez votre application puis cliquez sur votre pod qui doit commencer par \"codification-api-...\". Observez les logs."
},
{
"objectID": "slides/fr/index.html#monitoring-towards-observability",
"href": "slides/fr/index.html#monitoring-towards-observability",
"objectID": "slides/fr/index.html#observabilité-du-modèle-grâce-à-un-tableau-de-bord",
"href": "slides/fr/index.html#observabilité-du-modèle-grâce-à-un-tableau-de-bord",
"title": "Une introduction au MLOps avec MLflow",
"section": "Monitoring towards observability",
"text": "Monitoring towards observability\nDéfinition de métriques Machine Learning et métriques opérationnelles"
},
{
"objectID": "slides/fr/index.html#création-dun-tableau-de-bord",
"href": "slides/fr/index.html#création-dun-tableau-de-bord",
"title": "Une introduction au MLOps avec MLflow",
"section": "Création d’un tableau de bord",
"text": "Création d’un tableau de bord\n\nLes logs de l’API contiennent maintenant des informations métier.\nPour analyser le comportement du moteur de codification, création d’un tableau de bord.\nPour le traitement/stockage des logs :\n\nElastic\nPipeline ETL\n\nSolutions multiples pour le tableau de bord : Grafana, Quarto Dashboards, Apache Superset, …"
"section": "Observabilité du modèle grâce à un tableau de bord",
"text": "Observabilité du modèle grâce à un tableau de bord\n\nLes logs de l’API contiennent maintenant des informations métier.\nPour analyser le comportement du moteur de codification, création d’un tableau de bord.\nPour le traitement/stockage des logs :\n\nElastic\nPipeline ETL\n\nSolutions multiples pour le tableau de bord : Grafana, Quarto Dashboards, Apache Superset, …"
},
{
"objectID": "slides/fr/index.html#un-exemple-de-stack",
Expand Down
4 changes: 2 additions & 2 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://github.com/InseeFrLab/formation-mlops/slides/fr/index.html</loc>
<lastmod>2023-11-21T15:39:20.038Z</lastmod>
<lastmod>2023-11-21T16:42:17.359Z</lastmod>
</url>
<url>
<loc>https://github.com/InseeFrLab/formation-mlops/slides/en/index.html</loc>
<lastmod>2023-11-21T15:39:08.514Z</lastmod>
<lastmod>2023-11-21T16:42:07.363Z</lastmod>
</url>
</urlset>
14 changes: 5 additions & 9 deletions slides/fr/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ <h2>L’approche MLOps</h2>
<h2>MLOps : principes</h2>
<ul>
<li class="fragment"><p><span class="orange"><strong>Reproductibilité</strong></span></p></li>
<li class="fragment"><p><span class="orange"><strong>COntrôle de version</strong></span></p></li>
<li class="fragment"><p><span class="orange"><strong>Contrôle de version</strong></span></p></li>
<li class="fragment"><p><span class="orange"><strong>Automatisation</strong></span></p></li>
<li class="fragment"><p><span class="orange"><strong>Surveillance</strong></span></p></li>
<li class="fragment"><p><span class="orange"><strong>Collaboration</strong></span></p></li>
Expand Down Expand Up @@ -1577,7 +1577,7 @@ <h2>Le défi de la responsabilité</h2>
</ul></li>
<li class="fragment"><span class="orange"><strong>Expertises</strong></span> et <span class="orange"><strong>vocabulaire</strong></span> différents entre ces parties prenantes</li>
</ul>
<p>➡️ <span class="orange"><strong>Communication</strong></span> indispensable entre les équipes pour <span class="orange"><strong>contrôler</strong></span> le modèle en production</p>
<p>➡️ <span class="orange"><strong>Communication</strong></span> essentielle entre les équipes pour <span class="orange"><strong>contrôler</strong></span> le modèle en production</p>
</section>
<section id="pourquoi-surveiller-un-modèle-en-production" class="slide level2" data-background-image="background.svg" data-background-size="contain">
<h2>Pourquoi surveiller un modèle en production ?</h2>
Expand Down Expand Up @@ -1616,7 +1616,7 @@ <h2>Surveillance selon le data scientist</h2>
<section id="comment-surveiller-un-modèle-en-production" class="slide level2" data-background-image="background.svg" data-background-size="contain">
<h2>Comment surveiller un modèle en production ?</h2>
<ul>
<li class="fragment">Ajout de <span class="orange"><strong>logs</strong></span> dans l’API pour enregistrer les évènements de celle-ci</li>
<li class="fragment">Intégration de <span class="orange"><strong>logs</strong></span> dans l’API pour enregistrer les évènements de celle-ci</li>
<li class="fragment">Définir des <span class="orange"><strong>métriques</strong></span> de Machine Learning</li>
<li class="fragment">Création d’un processus <span class="orange"><strong>ETL</strong></span> (Extract-Transform-Load) pour exploiter les logs</li>
<li class="fragment">Mise en place d’un système d’<span class="orange"><strong>alertes</strong></span></li>
Expand Down Expand Up @@ -1721,12 +1721,8 @@ <h2>Application 5</h2>
</div>
</div>
</section>
<section id="monitoring-towards-observability" class="slide level2" data-background-image="background.svg" data-background-size="contain">
<h2>Monitoring towards observability</h2>
<p>Définition de métriques Machine Learning et métriques opérationnelles</p>
</section>
<section id="création-dun-tableau-de-bord" class="slide level2" data-background-image="background.svg" data-background-size="contain">
<h2>Création d’un tableau de bord</h2>
<section id="observabilité-du-modèle-grâce-à-un-tableau-de-bord" class="slide level2" data-background-image="background.svg" data-background-size="contain">
<h2>Observabilité du modèle grâce à un tableau de bord</h2>
<ul>
<li class="fragment">Les logs de l’API contiennent maintenant des <span class="orange"><strong>informations métier</strong></span>.</li>
<li class="fragment">Pour analyser le comportement du moteur de codification, création d’un <span class="orange"><strong>tableau de bord</strong></span>.</li>
Expand Down

0 comments on commit e10f35f

Please sign in to comment.