Cours NLP Mines Paris 2025-2026
Séances
Mardi 9 décembre 2025
1. Introduction
Vendredi 12 décembre 2025
2. Grammaires
Travaux pratiques 1: expressions régulières
Lundi 15 décembre 2025
3. Modèle de langue bi-grammes par comptage
Fichier requirements.txt à créer:
jupyterlab numpy matplotlib graphviz torch
Commandes à lancer:
python3 -m venv .venv/notebooks source .venv/notebooks/bin/activate pip install -r requirements.txt jupyter lab
4. Descente et rétropropagation du gradient
5. Modèle de langue bi-grammes avec un réseau de neurones
Travaux pratiques 2: tri-grammes
Reprendre l'approche bi-grammes, par comptage et neuronale, pour passer à des tri-grammes, c'est-à-dire des suites de trois caractères. À rendre: le notebook résultat ou le code python correspondant (par email).
Mardi 16 décembre 2025
6. Embeddings et Feed-Forward Network
-
Notebook "Embeddings et Perceptron Multi-Couches"
Vendredi 19 décembre 2025
7. Initialisations, normalisations
Travaux pratiques 3: tokenisation et modèle de langue par "mots"
Date de rendu le 9 janvier 2026, par email, sous la forme d'un fichier compressé avec votre code (n'incluez pas les données des codes), d'un "patch" sur le dépôt source ou d'une "pull request" sur le dépôt.
Reprendre la dernière version du réseau développé dans le chapitre 7 et en créer une version modifiée pour passer à des tokens représentant des suites de caractères plutôt que des caractères uniques.
La dernière version du code est sous Github: tp_nlp_tokens_mines
Démo: Tiktokenizer
Plutôt que des mots, l'objectif est de faire en sorte que notre modèle génère des phrases, avec un contexte de trois mots minimum.
Les données que vous allez utiliser sont les codes français en markdown. Les étapes suivantes sont suggérées:
1) Sélectionner un ou plusieurs codes pour constituer votre jeu des données, de les "nettoyer" en enlevant les informations des sections et numéros d'articles pour ne garder que des phrases. Vous pouvez par exemple utiliser des expressions régulières pour effectuer cette opération.
2) Utilisez un "tokenizer" comme SentencePiece de Google ou tiktoken d'OpenAI ou Tokenizers de Hugging Face pour soit:
- créer un modèle de tokenization à partir de votre jeu d'entraînement;
- utiliser un modèle de token déjà "entraîné" sur étagère comme celui de chatGPT.
3) Modifiez le code la classe `BengioFFN` et des classes associées (`Words`, `Dataset`) pour utiliser vos tokens à la place de ceux représentant des caractères.
4) Entraînez votre modèle et faites-lui générer quelques phrases. Discutez le résultat obtenu. Changez des hyperparamètres et la taille du contexte pour essayer d'améliorer la qualité du modèle.
5) Modifiez la génération pour partir d'un "prompt" d'un ou de plusieurs mots que le modèle complètera.
À venir
- Wavenet
- GPT 1 et 2 d'OpenAI
- ChatGPT
- Séminaire avec Hugging Face (mécanisme d'Attention)
- Séminaire avec le ministère de l'environnement (OCR et extraction d'informations)
- Séminaire de doctorants en ML
- Début des projets (le 12/1/2026 à priori)
Bibliographie
- Jurafsky: "Speech and Language Processing (2025)
- François Chollet: "Deep Learning with Python" (2025)