Programme de cours¶
2024/2025 ES aux Mines¶
Introduction (séance n°1 du mardi 10/12/2024, cours)¶
Salle L108-b
1h30 (15h30-17h)
Quelques transparents
Quelques slides du cours NLP 2024 du MVA présentés (9 à 26)
Cours principalement fait au tableau
Caractères, alphabets (séance n°2 du vendredi 13/12/2024, cours et TP)¶
Salle L109
3h (9h-12h15)
Première partie: cours caractères et alphabets (jusqu’au transparent 17). Plusieurs exemples de code montrés en cours.
Deuxième partie: travaux pratiques sur les expressions régulières
Expressions régulières, grammaires (séance n°3 du lundi 16/12/2024)¶
Salle L218
3h (13h45-17h)
Première partie: fin du cours caractères et alphabets
Deuxième partie: suite des travaux pratiques sur les expressions régulières, uniquement l’exercice 3 (rendu des travaux)
Micrograd (séance n°4 du mardi 17/12/2024)¶
Salle L108-b
1h30 (15h30-17h)
Construction de micrograd à partir de rien (partie 1)
Demande de création et d’envoi d’une clef publique SSH pour faire fonctionner du Remote Development using SSH pour les prochains TP et le projet
Makemore: bigrams (séance n°5 du vendredi 20/12/2024)¶
3h (9h-12h15)
Construction de micrograd à partir de rien (partie 2)
Makemore bigrams (version éditée post-cours)
Corpus de travail:
codes français en markdown
Travaux pratiques sur les bigrams
proposer une méthode en Python pour transformer un code en markdown en une liste de mots telle que celle utilisée dans le « notebook » Makemore ci-dessus
entrainer un modèle 3-gram, utilisant deux caractères pour prédire le troisième, soit par comptage soit avec un réseau de neurones. Comparer la fonction de perte par rapport à l’approche bigram
séparer le jeu de données entre 80% entrainement, 10% développement et 10% test. Entrainer les modèles bigram et 3-gram uniquement sur le jeu d’entrainement et évaluer sur les jeux de développement et de test. Interprétez les résultats
Actualités
« look Ma, no tokens », à propos papier du labo FAIR de Meta « Byte Latent Transformer: Patches Scale Better Than Tokens »
Makemore: MLP (séance n°6 du lundi 6/1/2025)¶
3h (13h45-17h)
A Neural Probabilistic Language Model, Bengio et al., 2003
Makemore MLP
Corpus de travail:
codes français en markdown
Travaux pratiques: l’objectif général va être d’améliorer le loss en jouant sur les paramètres et hyper-paramètres du réseau
Jouer avec le paramètre
lr
(learning rate) lors de l’apprentissage et déterminer (expérimentalement) si les valeurs utilisées sont satisfaisantesRépondre à l’exercice 02 d’Andrej Karpathy: « I was not careful with the intialization of the network in this video. (1) What is the loss you’d get if the predicted probabilities at initialization were perfectly uniform? What loss do we achieve? »
Identifier les « hyper paramètres » de ce réseau et explorer des modifications permettant d’améliorer (ou pas) le loss. Quelles sont selon vous les limites de ce type de réseau?
Le papier de Yoshua Bengio mentionne un certain nombre d’idées d’amélioration, et notamment l’utilisation d’une « mixture of models » avec des bigrams (cf TP précédent). Proposer une ou des améliorations de votre réseau avec les idées proposées
Makemore: initialisations, activations et BatchNorm (séance n°7 du mardi 7/1/2025)¶
1h30 (15h30-17h)
Makemore Activations
Travaux pratiques
Essayez de positionner initialement tous les biais et poids du réseau à 0 et entraînez-le. Est-ce que: 1) l’entraînement se passe très bien ou 2) le réseau n’apprend pas, ou 3) le réseau apprend partiellement. Inspectez les gradients et activations pour comprendre ce qui se passe.
Makemore: wavenet (séance n°8 du vendredi 10/1/2025)¶
3h (9h-12h15)
Retour sur la dernière séance
Makemore: statistiques sur les activations (version « code civil »)
Makemore: wavenet
Travaux pratiques: tokenisation. Utilisez SentencePiece ou tiktoken pour faire en sorte que dans notre réseau (partir par exemple de la version du 7/1/2025: Activations), les entiers fassent référence à des tokens plutôt à des caractères. NOTE: l’objectif de ce TP est que vous manipuliez un tokenizer et que vous compreniez son rôle dans un pipeline de traitement NLP. Le TP ne sera pas évalué sur votre résultat.
GPT from scratch (séance n°9 du lundi 13/1/2025)¶
3h (13h45-17h)
Vaswany, A. et al. « Attention Is All You Need », 2017 (Transformer)
Radford, A. et al. « Improving Language Understanding by Generative Pre-Training », 2018 (GPT-1)
Radford, A. et_al. « Language Models are Unsupervised Multitask Learners », 2019 (GPT-2)
Brown T. B. et al. « Language Models are Few-Shot Learners », 2020, (GPT-3)
Eldan, R. and Li, Y. « TinyStories: How Small Can Language Models Be and Still Speak Coherent English? »
Liste des projets¶
Les projets 1 à 5 sont des projets techniques proposés en collaboration avec le data studio de la direction de la prévention des risques du Ministère de la transition écologique, de la biodiversité, de la forêt, de la mer et de la pêche. Pour la réalisation de ces projets, vous avez le choix des techniques employées pour proposer une ou des solutions (règles, réseau spécifique, modèle de langue générique et alignement, …). Le rendu de ces projets sera sous la forme de code et/ou de notebooks (archive zip/tgz ou dépôt Github/Gitlab) et d’une note explicative de la démarche (en format libre).
Deux autres projets proposés ne sont pas techniques et consistent en la rédaction d’un article critique de type vulgarisation scientifique, du type de ceux que l’on peut trouver dans Sciences et Avenir - La Recherche ou Pour la science. L’article devra être rédigé en LaTeX et comportera une bibliographie, ainsi que des liens cliquables vers les ressources citées. Le livrable du projet sera soit un lien vers un projet sur Overleaf, soit un fichier zip ou tar.gz contenant le source et les figures de l’article. L’article devra comporter au minimum 2000 mots, hors bibliographie et figures. Vous pouvez vous aider d’outils de type ChatGPT, à condition d’accompagner votre article d’un document annexe (non compté dans le nombre de mots) listant tous les « prompts » et les résultats que vous avez obtenus.
Rédaction d’un article critique sur la position de Matt Welsh The End of Programming (youtube)
Deux approches de l’IA irréconciliables? Illustration par les positions de Yann LeCun et de Gary Marcus
Finalement, projet 8 consiste à proposer votre propre projet, proposition à faire valider par votre encadrant.
Projet à rendre avant le 31 janvier 2025 à 12h AoE. Les projets sont individuels, mais pour les projets 1 à 5, vous pouvez collaborer afin de créer une chaîne de traitement complète, voire pour mettre en commun certaines parties: par exemple, vous pourriez décider de créer un modèle de langue, voire de sélectionner un modèle de langue existant, afin de le spécialiser pour votre tâche spécifique. Rendez explicite cette collaboration dans le rendu de votre projet.
Travail encadré sur le projet (séance n°10 du mardi 14/1/2025)¶
1h30 (15h30-17h)
Nouveau! Livre de Francis Bach: Learning Theory from First Principles (PDF)
Évaluations¶
TP notés (1 « joker »: TP non rendu ou plus mauvaise évaluation non prise en compte)
Projet final (choix d’un sujet parmi 8).